Thursday, July 10, 2025
15 changes · 18.0
Resolved issues and error corrections
Employees in Indian companies can now open their approved time off requests without running into an access error. The change prevents the system from trying to update leave details after approval, keeping approved records stable while preserving the existing time off calculation behavior.
Original PR description
**Steps to reproduce:** 1. Install l10n_in_hr_holidays and l10n_in 2. Switch to IN company 3. Create an employee related to Marc Demo in IN Company 4. Log in with Marc Demo and create a timeoff 5. Approve the timeoff by Mitchel admin 6. Open the form view of approved timeoff by Marc Demo **Issue:** - The _get_durations method in l10n_in_hr_holidays attempts to update the l10n_in_contains_sandwich_leaves field whenever it runs, including when opening the form view of an approved time off. This causes an access error, as updates are not allowed for Marc demo in the approved state. **Solution:** - Added a state check in the _get_durations method to prevent updating the field for approved records. opw-4741162
The Point of Sale product configuration popup now works even when multiple pricelists have the same name. This prevents checkout staff from encountering errors in setups where pricelist names are reused, improving reliability without changing normal workflows.
Original PR description
Before this commit, an error would occur when opening the product configuration popup if two pricelists shared the same name. This was due to the pricelist name being used as a key, which must be unique. This commit resolves the issue by switching to the pricelist ID as the key, ensuring uniqueness and preventing errors when duplicate pricelist names exist. opw-4882900 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where employees with flexible schedules could have incorrect timesheet entries for one-day leave. The system now records leave using the average daily hours, keeping timesheets aligned with time off calculations.
Original PR description
After https://github.com/odoo/odoo/pull/209570 , the way work intervals are computed might not reflect real working time for flexible employees, since the virtual schedule is based on a weekly span. In this PR we chose to allocate a timesheet for single day leaves corresponding to average hours per day to be consistent with hr_holidays calculation. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now avoids trying to display raw binary file contents, such as PDF data, in the developer record data view. This prevents connection errors and keeps administrators' debugging tools usable when inspecting attachments.
Original PR description
Versions -------- - 18.0+ Steps ----- 1. Enable developer mode; 2. go to Settings / Technical / Database Structure / Attachments; 3. open a PDF attachement; 4. open developer tools; 5. click on Record / Data. Issue ----- > Connection lost. Trying to reconnect... Traceback in logger: > `UnicodeDecodeError: 'utf-8' codec can't decode byte ...` Cause ----- Commit 5ef4c07ada1b4 moved the `json_default` function from `date_utils` to `json`, with the purpose of letting it serialize objects besides `date` & `datetime`. When used for raw data of binary files like PDF, it encounters values that cannot be represented in UTF-8, and because `decode` defaults to strict error handling, an exception is thrown. Solution -------- When sending the `read` request to the ORM, only request fields of that aren't of type `binary` to ensure they're serializable. opw-4717657
Odoo now hides star and mark-as-read options on chatbot messages while a live chat thread has not yet been saved. This prevents users from triggering errors by clicking actions that cannot work in that temporary state.
Original PR description
**Before this PR:** the toggle-star and mark-as-read actions were visible on chatbot messages in a non-persisted livechat thread. Clicking these actions caused errors. This PR hides these actions when the thread is in a non-persisted state, preventing such errors. task-[4743758](https://www.odoo.com/odoo/project/1519/tasks/4743758) Forward-Port-Of: odoo/odoo#214382
The hardware drivers module now skips certificate updates when the data received from Odoo.com is empty. This helps prevent web server restart issues that could disrupt connected hardware services.
Original PR description
We now ensure that the certificate data returned by odoo.com is not empty, to avoid nginx not restarting. Task: 492610
Products available for store pickup will now still show an out-of-stock message when relevant. This helps shoppers understand product availability more clearly and reduces confusion during checkout or pickup selection.
Original PR description
Before the commit, when a 'pick up in store' was published, the out-of-stock message was hidden to avoid confusion. However, customers want to benefit from it, and now we reintroduce it. opw-4791969
Users can now return to the expense list after opening an expense from dashboard filters such as "To Submit". This fixes a navigation issue that made reviewing filtered expenses less efficient.
Original PR description
**Steps to reproduce:**
- Install the `hr_expense` module.
- Go to the Expense menu and click on "To Submit" in the My Expense dashboard.
- Open any record from the list view.
**Observation:**
- You can't go back to the list view after opening a record.
**Cause:**
- A tag `menu` was added to the action to hide breadcrumbs, but it removed all breadcrumb navigation, unable to go back.
https://github.com/odoo/odoo/blob/92993d7790bb641e5822a5358db35c7fcc7bd091/addons/hr_expense/static/src/components/expense_dashboard.js#L44
**Solution:**
- Used a better way by passing `{ clearBreadcrumbs: true }` to stop the breadcrumb from changing when a filter is applied.
opw-4790643
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prCancelling accounting entries no longer removes their reference when the entry is not linked to an expense. This prevents unrelated records from losing important identifying information when the Expenses app is installed.
Original PR description
### Issue: On 18.0 and 18.1, cancelling an `account.move` will clear the `ref` value in all situations if `hr_expense` is installed. While clearing the `ref` is necessary if unlinking an expense, this isn't the case for unrelated records. ### Solution: Check to see if the `expense_sheet_id` is set on the `account.move` to determine if the `ref` should also be removed. ### Additional Note: This flow was reworked in 18.2 via #189701, so we only need to adjust this for the affected versions. opw-4853903
Mobile dialog headers no longer use backend-specific colors such as the community theme color. This keeps website dialogs visually consistent for visitors and prevents internal Odoo styling from appearing on the public front-end.
Original PR description
Before this PR: header color of `Dialog` on mobile was "community color" or white, depending on the version of Odoo the database is running. This was creating issues in in the front-end, where the user of the website would see back-end specific colors in different `Dialog`s. This PR removes the color customization of `Dialog`'header as it was fitting a design line we had before we introduced MILK. task-4001365 Example of the issue (mobile front-end): <img width="376" alt="Screenshot 2024-06-20 at 10 54 04" src="https://github.com/odoo/odoo/assets/110090660/dad6a4b2-6164-45dd-9e16-0160e2989607"> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170087
The Discuss message composer now keeps the send button's opacity behavior aligned with other composer buttons when the message field is empty or focused. This creates a more consistent and polished user experience without changing how messages are sent.
Original PR description
Before this commit, the paper-plane button to send a message was not changing opacity when the composer was empty and the user focused on the composer. Whereas the other buttons such as the emoji picker were changing it. Now the opacity of this button is changing like the other buttons while still changing when the composer is not empty (like before this commit) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Italian point of sale flow now makes sure the invoice option is selected before validating an order. This prevents a validation error and helps sales complete correctly when an invoice is required.
Original PR description
## After this commit: - It ensure invoice checkbox is selected before validation, preventing the error and allowing the order to validate correctly. Runbot [link](https://runbot.odoo.com/odoo/runbot.build.error/159985) Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4916349) runbot-159985 task-4916349
Updates the Mexican DIOT report logic to use the correct reporting references after related column changes. This helps ensure DIOT tax report values are calculated from the intended categories and avoids confusion from outdated labels.
Original PR description
Description of the issue/feature this PR addresses: The language used in the DIOT documentation was confusing and even though we had the exact same description for two columns it turns out they were different, so we need to change the logic of a few columns to make it work as needed. This issue was addressed in PR: https://github.com/odoo/odoo/pull/217441, but a small adjustment still needs to be made in the l10n_mx_reports module. Current behavior before PR: The l10n_mx_diot_get_values function uses references to the old account.report.expression that were removed in the pr mentioned above. Desired behavior after PR is merged: The l10n_mx_diot_get_values function uses the new references to account.report.expression that were introduced in the pr of the community repo. opw-[4920577](https://www.odoo.com/odoo/my-tasks/4920577) "I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr" Forward-Port-Of: odoo/enterprise#89481
Shipping label printing now includes a unique print identifier when sending jobs to connected IoT printers. This prevents unnecessary printer-related error messages while keeping the label printing process working smoothly.
Original PR description
Before this commit, the shipping label printing would send documents to the printer without using a print_id, which would cause an error (but the document would still print). After this commit, we send a print_id using a UUID just like for report printing, ensuring no error occurs on the IoT. opw-4829908 Forward-Port-Of: odoo/enterprise#89930
Amazon order shipping now better recognizes DPD, Hermes, and Royal Mail carrier names used in Great Britain. This helps prevent carrier mapping issues when Sendcloud provides country-specific carrier codes, improving fulfillment accuracy.
Original PR description
For DPD and Hermes (not the others), Sendcloud adds an unnecessary ISO code. In order to keep it should it be necessary (e.g. rml_gb), we map them to the Amazon const instead of stripping the code. While testing, it was also found that royal mail seems to have been renamed and was thus not working. Forward-Port-Of: odoo/enterprise#87745