Monday, March 16, 2026
12 changes · 17.0
Enhancements to existing features
This update simplifies debugging browser-related issues in our tests. By allowing developers to specify the Chrome/Chromium version used, we can more easily identify and resolve compatibility problems. This improves the stability and reliability of our testing process.
Original PR description
This is mainly used to more easily provide an arbitrary version of Chrome/Chromium to debug browser's version specific breaking changes.
Resolved issues and error corrections
This update resolves a bug that prevented users from successfully merging contacts when removing one of the associated customers. The fix ensures the system handles multi-customer contact merging more reliably, preventing data errors and improving the customer management process.
Original PR description
When we select multiple customers and attempt to merge their contacts by removing one of the customers, this error occurs. Steps to reproduce: - Install the l10n_in module - Switch to IN company - Invoicing > Customers >Customers - Go to list view > Select all Customers > Actions > Merge - Click on Deco Addict, now come back and remove it - Click on Merge Contacts -> Traceback: ValueError: Expected singleton ...
This update fixes a potential issue where Mail Defender services could inadvertently cancel appointments through automated email interactions. A new form has been implemented to replace the original 'cancel/reschedule' link, preventing bots and automated systems from triggering cancellations. This ensures appointments are handled correctly and reliably.
Original PR description
…ointments Mail defender services may click URLs in emails to verify their contents. Additionally they may sometimes interact with the page and visit related pages. For this reason URLs sent in emails should not trigger any action directly nor contain any simple link that could trigger an action. The "cancel/reschedule" anchor URL is replaced with a form which bots should not click. We also port the fix done in appointment to the view in appointment as it replaces the original view in this module. task-4555579
This update ensures that the 'File' constructor in Odoo correctly identifies the MIME type of uploaded files. This change aligns with Chrome's latest standards, improving compatibility and preventing potential issues with file handling across different browser versions. It's a minor fix that enhances the reliability of file uploads.
Original PR description
The `type` option passed to the `File` constructor should be a string representing the MIME type of the content that will be put into the file. Chrome 146 actually follows the Fetch Standard and preserve the data URL MIME type parameter. This commit fixes the malformed MIME types passed to the `File` constructor to ensure proper compatibility with pre/post Chrome version 146 (and actually follow the spec). References: - https://chromestatus.com/feature/4874471565557760 - https://developer.mozilla.org/en-US/docs/Web/API/File/File#type runbot-241901
This update ensures that files created within the Odoo Enterprise system correctly identify their file type (MIME type) when used with older versions of Chrome. The change aligns with modern web standards, improving compatibility and preventing potential issues with file handling in different browsers.
Original PR description
The `type` option passed to the `File` constructor should be a string representing the MIME type of the content that will be put into the file. Chrome 146 actually follows the Fetch Standard and preserve the data URL MIME type parameter. This commit fixes the malformed MIME types passed to the `File` constructor to ensure proper compatibility with pre/post Chrome version 146 (and actually follow the spec). References: - https://chromestatus.com/feature/4874471565557760 - https://developer.mozilla.org/en-US/docs/Web/API/File/File#type runbot-241901
This update fixes a persistent problem where Chrome was creating unnecessary temporary files, leading to potential performance issues. By directing Chrome to use its temporary directory as its data directory, we now automatically clean up these files during testing, ensuring a cleaner and more stable testing environment. This resolves a technical issue that could impact test stability.
Original PR description
It's unclear since when or under what configuration exactly, but Chrome(ium?) seems prone to creating directories called `org.chromium.Chromium.*` (or some variant thereof) in the temp dir (some people report them to be prefixed by a `.`) and never clean them. By telling chromium that its tempdir is its data dir, it creates its litter in there, and we remove the entire thing during cleanup, solving the littering. Forward-Port-Of: odoo/odoo#253350
This update resolves a problem where tours on the website were failing to load translations correctly, particularly with recent Chrome versions. The change introduces a temporary step to ensure translations load before the tour begins, preventing delays and ensuring a smoother user experience.
Original PR description
This commit adds an intermediary step ensuring the proper page has been reached before actually doing the checks and avoiding to let startup requests (like the loading of the translations) pending at the end of the tour (and the eventual stop of the runner browser). Note: this is most likely due to a timing (indeterministic by nature) change, emphasised by recent Chrome versions (like v145). runbot-239128
This update resolves a problem where the website's onboarding tour wasn't loading translations correctly, particularly for tour requests. The change ensures translations load promptly, preventing delays and improving the user experience. This fix addresses an intermittent issue related to timing differences in Chrome browsers.
Original PR description
This commit adds an intermediary step ensuring the proper page has been reached before actually doing the checks and avoiding to let startup requests (like the loading of the translations) pending at the end of the tour (and the eventual stop of the runner browser). Note: this is most likely due to a timing (indeterministic by nature) change, emphasised by recent Chrome versions (like v145). runbot-239128
This update fixes errors in the Dutch SBR report exports, specifically correcting VAT identifiers and date formats. It also cleans up the XML formatting for improved readability, ensuring accurate and easily understandable reports.
Original PR description
Descriptions of the issues this commit addresses: The xbrli:identifier tags in the exported sbr and sbr icp files are wrong. They should always contain the company's vat without country code . The DateTimeCreation tag currently shows a date in a wrong format. It it YYYYMMDDhhmm but should be YYYY-MM-DDThh:mm:ss. Also the outputted xml is weirdly indented with many whitespaces and it makes it hard to read for no reason. --- Desired behavior after the commit is merged: This commit changes the values in the exported file to address those issues and adds the use of a cleanup helper to make the file human readable. --- task-5998939 Forward-Port-Of: odoo/enterprise#109359
This update fixes a bug that caused product variant combinations to get stuck in an infinite loop under specific attribute configurations. The change ensures the algorithm correctly progresses through options, preventing repeated, incorrect results. This improves the reliability of product configuration and reduces potential errors.
Original PR description
ISSUE: When generating product variant combinations, the cartesian product algorithm enters an infinite loop whenever the attribute lines follow the pattern: non-empty → empty → non-empty. In this…
ISSUE: When generating product variant combinations, the cartesian product algorithm enters an infinite loop whenever the attribute lines follow the pattern: non-empty → empty → non-empty. In this case, the DFS backtracking logic incorrectly returns to the empty middle line, which always forwards execution to the next line instead of propagating the backtrack upward. This causes the search to oscillate between the empty line and the deeper non-empty line, never allowing the first line to advance to its next value and repeatedly yielding the same combinations. FIX: This fix introduces a minimal, localized change: during backtracking, the algorithm now skips backward over empty attribute lines until it reaches a line that actually has selectable values (or reaches the root). This preserves all existing behavior, avoids altering the core iteration logic, and ensures that the DFS always makes progress and terminates properly. The change avoids modifying exclusion logic or altering the order of generated combinations. It simply ensures that empty intermediate lines do not trap the state machine in a loop. opw-5231175
This update ensures that customers download attachments from the customer preview of Sale Orders with the correct file name. Previously, the file name was inconsistent when downloading through the portal compared to the standard Sale Order form. This change improves the customer experience and data integrity.
Original PR description
Issue --> On the customer preview of a Sale Order, when the customer selects `View Details`, an attachment is opened on a new tab, and upon downloading it, the file name is different than if the report was downloaded via the Sale Order form view. Solution --> Add the `inline` option to the 'Content-Disposition' response header so that the file name is added in the case that a customer decides to download the attachment from the attachment preview. opw-4091262
This update resolves a problem where the system was incorrectly referencing a group of records instead of a single company record. This prevented proper processing of tax-related data for the l10n_be_codabox module. The fix ensures accurate data handling for this specific Odoo module.
Original PR description
We incorrectly used the recordset `self` instead of the record `company` This commit fixes this. Backport of PR https://github.com/odoo/enterprise/pull/94289 opw-6034633