Thursday, March 12, 2026
15 changes · 18.0
Enhancements to existing features
This update removes unnecessary code that subtracted the current production order from a list of related orders. The existing filtering logic already effectively achieved the same result, ensuring cleaner and more efficient code. This change improves code readability and maintainability without impacting functionality.
Original PR description
`- self` is redundant given there's already `.filtered(lambda p: p.origin !=self.origin)`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update refines how analytic accounts are assigned within Odoo. Specifically, the order of fields related to analytic distribution has been adjusted for better organization and usability. This change improves the clarity and efficiency of managing analytic accounting data.
Original PR description
Reordering the analytic distribution field. task-5887978 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update introduces support for the US ISO 20022 format for payments, aligning with evolving banking standards. Initially, it focuses on domestic ACH transfers, with plans for future expansion to include international and mixed-type transfers. This change is necessary to accommodate new payment methods being implemented by US banks.
Original PR description
Backport of #90378 US banks are starting to implement the ISO 20022 format for transfers between domestic and international accounts. However, the major banks (Bank of America and JP Morgan Chase) have slightly different implementations of the specification vs SEPA, as such a new payment method must be created. In this first step, the US ISO 20022 payment method supports only domestic ACH transfers; however, future work will support international and mixed-type transfers as the need arises. opw-5727613
This update aligns Odoo's Peppol EAS field selections with the latest Peppol codelist version 9.5. This ensures continued compliance with European e-billing regulations and standards, maintaining accurate data exchange for EDI transactions.
Original PR description
A new version of codelist (v9.5) has been released. This commit aligns the Peppol EAS field selection with the Peppol codelist v9.5 See the changelog here : https://docs.peppol.eu/edelivery/codelists/changelog.html Updates applied according to the official v9.5 changes. task-5461213 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
This PR allows users to inherit the group_by hook in the POS order report. Previously, this hook was ineffective because it wasn't called during the initial report generation. This change enables more flexible report customization for business users.
Original PR description
Description of the issue/feature this PR addresses: The pos order report has a group_by hook that can be inherited but the hook is not called in the init Current behavior before PR: inherit the group_by is useless because the init does not call it Desired behavior after PR is merged: the group_by hook can be inherited --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a technical issue that caused tracebacks when using the pivot table autofill feature. The fix corrects a misidentification of the function being called, ensuring consistent behavior with vertical autofills. While the core result isn't corrected, this resolves a reporting error.
Original PR description
When autofilling a positional pivot row header horizontally, we would get a traceback because we were calling `_autofillPivotColHeader` instead of `_autofillPivotRowHeader`. Note that this fix only fixes the traceback, the result is not correct, but is consistent with autofilling a positional col header vertically. Task: [5909266](https://www.odoo.com/odoo/2328/tasks/5909266) Forward-Port-Of: odoo/enterprise#109620
This update corrects a warning message appearing during tax report adjustments in the French localization. The issue stemmed from an unnecessary reference to 'box_B1' within the report's calculations. Removing this element ensures the report functions correctly without displaying the misleading warning, improving the user experience for French accounting users.
Original PR description
Steps to reproduce: 1- Install Accounting and l10n_fr and switch to French company 2- Go to [Settings > Accounting] and make sure fiscal localization is set to France 3. Go to [Accounting > Reporting > Tax return] and change the Report to Tax Report (FR) 4. Make an adjustment to the B1 field Description of issue: Warning message displayed where the text does not mention B1 Expected behavior: No warning message should be displayed when editing B1 Why this happens: 'box_B1' is used in the the expression total comparison when it should not be opw-5960001
This update resolves an issue where clicking on 'reply' links within Odoo mailboxes didn't function correctly. Now, clicking on a reply link will automatically jump to the original thread of the message, improving the user experience and ensuring messages are easily accessible within conversations. This fix enhances the efficiency of email management within Odoo.
Original PR description
Before this change, clicking on a `message in reply` in mailboxes had no effect. The expected behavior is for it to jump to the message in its origin thread. To fix it, this commit ensures that `useMessageHighlight` hook receives the correct thread which in this case is the origin thread of the message in reply. task-5343804
This update resolves a technical issue that prevented users from running the 'Polish eInvoice' download process when the KSeF system returned a 'Rate Limit' error. The fix ensures the system correctly handles these errors, preventing a traceback and allowing the download process to continue smoothly. This improves the reliability of the Polish e-invoicing functionality.
Original PR description
Before this commit: Steps 1. Create a Polish company 2. Run scheduled action "Polish eInvoice: Download vendor bills from KSeF" 3. If the customer gets 429 Too Many Requests => A traceback error is raised as message isn't an attribute in KSeFRateLimitError object `AttributeError: 'KSeFRateLimitError' object has no attribute 'message'` This happens because `KSeFRateLimitError` does not define a `message` attribute. The message is only passed to the base Exception and stored in `args`. After this commit: Use `str(e)` to properly retrieve the exception message and avoid the AttributeError. opw-6009380
This update fixes a usability issue on mobile devices where a key button was hidden within a dropdown, requiring extra scrolling. The change ensures the loan creation process is smoother and more accessible on smaller screens, allowing users to easily calculate loan amounts. This improves the overall user experience for mobile users.
This update corrects a bug where resending invoices to MER would overwrite existing addendums, even if the invoice hadn't been sent. The fix ensures that existing addendums are updated instead of creating new ones, streamlining the invoice processing workflow and preventing data inconsistencies.
Original PR description
Issue: when resending an invoice already sent to MER, the existing addendum is overwritten even when the invoice is not sent to MER. Solution: updating values on the existing addendum rather than creating a new one, if it already exists. task-none --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue where closing a popup modal using the ESC key was not functioning correctly. The fix ensures that the modal closes reliably, regardless of whether the popup contains interactive elements. This improves the user experience and prevents unexpected modal persistence.
Original PR description
Steps to reproduce: =================== - Add a Popup snippet to a page - Remove all links/buttons inside the popup - Save and wait for the popup to appear - Press ESC -> Nothing happens. Cause:…
Steps to reproduce:
===================
- Add a Popup snippet to a page
- Remove all links/buttons inside the popup
- Save and wait for the popup to appear
- Press ESC
-> Nothing happens.
Cause:
======
https://github.com/odoo/odoo/blob/a922c31fa7ccd1107b31287ab1f75697fae874f8/addons/website/static/src/snippets/s_popup/000.js#L219-L226 when the popup contains no tabbable elements, `this.el.focus()` was called. `this.el` refers to the `.s_popup` div, not the `.modal` element that Bootstrap monitors for keyboard events. As a result, the ESC keydown event never reached Bootstrap's handler and the modal stayed open.
When focusable elements (links, buttons) were present, `tabableEls[0].focus()` correctly focused an element inside `.modal`, so ESC worked fine in that case.
Solution:
=========
Replace `this.el.focus()` with `this.el.querySelector(".modal").focus()` so focus lands on the `.modal` element allowing Bootstrap's built-in ESC handler to fire correctly in all cases
opw-5891054
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update resolves an issue where quotation documents with lines having a zero subtotal amount were being discarded during upload. The fix ensures that these lines are now correctly processed, preventing data loss and maintaining accurate quotation records. This change was introduced to address a regression caused by a previous update targeting a different Odoo version.
Original PR description
Versions: --- Reproducible on 18.0+ Fix targets 16.0 to keep the code consistent across versions Issue: --- Due to this issue, a line with zero subtotal amount will be discarded in quotation document upload. Steps to reproduce: --- 1- In sale app, upload a quotation document without line amount. (You could use the one attached in the ticket) 2- As you see, lines are discarded. Cause: --- This regression is introduced in https://github.com/odoo/odoo/pull/245862, to prevent lines with zero amount in accounting. The https://github.com/odoo/odoo/pull/245862 targets 16.0. However, the `sale_edi_ubl` is introduced on 18.0. Fix: --- Instead of `_retrieve_line_vals` (`_import_fill_invoice_line_values` on 16.0) returning `None` when `price_subtotal` is not present, it can keep returning `dict` with an extra key `price_subtotal`, and filter out unwanted line in `_retrieve_invoice_line_vals` itself. opw-5977735 Forward-Port-Of: odoo/odoo#251463
This update clarifies potential errors (specifically code 9004) that users might encounter when using the Instagram integration within Odoo. It provides helpful guidance to troubleshoot issues directly, reducing the need for support tickets. This improves the user experience and streamlines problem resolution.
Original PR description
Purpose ======= Explain the possible errors for the code 9004, to help users debugging their Odoo servers without creating a ticket. Task-5972197 Forward-Port-Of: odoo/enterprise#109319
This update resolves an issue where adding attributes to archived product templates caused errors. The change ensures all variants (active and archived) are counted, preventing template deletion and maintaining archived variants when their template is archived. This improves the flexibility of managing product templates.
Original PR description
When adding attributes to an archived product template, an error was raised because the template was incorrectly deleted. This happened because variant counting only considered active variants. Now counts all variants (active and archived) to prevent template deletion, and filters variants before activation to keep them archived when their template is archived. @qrtl QT6449