Friday, July 11, 2025
15 changes · saas-18.3
Resolved issues and error corrections
This fix prevents the developer record data view from trying to load raw binary file contents, such as PDFs, that cannot be safely converted for display. It avoids a connection-lost error when inspecting attachment records, improving reliability for administrators and support teams.
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 Forward-Port-Of: odoo/odoo#218401 Forward-Port-Of: odoo/odoo#209702
Odoo now cleans Peppol endpoint values before checking whether they are valid, including values already present after a database upgrade. This prevents existing partner records with older invalid formatting from causing errors during recomputation.
Original PR description
Commit odoo/odoo@769a7ec5ed4c introduced a restriction to ensure the Peppol Endpoint only contains valid characters. This causes some issues with upgraded database having existing partner with an invalid value. This commit ensures we properly sanitize both Peppol Endpoint existing and new value (before testing its validity). [opw-4925940](<https://www.odoo.com/odoo/project.task/4925940>) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents the hardware drivers module from replacing certificate data when the response from odoo.com is empty. This helps avoid service restart problems that could disrupt connected hardware operations.
Original PR description
We now ensure that the certificate data returned by odoo.com is not empty, to avoid nginx not restarting. Task: 492610 Forward-Port-Of: odoo/odoo#218325
The Contacts state list now uses the official name "Odisha" instead of the outdated "Orissa" for India. This keeps customer address data aligned with current Government of India naming guidelines and avoids confusion when users select Indian states.
Original PR description
<b>Steps to reproduce:</b> 1. Install the `Contacts` module. 2. Go to Contacts > Create a new contact. 3. Select country "India", then open the State dropdown. 4. Observe that "Orissa" appears instead of the updated name "Odisha". <b>Issue:</b> As per [Government of India guidelines](https://www.mha.gov.in/sites/default/files/2022-08/odishaAlterationAct2011%5B1%5D.pdf), the state name was officially changed from "Orissa" to "Odisha" in 2011. However, Odoo still uses the outdated name in the state selection. <b>Solution:</b> Update the name of the state from "Orissa" to "Odisha" in state records. <b>opw-4935633</b> Forward-Port-Of: odoo/odoo#218342
Products using in-store pickup will now still display an out-of-stock message when inventory is unavailable. This helps shoppers understand product availability clearly instead of missing important stock information during the buying process.
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 Forward-Port-Of: odoo/odoo#218284
Employees with minimal point-of-sale permissions can no longer use the +/- button to set cart item quantities below zero. This prevents unauthorized negative quantities that could affect order accuracy and checkout controls.
Original PR description
Fix issue where minimum rights employee were able to put negative orderline qty in the cart with the `+/-` button task-id: 4922318 enterprise PR: https://github.com/odoo/enterprise/pull/89669 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217774
This fix restores the ability to use common image formats such as GIF, JPEG, SVG, WebP, and ICO for menu icons. It matters because businesses can keep using existing branded icons without converting everything to PNG.
Original PR description
Description of the issue/feature this PR addresses: PR #135607 breaks support of image types other than `png` for menu icons. This puts back the support for previously supported image types. Current behavior before PR: You can't use a menu icon which has a type other than `png`. Desired behavior after PR is merged: You can use `gif`, `ico`, `jfif`, `jpeg`, `jpg`, `svg` and `webp` files like version `16.0`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#218131
This update makes an automated stock workflow test more dependable by avoiding a timing issue where recent changes could appear to disappear during the test. It helps keep quality checks stable and reduces false failures in the stock module.
Original PR description
The `test_add_new_line_in_detailled_op` fails in 18.0+ since clicking on the head of the modal content will trigger a web_read before the records has been updated in db. So that the last applied change disappear. This commit attempt to clean the tour to be more reliable. runbot-113534 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216860 Forward-Port-Of: odoo/odoo#216645
The live chat test flow now waits until a real chat session is created before closing the window and asking for a rating. This prevents intermittent failures in chatbot rating validation caused by slower systems or network delays, improving confidence in release testing.
Original PR description
Chatbot rating tours can sometimes fail. They all share the same steps: start a chat, close the chat, then rate the agent. Before closing the chat, the tours check that the message is present in the DOM, assuming it has been posted, then close the chat window. However, this is not enough to guarantee the thread was properly created. Initially, a temporary thread is shown. When the user sends the first message, a temporary message is posted on that thread while the real thread is created asynchronously. As a result, closing the chat after checking the message in the DOM doesn’t guarantee the window belongs to the persisted thread. If it doesn’t (due to slow network or high CPU load), the rating panel never shows because the real thread was never closed. This commit fixes the issue by waiting for the persisted thread to be created before closing the chat. fixes runbot-159683 Forward-Port-Of: odoo/odoo#218318
This fix prevents an automated mail discussion test from reloading the page before an emoji reaction has been fully removed. It improves the reliability of Odoo's quality checks without changing the user-facing mail experience.
Original PR description
Before this commit, tour "discuss_channel_public_tour" was failing non-deterministically at the following step: ``` .o-mail-Message:not(:has(.o-mail-MessageReaction)) ``` This happens because prio steps added a new reaction and asserted it was shown. It clicks on reaction to remove it and then page reload to see the reaction is gone. Problem is that it can reload page too fast and the RPC to remove the reaction did not have time to occurs. This commit fixes the issue by awaiting message no longer has reaction before page reload. Fixes runbot-error-227769 Forward-Port-Of: odoo/odoo#218132
This fix corrects translation data generated by a recent refactoring across several localization reporting modules. It helps ensure country-specific reports and labels display the right translated text for users in affected regions.
Original PR description
Forward-Port-Of: odoo/enterprise#84682
Users can now share shortcut folders directly from the cog menu next to the breadcrumbs in Documents. This restores a missing sharing option and makes folder sharing more consistent, while also cleaning up unused code.
Original PR description
Before this commit, the share action in the cog menu (next to the breadcrumbs) wasn't available for shortcut folders. This commit fix this issue. This commit also removes some dead code. Task-4897840 Forward-Port-Of: odoo/enterprise#89161 Forward-Port-Of: odoo/enterprise#88512
The India reporting module now uses the official state name "Odisha" instead of the outdated "Orissa" in GSTR-3B report records. This keeps reports aligned with Government of India naming guidelines and avoids presenting outdated regional information.
Original PR description
Issue: As per Government of India guidelines, the state name was officially changed from "Orissa" to "Odisha" in 2011. However, Odoo still uses the outdated name in report. Solution: Updated the records from "Orissa" to "Odisha". opw-4935633 Forward-Port-Of: odoo/enterprise#89947
The Belgian payroll report for double holiday pay now uses the correct label instead of referring to the 13th month. This makes payroll documents easier to identify and reduces confusion for HR teams and employees.
Original PR description
Originally, the name structure for double holiday follows "13th Month -[Legal Name] -[year]". It has been renamed to "[Payslip name]- [Legal Name] -[year]" .
Shipping labels now include the required print identifier when sent to IoT printers. This prevents unnecessary error messages while keeping label printing behavior unchanged for users.
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#89962 Forward-Port-Of: odoo/enterprise#89930