Wednesday, January 14, 2026
25 changes · saas-19.1
New functionality added to Odoo
This update reflects a recent change in the daily UMA (Mexican Wage Base) value as determined by INEGI, effective February 1st, 2026. The new value of 117.31 MXN ensures accurate payroll calculations for Mexican employees within the Odoo Enterprise system. This change is necessary to comply with updated Mexican tax regulations.
Original PR description
As per the INEGI press release (published on January 8, 2026), the daily UMA value has been updated for 2026. New value: 117.31 MXN Effective date: February 1st, 2026. This commit adds this new parameter value to "Mexico: Daily UMA". Reference: https://www.inegi.org.mx/app/saladeprensa/noticia/10533 target: 19.0 task-5488243 Forward-Port-Of: odoo/enterprise#104064
Enhancements to existing features
This update allows system administrators to customize the main Odoo Enterprise home menu with a targeted message. Administrators can set a message via a database configuration, such as a maintenance notification, which will then be displayed to all users. This provides a flexible way to communicate important information directly to users.
Original PR description
Display a message on home menu based on an ir.config_parameter that can be added directly in the database by the system administrator.
The ir.config_parameter is sysadmin.message and should be a json loadable. The format shoud be something like this:
{
"type": "warning",
"replace": false,
"warning_type": "user",
"message": "`<span>A maintenance operation is planned on your server on <strong>2026-01-15</strong> between 14h and 15h</span>`"
}
Forward-Port-Of: odoo/enterprise#103831
Forward-Port-Of: odoo/enterprise#102239Resolved issues and error corrections
This update resolves an issue preventing non-admin users in multi-company environments from updating their profile picture or preferred language. Previously, a rule blocked access to company information, causing an error. This change bypasses the rule to ensure a smoother user experience across different company setups.
Original PR description
### Impacted versions: 19.0 and later ### Steps to reproduce: - Install at least 2 languages - Create multiple companies - Log in as marc demo and select only one company - Try to update profile picture or modify preferred lang ### Current behavior: When a non-admin user operates in a multi-company environment with only some companies active in their context, the `res_company_rule_employee` record rule blocks access to `company_ids` when trying to read all assigned companies. This causes an Access Error in the `res.users.new()` method when it attempts to count the user's companies to manage the `base.group_multi_company` group membership, preventing users from changing their profile picture and updating their preferred language Task: [5458607](https://www.odoo.com/odoo/project/49/tasks/5458607) Forward-Port-Of: odoo/odoo#243259
This update fixes an issue where Point of Sale orders weren't consistently linked to the correct company within the Odoo system. Now, when a new order is created, the system automatically sets the company ID to match the configuration of the current Point of Sale session, ensuring accurate reporting and accounting. This improves data integrity and simplifies business operations.
Original PR description
When creating an order, if due to some reason the company_id is not set on the order data, we set it to the company of the POS session's config. opw-5470175 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243249
This update fixes a technical issue that prevented Odoo from properly exporting code translations for the new odoo.orm package. By specifying the package name in the framework's export process, Odoo can now accurately capture and manage code translations, ensuring consistent localization across the platform. This improves the quality and accuracy of our translated code.
Original PR description
New package odoo.orm was added in PR https://github.com/odoo/odoo/pull/182727 The new package's name must be specified in ``TranslationModuleReader._export_translatable_resources`` to allow the framework to export its code translations. 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 Forward-Port-Of: odoo/odoo#243584
This update resolves an issue where users without specific group permissions would prevent superuser mode from correctly pinning or unpinning embedded actions within the Documents module. The change adds a check for superuser status, ensuring these actions function as expected during automated processes or when using sudo. This improves stability and reliability for all users.
Original PR description
Prior to this commit, an AccessError would be raised when pinning or unpinning embedded actions if the current user did not belong to the 'documents.group_documents_user' group. This could cause issues during operations running in superuser mode (e.g., automated actions, installation scripts, or sudo() calls) because the check strictly validated the user's groups without considering the environment's superuser flag. This commit adds a check for `self.env.su` to ensure the AccessError is not raised when the environment is in superuser mode. Task-5380727 Forward-Port-Of: odoo/enterprise#104043 Forward-Port-Of: odoo/enterprise#101106
This update resolves an issue where the HTML editor would automatically highlight links when a new Todo was created and the page was refreshed. The fix ensures the highlighting only occurs when a user actively selects a link within the editor. This improves the user experience and prevents unexpected visual distractions.
Original PR description
Problem: Add a link as the first line in a todo and refresh the page. The link is highlighted as soon as the page loads, even though no selection was made by the user. Cause: After 880734ee1f1f4d20d92c44e3cedcf2c61c0da908, when the editor is loaded without an active selection, the selection is set to the first element in the editable. If that element is a link, the class `o_link_in_selection` is added automatically. Solution: Only add `o_link_in_selection` when the selection is on a link and the editable is focused. Steps to reproduce: - Open a Todo. - Add a link as the first text. - Refresh the page. - Observe the link is highlighted. task-5436106 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241277
This update fixes a visual issue where links within editable fields were incorrectly highlighted when the field itself wasn't focused. This change aligns the testing process with the corrected behavior, ensuring consistent and accurate highlighting. The fix was originally identified and addressed in the community version of Odoo.
Original PR description
Links that are the first deep node in an editable are highlighted even when the editable is not focused which was fixed in the community PR. Adapt the test to reflect the correct behavior opw-5436106 Forward-Port-Of: odoo/enterprise#103676
This update resolves an issue where weighing information lingered on the customer display after a product was weighed. Now, the display automatically clears when the weighing dialog is closed, ensuring a cleaner and more accurate customer experience. This improves the usability of the point-of-sale system.
Original PR description
Before this commit, after weighing a product, the weighing details would remain on the customer display even after closing the weighing dialog. Only weighing another product could get it to change. After this commit, the weighing details on the customer display are always cleared once the weighing dialog is closed.
This update resolves an issue where Odoo encountered errors when processing emails with attachment content types incorrectly identified as '*/*'. To ensure emails are processed reliably, the system now defaults to 'application/octet-stream' for these cases, minimizing disruption while acknowledging the sender's responsibility for correct email formatting.
Original PR description
In some rare cases it would seem that some systems construct emails with attachments reporting `*/*` as the Content-Type. While trying to parse such content in Odoo, it causes issues with the…
In some rare cases it would seem that some systems construct emails with attachments reporting `*/*` as the Content-Type. While trying to parse such content in Odoo, it causes issues with the standard CPython email library, as no standard handler exists for '*/*' content-types: Example error: ``` File "/usr/lib/python3.13/email/contentmanager.py", line 25, in get_content raise KeyError(content_type) KeyError: '*/*' ``` This is not compliant with valid MIME types defined in RFC2046/section-3, but in real life scenarios, blocking the processing of an incoming email in Odoo because of this might be excessive. While not a perfect solution, we will assume that attachments falsly reported as `*/*` are to be processed as 'application/octet-stream' content types. This should cover most use-cases, and if it still fails, we will consider that it's up to the original email sender to be RFC compliant. OPW-5425093 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242193
This update resolves an issue where clicking a link in the portal triggered a false 'page view' event for customers. A simple fix was implemented by adding a variable to the request headers from the link preview, ensuring accurate tracking of customer portal activity. This improves the reliability of our portal analytics.
Original PR description
When a link to the portal is sent from the chatter via message or log note, the preview of the link triggers that the page was viewed by customer. As a solution a variable was added to the request headers coming from the previewer. opw-5237785 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243061
This update resolves an issue where user images within the referral module were not aligned correctly. The fix ensures a consistent and professional appearance for user profiles, enhancing the overall user experience. This improves the visual quality of the referral process.
Original PR description
This fix ensures that the user's image is correctly aligned task-5264613 Forward-Port-Of: odoo/enterprise#99488
This update fixes an issue where a distracting element appeared in the bank reconciliation journal when there were no transactions. The change hides this element when the quick-create view is open and empty, resulting in a cleaner and more professional user experience, particularly on mobile devices.
Original PR description
Before this PR, in the bank reconciliation journal, the no-content helper remained visible when the quick-create view was opened and there were 0 entries. This was unexpected behavior and caused overlapping issues, especially on mobile views. With this PR, the no-content helper is hidden whenever the quick-create view is open and there are 0 entries either isGrouped or not. task-5470591 Forward-Port-Of: odoo/enterprise#103776
This update resolves a bug where the default purchase tax wasn't correctly associated with the appropriate company in a multi-company Odoo setup. The fix ensures that the correct tax is selected when invoices are imported, preventing potential accounting errors. This improves data accuracy and reliability.
Original PR description
In v18.4, the invoice import has been refactored with these 2 PRs: - [189979](https://github.com/odoo/odoo/pull/189979) - [75327](https://github.com/odoo/enterprise/pull/75327) This introduced a small bug where, in a multi-company setup, an `account.tax` could be selected from the wrong company when `_fetch_mail()` was called from the cron `Mail: Fetchmail Service` or if the method was called manually from the wrong company. Ticket: opw-5375785 Forward-Port-Of: odoo/enterprise#103190
This update resolves an issue where the Shopee API testing environment no longer works due to a recent change by Shopee. The update corrects the API path used in our testing, ensuring continued functionality for our Shopee integration. This ensures our testing remains aligned with Shopee's current system.
Original PR description
Shopee has changed the API path and the original testing API paths are no longer valid. Forward-Port-Of: odoo/enterprise#103939
This update corrects a previous navigation enhancement for the forum on mobile devices. The prior change caused an unnecessary breadcrumb display when the forum was part of a course. This fix ensures the correct breadcrumb is shown, improving the user experience and preventing duplicate navigation elements.
Original PR description
This PR fixes an oversight introduces in Commit[^1]. With Commit 1, we improved the navigation by showing the back button everywhere on the forum but this created an issue due to a rule in `website_slides_forum` rendering the whole breadcrumb if the forum is a course one. | saas-19.1 and above | This PR | |--------|--------| | <img width="391" height="205" alt="image" src="https://github.com/user-attachments/assets/385a6d95-d8b4-4693-8c13-457e2b06f2fe" /> | <img width="390" height="145" alt="image" src="https://github.com/user-attachments/assets/429979a9-ed09-4fe7-8ded-e95909a9c97b" /> | [^1]: https://github.com/odoo/odoo/commit/bb5b7cfa284a55e6dd3a5deb4870bcfae28033af task-5490243 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a minor issue where the theme selector iframe sometimes took longer to load, impacting user experience. The fix ensures the iframe and its associated assets are fully loaded before the test is executed, resulting in faster and more reliable performance.
Original PR description
This commit fixes an undeterministic issue with the theme selector iframe's loading. It could take a bit longer for it to be properly displayed. When [1] was merged it introduced some non-determinism as we now needed to load an iframe that could contain shadow roots. This iframe needs to load some more assets, which leads to loading wait times. This change wasn't taken into account for the fixed test in this commit. Now we properly await for the iframe to be loaded before querying elements inside it. [1]: https://github.com/odoo/odoo/commit/0f7ee1764e8b59029003c6ad7269e185b30c6b43 runbot-234965 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a visual inconsistency in the website logout process. Previously, only the iframe would disconnect, leaving users with a misleading connection indicator in the main menu. The update now ensures a complete logout experience for all users, regardless of whether they are accessing the website through an iframe.
Original PR description
Problem --------- When Portal and Website are installed, a user that is in the Website app and tries to logout from the website iframe (not from the menubar) will get disconnected correctly. However, only the iframe gets redirected; not the whole page. This leaves the user in an interesting stage where he is disconnected but still seem connected when looking at the menubar. Solution --------- Instead of using a form in the XML, we use a custom JS tool that will correctly redirect the user depeding on whether or not there is an iframe. task-5262619 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a technical issue with the demo data for the HR Recruitment module. The previous setup incorrectly used user records instead of partner records, which caused problems with how the demo data was displayed. This fix ensures the demo data accurately reflects the expected record structure.
Original PR description
author_id expects a res.partner record. In this commit: Replace the user record with the corresponding partner record to avoid passing an incorrect recordset in demo data. Forward-Port-Of: odoo/odoo#241260
This update corrects a technical issue where notification messages incorrectly moved channels to the top of the list. This change ensures consistency with other notification features and avoids unnecessary channel updates. The fix improves the user experience by preventing channel list disruptions.
Original PR description
Before this commit, a notification message would bump a channel on top of the channel list. This happens because the update of `last_interest_dt` is done on the `message_post` method, which is called when posting notification messages. This behaviour is unwanted as those messages are not considered important enough to bump the channel, and is inconsistent with other features such as push notifications and undread badge. This commit fixes the issue by updating `last_interest_dt` on the actual "human" flow of posting a message. task-5138777 Forward-Port-Of: odoo/odoo#241510
This update enhances the reliability of the barcode tour process by ensuring all calls are completed before the tour ends. The team removed a synchronous check for DOM elements, which could lead to unpredictable errors. This change improves the overall stability and performance of the barcode functionality.
Original PR description
After validate an operation, it's still beter to wait for trigger .o_stock_barcode_main_menu to be sure the calls are finished before closing the tour... especially when assertions are made after the tour in python. runbot-error-id~234470 Forward-Port-Of: odoo/enterprise#103699
This update corrects formatting issues in the Japanese and Korean translation files for the accounting module. Specifically, it fixes problems with incorrect line wrapping within the translated text, ensuring proper display and readability of financial reports and user interfaces. This improves the overall user experience for international customers.
Original PR description
Forward-Port-Of: odoo/odoo#243513
This update corrects formatting issues within the Japanese localization files (AI) for the Odoo Enterprise platform. Specifically, it fixes problems with line wrapping in the PO files, ensuring correct display and functionality of translated text. This improves the overall quality and accuracy of the Japanese user experience.
This update fixes an issue where the website menu incorrectly linked to the most recently created page when multiple pages with the same name were created. Previously, the menu would update even with existing pages, leading to inconsistent page links. Now, menu entries are only updated when a new page is created without a prior association.
Original PR description
With commit 19302cd40347065fcd937bd54e6dce27fe4940cc, when a page is created, menu entries with a url corresponding to the created page are updated to set their `page_id` to the new page. The update may also be triggered when creating several pages with the same name in a row. This commit updates a menu entry on page creation only if no page were already associated to the menu. Steps to reproduce: - Create a new page, call it "test" (will be available on `/test`) - Create a new page, call it "test" (will be available on `/test-1`) - Go to editor menu - Bug: both entries point to `/test-1` - Create a new page, call it "test" (will be available on `/test-2`) - Go to editor menu - Bug: the first one (and the new one) is pointing now to `/test-2` task-5186653 Forward-Port-Of: odoo/odoo#243312
This update resolves a minor issue in a performance test related to menu loading within the Odoo web application. The change optimizes a query number used in the test, resulting in faster and more reliable test execution. This improves the overall stability and efficiency of the Odoo system.
Original PR description
Forward-Port-Of: odoo/odoo#243298