Thursday, March 12, 2026
11 changes · 18.0
Resolved issues and error corrections
This fix makes an existing customization point in the Point of Sale order report actually run when the report is initialized. Businesses using custom POS reporting can now reliably add their own grouping logic without workarounds.
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