Monday, November 24, 2025
11 changes · saas-18.3
New functionality added to Odoo
This update introduces new tax calculation helpers specifically designed for Electronic Data Interchange (EDI) transactions within Odoo. These helpers improve the accuracy and efficiency of tax reporting for businesses using EDI, ensuring compliance and streamlining financial processes. This change supports a key requirement for businesses utilizing EDI for accounting.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Enhancements to existing features
This change improves how Odoo records screencasts by switching to a lossless H.265 format and removing a setting that was making files much larger without improving quality. The result is more reliable recordings for comparing test runs, while also reducing storage use compared with the previous output.
Original PR description
- `-g 0` turns out to significantly increases file size without increasing quality (apparently it makes every frame an i-frame) - lossless video seems useful for comparing different runs, and while it *is* costly it's pretty reasonable for screencasting (5~6 times the size of a normal output, but a third the size of current outputs) - "lossless h264" (per ffmpeg) does not seem to actually be lossless - lossless av1 does work (and is slightly smaller than h265), but the libsvtav1 shipped by ubuntu does not support it, and libaom is *extremely* slow, so that might be something to revisit in a few years Testing on the main flow tour (desktop), - the current setting generates a 40MB file - removing `-g 0` generates a 2.6MB file, quality seems about the same - h264 pseudo-lossless yields a 9.4MB file - h265 lossless is 16.9MB - av1 (libsvtav1) is 2.5MB - av1 lossless (libaom) is 13.2MB
Resolved issues and error corrections
This update makes the testing tool less disruptive when no tests are found by logging a message instead of raising an error. It also improves test run reporting in headless mode by logging root suite results at the end of each run, making automated test output easier to review.
Original PR description
[FIX] web: Hoot - remove error if no tests This commit replaces the error thrown if there is no test found by a log. --- [IMP] web: Hoot - log root suites at end of run This commit makes the unit test runner log all root suites results after each test run, only in headless mode. Forward-Port-Of: odoo/odoo#236647
Miscellaneous changes
The aim of this commit is updating the POT file as we forgot to do it in this commit [[1]]. We also translate the Business ID term for the correct one. no task id [1]: https://github.com/odoo/odoo/commit/7ef02a48f3c93cb8aca9337a27c3c87636fb03a0 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236609 Forward-Port-Of: odoo/odoo#236469
Original PR description
The aim of this commit is updating the POT file as we forgot to do it in this commit [[1]]. We also translate the Business ID term for the correct one. no task id [1]: https://github.com/odoo/odoo/commit/7ef02a48f3c93cb8aca9337a27c3c87636fb03a0 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236609 Forward-Port-Of: odoo/odoo#236469
This change updates the recorded state code for Odisha in India from "OR" to "OD". It helps ensure customer addresses and related documents, such as sales orders, use the correct official code.
Original PR description
**Steps to reproduce:** 1. Install the `Contacts` module. 2. Go to Contacts > Create a new contact. 3. Select country India, and state Odisha. 4. Create a sales order using the newly created contact. **Issue:** As per [Government of India](https://www.iso.org/obp/ui/#iso:code:3166:IN), the state code was officially changed from "OR" to "OD" in 2023. However, Odoo still uses the outdated code. <img width="407" height="163" alt="image" src="https://github.com/user-attachments/assets/1631a831-f455-4a51-886f-7e4ed691add0" /> **Solution:** Update the name of the state from "OR" to "OD" in state records. **opw-4935633** Forward-Port-Of: odoo/odoo#234697
This change fixes an issue where certain POS items, including gift cards and e-wallet products, could fail to appear on the product screen. By aligning the product category setup, the POS now loads the expected items correctly and avoids test failures in the runbot environment.
Original PR description
Before this commit: ======================= The `whiteboard_pen` product had no assigned category, while the main POS configuration was limited to specific categories. As a result, `whiteboard_pen` was not displayed on the product screen. When no products were loaded, special products like gift cards and e-wallets also not shown,showing the `Load Sample` button instead of products. This caused tour tests expecting gift cards on the screen to fail. After this commit: ====================== Assigned the same product category to whiteboard_pen as used in the POS configuration. This ensures that the product appears on the product screen and special products like gift cards also load properly, preventing the tour test from failing. Runbot Error: 233434, 233435
This change ensures that when a filter is enabled on a combined report, it is also enabled on the related sections that depend on it. As a result, the filter will appear properly in the user interface and behave consistently across all report parts.
Original PR description
When using a composite report whose sections aren't used independently, enabling that filter on the composite report needs to enable it on their sections as well, else it won't show in the UI. This is the standard behavior for all report filters. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236893
This fix ensures that when a filter is enabled on a composite cash basis report, the same filter is also enabled on its sections. As a result, the filter shows up properly in the user interface and behaves consistently with other report filters.
Original PR description
When using a composite report whose sections aren't used independently, enabling that filter on the composite report needs to enable it on their sections as well, else it won't show in the UI. This is the standard behavior for all report filters. Forward-Port-Of: odoo/enterprise#100148
Fixed an issue where enabling the analytic grouping filter on a combined report did not always make it available in the report sections. This brings the behavior in line with other report filters and ensures users can see and use the option where expected.
Original PR description
When using a composite report whose sections aren't used independently, enabling that filter on the composite report needs to enable it on their sections as well, else it won't show in the UI. This is the standard behavior for all report filters. Forward-Port-Of: odoo/enterprise#100135
This update resolves an issue where the HTML editor was creating unnecessary empty elements after font size adjustments. The fix ensures that leftover empty text nodes are properly removed, improving the editor's stability and preventing potential display problems. This enhances the overall user experience.
Original PR description
Steps to Reproduce: - Create a link in the editor (e.g., "abc"). - Select all and change the font size from 14 to 80. - Two empty tags are created before and after the formatted <span><a></a></span> with only FEFF Characters. - Change the font size again (e.g., back to 14). - Multiple empty tags remain in the DOM. Description of the issue this PR addresses: - In the removeFeffs method, FEFF characters are replaced with empty text nodes, which can lead to unwanted empty elements and empty text nodes being left in the DOM. Desired behavior after PR is merged: - Empty text nodes resulting from FEFF replacement are now properly removed, preventing leftover empty elements in the DOM. task-5097770 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The aim of this commit is updating the POT file as we forgot to do it in this commit [[1]]. We also translate report column names in the PO files as we have official translation for it. This commit also disables the translation on the TXT EC sales report. no task id [1]: https://github.com/odoo/enterprise/commit/4887ed53d3a22fdcd766ab0ae77da7cb0498e5a3 Forward-Port-Of: odoo/enterprise#99971 Forward-Port-Of: odoo/enterprise#99887
Original PR description
The aim of this commit is updating the POT file as we forgot to do it in this commit [[1]]. We also translate report column names in the PO files as we have official translation for it. This commit also disables the translation on the TXT EC sales report. no task id [1]: https://github.com/odoo/enterprise/commit/4887ed53d3a22fdcd766ab0ae77da7cb0498e5a3 Forward-Port-Of: odoo/enterprise#99971 Forward-Port-Of: odoo/enterprise#99887