Friday, January 16, 2026
12 changes · saas-18.4
Enhancements to existing features
This update simplifies the process for users to review and understand tax mappings within their fiscal positions. By updating the tax list view, users can now directly inspect replacement rules without needing to navigate through multiple steps, leading to more efficient tax management.
Original PR description
-Update the list view opened from the “Taxes” stat button to make tax replacement rules easier to inspect. Impact: -Users can review tax mappings directly without extra clicks. Back-port of: https://github.com/odoo/odoo/pull/240033 task-5374524
This update adds a 'Reload Data' button to error dialogs in the Point of Sale system, providing users with a quick way to resolve common issues without needing technical support. For Restaurant POS, orders will sync before reloading, minimizing potential data loss. This improves user experience and reduces downtime.
Original PR description
Purpose: ------------ - On Error dialogs, users only had "Ok" or could close the dialog, with no guidance on what to do next. - Many blocking issues are resolved simply by reloading POS data. Before this commit: ----------- - Error dialogs only had an "Ok" button. After this commit: ------------------ - Added a "Reload Data" button for quick recovery of common blocking issues. - Added a warning message in the reload data popup - For POS Restaurant, orders will attempt to sync before reloading data, reducing the risk of data loss. Task-5353590 Forward-Port-Of: odoo/odoo#238112
Resolved issues and error corrections
This update resolves a critical issue causing the IoT Box to freeze when used as a kiosk. The team updated the browser configuration to correctly pass arguments, preventing excessive memory consumption and restoring stable operation. This ensures consistent performance for our IoT Box deployments.
Original PR description
In odoo/odoo#233676 we switched from `chromium-browser` to `chromium` to adapt to new executable name in raspbian. We also need to update this name in the check to set the arguments of the browser, or they will never be passed. This fixes the issue where the IoT Box freezes when using it for kiosk, as the browser was eating all the memory. Forward-Port-Of: odoo/odoo#243979
This update provides users with more detailed error messages when sending documents to HMRC. By including the specific error code and message from HMRC, users can quickly diagnose and resolve issues, reducing the need for support. This enhancement improves the user experience and streamlines the process for UK VAT compliance.
Original PR description
Currently, when an error occurs while sending a document to HMRC, the user only receives a generic error message. This change enhances the error feedback by including the error code and message returned by HMRC, giving the user clearer insight into the cause of the failure. This helps users identify issues more easily and reduces unnecessary support requests. Forward-Port-Of: odoo/enterprise#104407
This update fixes an issue where EU Standard invoices (Peppol Bis 3.0) were incorrectly displaying the customer's reference instead of the company registration number for key identifiers. The change ensures invoices now use the correct company identification data as required for EU e-invoice standards. This improves data accuracy and compliance.
Original PR description
The base `_get_party_node` uses `commercial_partner.ref` for `PartyIdentification` and `commercial_partner.vat` for `CompanyID`. There was no logic to prefer `company_registry` when available. Refs:…
The base `_get_party_node` uses `commercial_partner.ref` for `PartyIdentification` and `commercial_partner.vat` for `CompanyID`. There was no logic to prefer `company_registry` when available. Refs: An independent invoice example: https://developer.vertexinc.com/einvoicing/docs/belgium-example-documents https://github.com/odoo/odoo/blob/40c862476382c68d7f452284074f5b44955d1f98/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_20.py#L1564-L1566 https://github.com/odoo/odoo/blob/40c862476382c68d7f452284074f5b44955d1f98/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_20.py#L1585 Steps To Reproduce: - Have accounting, account_edi_ubl_cii and contacts installed. - Create a Belgian company and set the VAT, Company ID and Reference (under Sales & Purchase tab). - Create a contact and set his eInvoice format in Accounting tab to EU Standard (Peppol Bis 3.0) and make sure to give him a country. - Go to accounting -> Customers -> Invoices and create an invoice for the contact you created. - Send the invoice to the contact and download the XML from the chatter and inspect it. - PartyIdentification/ID shows the partner's ref field value (e.g., "(odoobe)") instead of the company registration number. - PartyLegalEntity/CompanyID uses the VAT number instead of the company registration number (ondernemingsnummer). Ticket [link](https://www.odoo.com/odoo/project.task/5418190) opw-5418190 Forward-Port-Of: odoo/odoo#243143
This update resolves an issue where scheduled email notifications and activity updates would fail when records were deleted using a cascade delete. Now, notifications related to deleted records are automatically skipped, preventing errors and ensuring a smoother user experience. This improves reliability and avoids confusing messages for users.
Original PR description
RATIONALE When a cascade delete occurs in DB, ORM methods are not called. More specifically loosely connected records using res_model / res_id pair are not removed when unlink override exists. SPECIFICATIONS Fix various use case in mail * notifications sent for scheduled messages; * failure notifications management; * activities mark as done; Task-5138556 Forward-Port-Of: odoo/odoo#243964 Forward-Port-Of: odoo/odoo#233071
This update resolves an error that occurred when rescheduling tasks in the Gantt chart, specifically when dependent tasks lacked defined start dates. The fix ensures the rescheduling process only calculates dates when a start date is available, preventing a 'type error' and ensuring smooth task management.
Original PR description
Currently, an error occurs when moving a task to a later date if the dependent task does not have a start date. **Steps to replicate:** * Install `mrp` with demo data and Enable `Work Order…
Currently, an error occurs when moving a task to a later date if the dependent task does not have a start date. **Steps to replicate:** * Install `mrp` with demo data and Enable `Work Order Dependencies` from settings. * Bill of Materials > Stool >Miscellaneous > Enable `Operation Dependencies` * Operations > Add a new operation and set `Blocked By` to `Assembly` * mrp > Create new manufacturing order with stool and confirm > Work orders > Start Assembly (Play button) * Planning> Planning by Work Center > Move the pill to a forward date. **Error:** `TypeError: '>' not supported between instances of 'bool' and 'datetime.datetime'` **Root cause:** * After the changes [1], `maintain buffer rescheduling` was added. It calculates the earliest possible date for the dependent task using function [2] whenever the main task is moved. This function requires the start dates to be defined to work correctly, so if a start date isn’t set yet, it causes this error. **Solution:** * Only calculate the first possible date for a dependent task if it has a start date. [1]: https://github.com/odoo/enterprise/commit/bb1da734103d47eb7b8bd47daf87579840f40a2d#diff-23c1f41bd05d5a951c68a2753826b109967d2928e05cd21893b5b3f835ba3663 [2]: https://github.com/odoo/enterprise/blob/d266cb978ff7d7c47c042e34bbe3376a3f8ac517/web_gantt/models/models.py#L404 sentry-6738017612
This update resolves an issue where the website builder incorrectly defaulted to the 'Add' tab when removing content from the 'Customize' tab. Previously, the builder wouldn't return to the last active tab, leading to a frustrating user experience. This fix ensures the builder correctly navigates back to the last selected tab after removing options, improving usability.
Original PR description
During [website builder refactor], there was a mistake in handling fallback of the builder tab. If the user is in the "customize" (aka "Edit") tab and changes the document in a way that there is no more options in the tab, the builder was supposed to move back to the last other tab opened, but just always fell back to "blocks" (aka "Add") Steps to reproduce: - Open website builder - Drop a section - Click on "Theme" tab - Click on the section - Click on "Remove this block" - Bug: the builder falls back to the "Add" tab instead of "Theme" tab [website builder refactor]: 9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 task-5493971
This update fixes a critical issue where changing the backdrop color of a popup in Odoo 18.4 and 19.0 caused the popup to disappear unexpectedly. The team addressed this by switching to a class-based approach for managing popup visibility, ensuring a stable and reliable user experience.
Original PR description
Steps to reproduce in 18.4: - Add a popup on the page - Click on the popup - Change the backdrop color - Hide the popup by clicking on its entry in "Invisible Elements" - Undo - Redo - Bug: The popup disappears Steps to reproduce in 19.0: - Add a popup on the page - Click on the popup - Hover a color in the colorpicker of the backdrop option of the popup - Stop hovering the color - Bug: The popup disappears
This update resolves a technical error that prevented users from processing payments through Razorpay in the POS module, specifically when using Indian localization. The fix removes a problematic code element that was causing an error, ensuring smooth payment processing for our Indian customers.
Original PR description
Steps: - Configure a Razorpay payment method in POS with Indian localization. - Open a POS session and process an order. - Start the Razorpay transaction. Issue: - An error pop-up is shown: 'RazorpayPosRequest' object has no attribute 'sudo'. Cause: - The code attempts to call sudo() on RazorpayPosRequest, which is not a model and does not support sudo. Fix: - Remove the unnecessary sudo() access from RazorpayPosRequest. Task-5501634 Forward-Port-Of: odoo/odoo#244177
This update resolves a problem where imported sale orders containing kit products were incorrectly splitting sales into individual lots. The change prevents this behavior, ensuring accurate POS sales processing for kit products. This improves the reliability of our POS system.
Original PR description
When a kit product with tracked components is sold, and if the kit is tracked by lots, the imported sale order lines were being split by lots causing issues in the POS session. Although kits are not supposed to be tracked by lots, this commit prevents the splitting of sale order lines by lots when the product is a kit. opw-5423833 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242785
This update fixes a bug where sale warnings weren't showing for customers linked to a company contact. The change ensures that warnings set on a company are correctly displayed when creating sales orders with customers associated with that company. This improves the accuracy of sales alerts and prevents missed opportunities.
Original PR description
### Issue: Due to this issue, the sale warning message is only shown when the warning message is set on partner itself, not partner's company. #### Steps to reproduce (with demo data): 1- Enable `Sale warnings` from setting. 2- On `Contacts` app, open `Azure Interior`, and add a sale warning from `Notes` tab. 3- Create a SO with `Brandon Freeman` from `Azure Interior` as the customer. 4- No sale warning is shown. ### Cause: The IMP #192211 replaces warning popup with a message. However, it doesn't check for the warning from `partner_id.parent_id`, which was the case before that PR. This is the case with purchase as well. opw-5404983 Forward-Port-Of: odoo/odoo#242050