Wednesday, June 3, 2026
14 changes · 19.0
Resolved issues and error corrections
The Lithuanian tax report now correctly reverses the amounts shown on lines 29 to 34. This helps businesses produce accurate tax reporting figures and reduces the risk of filing incorrect values.
Original PR description
Lines 29 to 34 in the tax report should be negated opw-5985774
French PDP demo mode no longer requires authentication or one-time password setup, making test and demonstration flows easier to use. The change also corrects document-sending simulation when a Peppol user is involved, helping demos reflect the expected behavior more reliably.
Original PR description
And don't force the totp in demo mode Also, fix the mocking of the send_documents when sending documents with a Peppol User and not a PDP one. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#267461
This fixes a stock handling issue where community users could encounter a link to package information that is only available in the enterprise barcode app. The change prevents an unavailable reference from appearing, reducing errors during package-related stock workflows.
Original PR description
Reproducible only in community **Observation** outermost_result_package_id is a enterprise variable in stock_barcode: https://github.com/odoo/enterprise/blob/c5bbcaeed513817fdda1f3f42f4c9b2440264174/stock_barcode/models/stock_move_line.py#L27 It's computed from result_package_id.outermost_package_id: https://github.com/odoo/enterprise/blob/c5bbcaeed513817fdda1f3f42f4c9b2440264174/stock_barcode/models/stock_move_line.py#L29-L33 That variable is available in stock community : https://github.com/odoo/odoo/blob/616e82d7b3a53b1facf481e783baed3e99393d3c/addons/stock/models/stock_package.py#L48 runbot-241085
Warnings related to Italian SdI e-invoicing are now shown only when the active company is Italian and can actually use that service. This prevents irrelevant alerts for companies outside Italy, reducing confusion when a customer has Italian EDI set as a preference.
Original PR description
We shouldn't show warnings for `l10n_it_edi` if it's not possible to use it, even if the partner has its preferred EDI method set as `it_edi_xml`. Ticket [link](https://www.odoo.com/odoo/project.task/5985570) opw-5985570 Forward-Port-Of: odoo/odoo#267019
This fix adds a short timeout when Odoo updates installed apps, helping prevent long waits if another process is blocking the update. It also improves error handling so user-facing error messages can still appear in the right language when an update cannot continue.
Original PR description
Add a small lock timeout when updating modules just like it is done in master (19.3). Also add rollback so that translation of user errors work (in case we need to fetch the language from the database). runbot-234930 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Closing the website translation dialog now correctly discards placeholder text edits unless the user confirms them. This prevents unintended translation changes and avoids creating unnecessary edit history when nothing changed.
Original PR description
[FIX] website: stop saving an attribute translation on close Steps to see the issue: - Drop a form on your page - Add a placeholder on one of the inputs - Save your changes, and switch to another language - Start translating - Click on the input with the placeholder - Make some changes to the placeholder, but don't click "Ok" - Close the dialog => The changes are still applied. task-5190459 Forward-Port-Of: odoo/odoo#264052
This fixes an inconsistency in the HTML editor where the formatting toolbar could appear when selecting protected blocks like code or table of contents blocks via their handle. Users now get a more predictable editing experience because restricted content remains protected from toolbar actions.
Original PR description
Problem: The toolbar is disabled when selecting text inside Code or Table of Content blocks, but it remains active when selecting the block itself through the “⋮⋮” handle, leading to inconsistent behavior. Cause: `_updateToolbar` does not check whether `targetedNodes` contains only protected nodes. In such cases, the toolbar should be closed. Solution: When `targetedNodes` contains only protected nodes, prevent the toolbar from opening. Steps to reproduce: - Insert a Table of Content block. - Click on the “⋮⋮” handle while hovering the block. - Observe that the toolbar opens, while it should remain closed. task-6250028 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update improves the performance of Kanban dropdown settings by simplifying how their styling is applied. Users should see the same layout and behavior, with a small improvement in responsiveness and more reliable borders on different screen sizes.
Original PR description
This commit removes several expensive CSS selectors. After reviewing all usages, we found that `.o_kanban_card_manage_settings` always contains `div` elements with `col-*` classes as direct children. We also found that the border behavior depends on the available screen width rather than the bottom sheet itself: it is only needed when the elements are displayed side by side and should be removed when they are stacked vertically. An ´!important´ declaration was also added to compensate for the reduced selector specificity. 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
This change reverses a previous update that prevented the blog footer from being selected in the website builder. Business users regain the prior editing behavior, reducing disruption for teams managing blog page layouts.
Original PR description
This reverts commit[1] which introduced not_activable_element_selectors resource in html_builder and used it to make the blog footer not selectable in the builder. [1]:https://github.com/odoo/odoo/commit/87d0c49a6
This fix prevents rare errors that could occur when Odoo copies internal sets while Python is cleaning up unused objects. It improves reliability for environments running Python 3.14 without changing user-facing behavior.
Original PR description
In Python 3.14, iterating over weak references (like `transaction.envs`) can trigger a `RuntimeError: dictionary changed size during iteration`. This happens mostly because the Garbage Collector can remove a weakref while `OrderedSet.copy()` is rebuilding the set via `dict.fromkeys()`. Instead of re-initializing the set by iterating over its elements, we now directly use the dictionary's native `.copy()` method. This atomic operation prevents the GC from modifying the size of the underlying `_map` during the copy. Forward-Port-Of: odoo/odoo#267947
The link for sending documentation feedback has been corrected so users reach the right GitHub page to create a documentation issue. This prevents confusion from a broken page and makes it easier for users to report documentation problems.
Original PR description
This PR fixes the broken Documentation Feedback contact link. The current link points to: https://github.com/odoo/documentation/issue That URL returns 404. This updates it to: https://github.com/odoo/documentation/issues/new Related to odoo/odoo#267429.
This update corrects a technical issue that was causing an assertion error related to product naming within the inter-company purchase order to sale order rules. The fix ensures consistent product naming across different Odoo modules, preventing the error and maintaining proper data flow between purchase and sales processes. This resolves a potential data inconsistency.
Original PR description
**Step to reproduce** Reproducible in single app The "name" field make this assertion fails: ``` self.assertRecordValues(sale_order.order_line[0], [{ "product_id":…
**Step to reproduce**
Reproducible in single app
The "name" field make this assertion fails:
```
self.assertRecordValues(sale_order.order_line[0], [{
"product_id": no_variant_product_tmpl.product_variant_id.id,
"name": 'No Variant\nAttribute: Value 1',
```
**Observation**
The name will not be the same depending which app are installed, purchase_product_matrix, changes the name of the product if there is a attribute value of a never variant:
https://github.com/odoo/odoo/blob/f399f99d4e0e562d25e1de32336e8d6a55199b9b/addons/purchase_product_matrix/models/purchase.py#L168-L174
Which will be passed to the purchase_order_line:
https://github.com/odoo/odoo/blob/f399f99d4e0e562d25e1de32336e8d6a55199b9b/addons/purchase/models/purchase_order_line.py#L630-L634
that will pass the information to the sale order:
https://github.com/odoo/enterprise/blob/bce04ce24b66fb1a2481274eb3aebdc30a62766e/sale_purchase_inter_company_rules/models/purchase_order.py#L114
https://github.com/odoo/enterprise/blob/bce04ce24b66fb1a2481274eb3aebdc30a62766e/sale_purchase_inter_company_rules/models/purchase_order.py#L125-L126
breaking commit : https://github.com/odoo/enterprise/commit/bf286a0005b8e22ffa717419cd2dfacff861a265
runbot-242362This update corrects a bug that caused growth comparison percentages to fluctuate when users switched the order of reporting periods. The original code incorrectly assumed a specific period order, leading to inconsistent calculations. This fix ensures accurate growth comparisons regardless of the selected period sequence.
Original PR description
The feature had originally been implemnted at a time where the period_order couldn't be modified, and always corresponded to what we call 'descending' now. Because of that, we assumed the column at index 0 was always the most recent period ; which caused the growth comparison percentage to change when switching period order. Forward-Port-Of: odoo/enterprise#118835
This update resolves an issue where an error was incorrectly triggered when setting intrastat codes on product templates. The fix ensures the error is only raised when a product template lacks variants and uses dynamic attributes, aligning with the correct process for storing intrastat codes on product variants.
Original PR description
Problem: When saving an intrastat code on a product template with no variants, an error should be raised because intrastat codes are stored on the product variants. However, the error gets raised when creating a product template with intrastat code set because the variants get created after the product template is created, so it doesn't find any variant although the default variant will be created right after saving the product template. Solution: The constraint should only be triggered when saving the intrastat code on a product template with dynamic attributes and no variants. Since dynamic attributes are the only ones that can lead to a product template with no variants, we can check if the product template has dynamic attributes and no variants before raising the error. Forward-Port-Of: odoo/enterprise#118986