Friday, June 26, 2026
14 changes · saas-19.3
Enhancements to existing features
This change improves how dialog windows are handled on the web interface by making style checks more targeted. The result is smoother performance during actions like window resizing, scrolling, and table sorting.
Original PR description
Avoid using the :has() selector and use a specific style on the `documentElement` instead to replicate the same behavior. This reduces work during the "Recalculate Style" phase. It lowers recalculation time during window resizes, heavy scrolling, and table sorting by preventing broad selector matches and limiting style checks to elements with the specific class. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#272118
Resolved issues and error corrections
This change fixes an unstable point-of-sale test that could sometimes look in the wrong order list before an update had fully finished. It improves reliability by making the test wait for the update to complete and by using the correct Paid filter on the ticket screen.
Original PR description
The tour `test_product_level_discount` was failing intermittently because the order status update request was not fully processed before the nextstep executed. As a result, the tour searched for the order in the wrong ticket list. This commit adds a proper wait for the backend request after updating the order status and applies the Paid filter on the ticket screen to ensure the tour searches in the correct order list. Runbot Error: [241140](https://runbot.odoo.com/odoo/runbot.build.error/241140) Forward-Port-Of: odoo/enterprise#109371
Documentation and clarification updates
This update adds Djody Kort to Codeforward B.V.’s existing Corporate CLA contributor list. It is a legal paperwork change that confirms authorization for an upcoming bug fix contribution, with no direct impact on customers or product behavior.
Original PR description
Adds me (Djody Kort) to the contributor list of the existing Codeforward B.V. Corporate CLA (`doc/cla/corporate/codeforward.md`). This precedes an upcoming `[FIX] service/server` bug-fix contribution. Codeforward's Corporate CLA v1.0 is already on file (signed by Sander Lienaerts), and I am authorized to contribute on Codeforward's behalf. Forward-Port-Of: odoo/odoo#269240
This update corrects a Belgian VAT number used in an automated test so it matches the current validation rules. It keeps the test scenario intact while preventing failures caused by stricter third-party validation checks in newer systems.
Original PR description
This commit fixes a Belgian VAT validation check in `test_import_partner_retrieval_bank_account_number` as the provided vat number isn't a valid one. It keeps the spirit of the test by still having vat number mismatch, but with a valid value. The python-stdnum library used for this validation added a stricter check since version 2.2, which is used in Ubuntu Resolute 26.04. References: - https://github.com/arthurdejong/python-stdnum/commit/7ca9b6ce7b1f2b4d1bf164c2af83a8a77bc919d2 runbot-939796 Forward-Port-Of: odoo/odoo#272082
The search dialog in bank reconciliation now shows the full reference text instead of cutting it off. The date and balance are also aligned more clearly at the top, making the list easier to scan and compare.
Original PR description
This commit will remove the text-truncate from the reference so that we have it full. Also removing the align item so that the date and balance are on top. no task id Forward-Port-Of: odoo/enterprise#120963
The German SKR03 accounting template now points to the correct default accounts for cash discounts. This helps ensure bookkeeping setup uses the right account codes and reduces the risk of misconfigured accounting entries.
Original PR description
The default cash discout accounts referenced in the
German skr03 template used the wrong account codes.
The template has been updated with the right ones.
task-4915939
opw-4909059
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#271886
Forward-Port-Of: odoo/odoo#271024This change cleans up automated Point of Sale test data by removing an unnecessary product tracking setting and consolidating overlapping test cases. It also moves a stock-related test to the Stock POS area so the test suite is better organized and easier to maintain.
Original PR description
*: pos_stock In this commit: --- - Remove the `tracking` field from the HOOT test data. - Remove `test_order_unexisting_lots`, as it is already covered in `pos_stock`. - Move `test_order_existing_lot_gs1_nomenclature` from `point_of_sale` to `pos_stock`, where the stock-related behavior belongs. runbot-941084 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures the preview shown for favorite email templates updates correctly when users switch between target models. Previously, the template title changed as expected, but the preview could stay stuck on an older template, which could cause confusion when choosing a mailing layout.
Original PR description
Overview ------ When having a favorite mailing (template) for target model X, and another one for target model Y, and try to create a new mailing for target model X, the theme selector will first…
Overview ------ When having a favorite mailing (template) for target model X, and another one for target model Y, and try to create a new mailing for target model X, the theme selector will first show the template X with the correct title and preview, however when switching to model Y, the theme selector will show the title of the tempalte Y but the preview is always the one of template X. How to reproduce ------ 1. Create a new mailing for a target model X (e.g. `mailing.contact`) 2. Set a content for that mailing (you can choose from the existing themes) 3. Set that mailing as a favorite (using the favorite star button) 4. Create a new mailing for another target model Y. 5. Redo steps 2. and 3. 6. Create a new mailing, and set the target model to X (You should see the mailing X in the theme selector with the correct title and preview) 7. Change the target model to Y. Expected Behavior ------ Both the title and the preview of the mailing X in the theme selector should change into the title and the preivew of mailing Y. Current Behavior ------ The title of the template is changed into the one of Y however the preview remains the one of mailing X. Cause of The Issue ------ After the first mount of the `FavoritePreivew` component, when the template changes in the props, the body content of the preivew is not updated with the new value. Task-6332946 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#272065
This fix ensures the pencil button used to suggest forecasted demand stays visible even when the Forecasted Stock row is hidden. It prevents an unrelated display change from hiding an important action in Master Production Schedule, making planning smoother for users.
Original PR description
Steps to reproduce:
1. Install Manufacturing.
2. Enable 'Master Production Schedule' in the Settings.
3. Go to [Manufacturing -> Planning -> Master Production Schedule].
4. Ensure 'Demand Forecast' and 'Forecasted Stock' rows are enabled from the dropdown.
5. Observe the edit pencil button next to 'Forecasted Demand' is visible.
6. Hide 'Forecasted Stock' using the rows filter dropdown.
Issue:
The edit pencil button ("Suggest Forecasted Demand") next to the 'Forecasted Demand' row disappears when the 'Forecasted Stock' row is hidden.
Expected behavior:
The edit pencil visibility should not be affected by the 'Forecasted Stock' row.
opw-6240596
Forward-Port-Of: odoo/enterprise#120208This update removes a warning generated by the documentation system when it starts up. It helps keep the code compatible with newer Docutils versions and reduces the risk of future breakage.
Original PR description
Using `Publisher.set_components()` triggers a `PendingDeprecationWarning` stating that the method will be removed in Docutils 2.0. This commit fixes the warning by passing the component names (`reader`, `parser`, and `writer`) directly into the `Publisher` constructor during instantiation, ensuring compatibility with upcoming Docutils versions. runbot-940246 Forward-Port-Of: odoo/odoo#272117
This update fixes a test issue in WhatsApp channels where a seen-status update could be sent before the connection was ready to receive it. As a result, the seen indicator now loads reliably and the test no longer fails intermittently.
Original PR description
The "Allow SeenIndicators in WhatsApp Channels" test delivers the seen update over the bus with `_sendone`, but nothing waited for the websocket to subscribe to the channel first. When the notification was sent before the subscription landed it was dropped, the member's seen_message_id was never updated client-side and the seen indicators never rendered, so the assertion timed out. The current user is a member of the channel, so it is subscribed at connection time: wait for the subscription together with `start()` (listener registered first) before opening the channel and sending the notification. https://runbot.odoo.com/odoo/error/242021 Forward-Port-Of: odoo/enterprise#121857
This change fixes an automated test so it works in databases that only have the Invoicing app installed. It prevents test failures in community setups where the accounting-specific payment state is not available.
Original PR description
The `in_payment` state does not exist in community with only the Invoicing module installed. It is added in `enterprise` in the Accounting module. runbot.build.error-939451 Forward-Port-Of: odoo/odoo#267475
The website generator’s page limit message has been rewritten to be more general instead of naming a fixed number. This gives the team more flexibility to adjust page limits later without needing another wording change.
Original PR description
Page limit note fixed by being more general instead of stating a blatant 200. This gives us more leeway to control the nbr of pages IAP side. Forward-Port-Of: odoo/enterprise#121827 Forward-Port-Of: odoo/enterprise#121671
This change corrects a tax test so it no longer treats all taxes the same when a fiscal position is applied. Taxes that are not linked to any fiscal position are now correctly kept, while only taxes tied to a fiscal position are expected to be removed, making the test match real behavior more accurately.
Original PR description
map_tax on an empty fiscal position now preserves taxes with no fiscal_position_ids. Filter those out in test_tax_unit_auto_fiscal_position so the assertion only checks that taxes bound to a fiscal position are dropped by the unit FP. comunity PR: https://github.com/odoo/odoo/pull/268273 task-id 623151 Forward-Port-Of: odoo/enterprise#121889 Forward-Port-Of: odoo/enterprise#121525