Saturday, March 21, 2026
25 changes · master
Resolved issues and error corrections
Manufacturing reports and screens now continue to show seconds in time values after a platform default changed. This preserves the level of time detail manufacturing users were already relying on for bills of materials, operations, work centers, and work orders.
Original PR description
Previously, showSeconds was True by default. It has now been set to False by default so we need to enable it for MRP modules. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#254836
Fixed an issue in the HTML editor where clicking directly on an image during image transformation could cause an error screen. This makes editing images more reliable for users working with embedded media in apps like To-Do.
Original PR description
### Steps to Reproduce: - Open the To-Do app. - Insert an image (e.g. using /media). - Select the image. - Click on Image Transformation from the toolbar. - Click directly on the image instead of a transformation handle. - A traceback occurs. ### Purpose of this commit: - Since [commit](https://github.com/odoo/odoo/commit/633267efef54bc6f88d2d6b5517e2dd56ec135f0#diff-7611cc3ab11e330827e96b643deb9605c42512e004f50b1ea12dded7ca6bd63e), the default transformation type value was removed. When clicking directly on the image (instead of a handle), a transformation state could still be created with an undefined type, which later caused a crash in mouseUp. task-5998153 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#251712
The POS Restaurant dashboard now shows the full set of available rows in its pivot tables and correctly sorts tables meant to highlight top values. Column labels have also been corrected so restaurant managers can read dashboard figures more confidently.
Original PR description
## Description of the issue/feature this PR addresses: Current behavior before PR: - In the POS Restaurant dashboard, most pivot tables have 15 available rows, but only the first 10 rows are used. - Pivots meant to display 'Top' values were not properly sorted. - Some column names did not correctly represent the values they contain. Desired behavior after PR is merged: - Pivot tables now use all 15 available rows. - Pivots are sorted when required by the relevant columns. - Column names now correctly represent the values they contain. Task: [6019270](https://www.odoo.com/odoo/project/2328/tasks/6019270) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#253256
The website builder now correctly shows the hover highlight when users move over a larger section containing the selected element. This makes editing page layouts clearer and prevents confusion when choosing which part of a page to adjust.
Original PR description
Commit 53ae0a9f646808632ca1ca396466e1c0bb5a73c7 adds a temporary overlay on hover of elements with options. But the overlay was not shown on over of an ancestor of the target. This is because it relied on the resize observer to call the `refreshPosition`, which does not happen if the element on which the hover overlay should appear was already observed. This commit adds an explicit call to `refreshPosition` after the creation of the hover overlay. Steps to reproduce: - Open website builder - Click on a column in a section - Hover the section outside of the column - Bug: no hover overlay is shown on the section element task-6013371 Forward-Port-Of: odoo/odoo#252425
Adjusted the report header bubble layout so company addresses with one additional line fit more reliably. This reduces the risk of address details being cut off or crowded on printed reports while keeping the overall design consistent.
Original PR description
The bubble layout was changed in commit[1] but the logo size is too big to accomodate a sufficient amount of address lines. task-5951770 [1]: odoo/odoo@8eb61a245cd3b650e309fdb55d24654c34d785cd Enterprise PR: https://github.com/odoo/enterprise/pull/110858 | Before | After | |--------|--------| | <img width="566" height="182" alt="image" src="https://github.com/user-attachments/assets/bb2671c3-62c8-45df-8039-4a9455d21982" /> | <img width="566" height="182" alt="image" src="https://github.com/user-attachments/assets/d36ca5fe-24b3-4a74-8323-2c587d11495e" />| | <img width="566" height="182" alt="image" src="https://github.com/user-attachments/assets/2b1c7ce9-2d14-47ab-9fc0-b4bca33e412f" /> | <img width="566" height="182" alt="image" src="https://github.com/user-attachments/assets/df189280-b274-4dea-9ec1-9482c47b00e5" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#249432
Signature fields in mail-related property tracking are now skipped when changes are logged. This prevents errors when records with tracked signature data are updated, improving reliability without changing user workflows.
Original PR description
With https://github.com/odoo/odoo/pull/232814, the signature type was introduced as a valid property in properties field type. When a property field of type signature is marked as tracked and its parent field changes, the system attempts to track the signature update. Since tracking image or binary content is not supported and is not implemented, this leads to a NotImplementedError. To prevent this crash, signature property fields are now excluded from tracking. task-5966544 Forward-Port-Of: odoo/odoo#250923
Editing an existing message in Mail will no longer show other users an “is typing” indicator. This avoids misleading participants into expecting a new message when someone is only making a quick correction.
Original PR description
Before this commit, when editing a message, this was triggering the "is typing" on this member. This "is typing" was only stopped after the long timeout of 1 min. Typing indicator is meant to expect other others to receive a new message, so this is misleading to show the "is typing" when editing the message. Usually editing message is to fix small typo in a very short time, so it's quite expected for other people to see the new changes without requiring UI indicator other than the "(edited)" label on message textual content. This commit fixes the issue by not notifying is typing on composer of message edition. Task-6045905 Forward-Port-Of: odoo/odoo#254747 Forward-Port-Of: odoo/odoo#254453
The Canadian localization now clarifies that the sales tax number field can be used for both PST and Quebec QST registration numbers. This helps businesses in Quebec enter the correct tax registration information without confusion.
Original PR description
Currently, the `l10n_ca_pst` field label and help message implies that it is only for the PST number; however, in Quebec the proper name for such a value is the Quebec Sales Tax or (QST) registration number. As such, by updating the help message we clarify to the users that both PST and QST should be placed here. task-5866356 Forward-Port-Of: odoo/odoo#254943
A small typo in the online shop product design settings was corrected so the system targets the intended styling option. This helps ensure website editors see the expected behavior when configuring product layouts, with no broader functional change.
Original PR description
task-6047633 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#254953 Forward-Port-Of: odoo/odoo#254817
This update adds a test to make sure accounting document numbering continues to behave correctly when database savepoints are rolled back. It helps prevent future internal code changes from silently breaking sequence reliability.
Original PR description
The aim of this commit is to ensure the feature doesn't get silently broken in case some underlying code gets reworked. task-id: None Forward-Port-Of: odoo/odoo#255053
This fixes a visual spacing issue that could appear after uploading files in forms such as employee work permit details. Action buttons now stay aligned as expected, improving the editing experience without changing upload behavior.
Original PR description
This PR completes the changes introduced in: https://github.com/odoo/odoo/commit/2cbb735f5eecb7c31db8245b8d598d7193992a05 ### Issue: A `<div>` was added to prevent click propagation in the FileUploader, but it introduced unintended extra spacing in several parts of the UI ### Cause: The added `<div>` affected the layout by taking up space where it should not ### Fix: A specific class is added to neutralize the layout impact of this element while preserving the click propagation behavior ### Steps to reproduce: - Install `hr' - Create a new Employee - Go in Private Information > Work Permit - Upload a file Before the fix, the edition's buttons are in another line opw-5918379 Forward-Port-Of: odoo/odoo#254982
The messaging menu now shows the correct unread count when Discuss is not open. Archived or muted channels are no longer counted, preventing users from seeing misleading notification badges that disappear only after opening the menu.
Original PR description
Before this commit, when page loading in the webclient while not using Discuss (Discuss app closed, no chat window and bubble), the messaging menu counter could be wrong. Steps to reproduce: - Open…
Before this commit, when page loading in the webclient while not using Discuss (Discuss app closed, no chat window and bubble), the messaging menu counter could be wrong. Steps to reproduce: - Open Discuss app - Make a new channel - Post a message in this channel - Mark conversation as unread - Open Advanced settings of this channel - Archive this channel - Go back to home menu - (make sure no chat windows and chat bubbles are open) - Reload the page => The counter of messaging menu should be over-estimated by 1. For example if all conversations are read, counter is 1 instead of 0. Opening the messaging menu refreshes the counter to correct value 0. This happens because when using Discuss, the counter is deduced from all channels that have been fetched and for which current user is a member of these channels. Implicitly, archived channels are filtered out. However when not using discuss, the channels as member have not been fetched, and instead an estimation of the counter is fetched from server. This counter was computed on channel members that have unread messages. When a channel is archived, that doesn't mean the members are archived too. In the steps listed above, the self member is still active. As a result, the self member of this archived channel had contribution to the counter estimation, hence the value of 1 instead of 0. This commit fixes the issue by keeping computation on channel members but it checks also that the channel is active, as the resulting counter is based on active channels. This commit also fixed a similar issue where the counter was wrongly taking muted channels into account on the global counter when not using Discuss. This lead to a similar problem on non-archived but muted channels were they contribute in the estimated counter but not in the actual in-use counter. Task-6014754 Forward-Port-Of: odoo/odoo#255119 Forward-Port-Of: odoo/odoo#254231
This change removes leftover debugging output from spreadsheet chart tests. It keeps the automated test results cleaner and easier for developers to read, with no expected impact on everyday users.
Original PR description
some debugging lines were left in the final PR. Task-0 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#255103
This update corrects a recent change that disabled a key feature – the display of seconds – in MRP modules. To ensure accurate time tracking within MRP processes, this setting has been re-enabled. This ensures MRP modules accurately reflect time-based activities.
Original PR description
Previously, showSeconds was True by default. It has now been set to False by default so we need to enable it for MRP modules. Forward-Port-Of: odoo/enterprise#111269
This update resolves a problem where the company logo was appearing too large on various financial reports. The fix targeted a generic CSS selector that was affecting multiple reports, ensuring consistent logo sizing across the enterprise platform. This improves the visual presentation of key financial documents.
Original PR description
This selector is generic and is impacting all the reports in `report_templates.xml` which are making use of the same class name. task-5951770 Community PR: https://github.com/odoo/odoo/pull/249432 Forward-Port-Of: odoo/enterprise#110858
This update fixes a previous issue where the tax returns journal wasn't automatically translated into all supported languages. The team has now implemented a standard translation process, ensuring the journal is correctly translated for all users and languages, improving accuracy and usability.
Original PR description
Currently, the tax returns journal is created in the code and not via the standard `@template` function that makes sure it is always translated in the installed languages. So for now it was only translated in language of the current user. We refactored the code so the journal gets created via the standard `@template` function and thus automatically gets translated into all the installed languages. task-5921458 Forward-Port-Of: odoo/enterprise#111261 Forward-Port-Of: odoo/enterprise#107465
This update fixes an issue in the GSTR report testing process. Previously, the tests were incorrectly deleting tax amounts. Now, the system removes taxes from the account move line, ensuring more accurate report calculations and compliance. This change improves the reliability of the GSTR reports.
Original PR description
Before this PR: - A test case was deleting taxes. After this PR: - Removed the taxes from the account move line instead of deleting the taxes. Related PR: https://github.com/odoo/odoo/pull/245243 task-5472834 Forward-Port-Of: odoo/enterprise#111384 Forward-Port-Of: odoo/enterprise#105174
This update streamlines the new user sign-up experience by removing unnecessary steps in the automated tour. This improves the onboarding process, making it faster and more intuitive for new customers to get started with Odoo Enterprise. The change is a simple fix to enhance user experience.
Original PR description
runbot-238363 Forward-Port-Of: odoo/enterprise#110843
This update corrects a minor issue where ticket buttons in the Helpdesk email templates were incorrectly identified as links. The change ensures buttons are properly recognized and function as intended within the editor, improving the user experience when editing ticket messages. This resolves a visual inconsistency and ensures buttons work as expected.
Original PR description
Without the `btn` class, buttons are identified as links by the editor. This commit adjusts the buttons inside the mail templates so that they are properly handled by the editor. Steps to reproduce: - Have demo data - Turn on developer mode - Go to Helpdesk > Customer Care - Open ticket "Where can I download a catalog?" - In the debug menu, go to Messages - Open the first template - Click on the "View Ticket" button - Edit the link => The link popover recognized it as a link instead of a button. As of saas-18.2, the style is replaced by a plain link style when changing the URL. task-5948539 Forward-Port-Of: odoo/enterprise#111215 Forward-Port-Of: odoo/enterprise#107888
This update corrects a technical issue where archived partners were incorrectly identified during bank statement retrieval, leading to inaccurate partner assignments. Now, the system only considers active partners when searching for bank statements, ensuring data accuracy and preventing potential errors in financial reporting. This improves the reliability of our accounting processes.
Original PR description
Description of the issue this commit addresses: Partner auto-detection on statement lines could match archived partners via SQL causing unexpected partner_id assignment. Desired behavior after this commit is merged: Partner retrieval from bank account, partner name, and previous statement lines only considers active partners, preventing archived matches. runbot-238918 Forward-Port-Of: odoo/enterprise#111259 Forward-Port-Of: odoo/enterprise#110446
This update removes outdated code related to a previous worksheet feature. The removal of a redundant context key ensures the system runs more efficiently and reliably. This change improves the overall performance of the web studio interface.
Original PR description
Since the worksheet rework, the context key `worksheet_no_generation` that used to skip the model generation has now become useless. This commit removes last lines of code using it. *https://github.com/odoo/enterprise/commit/49a84d3ffea49cf8f7fea904e7082b101158bbe9 Forward-Port-Of: odoo/enterprise#110339
This update addresses a technical issue that caused tracebacks in the timesheet assistant when a user didn't have an assigned employee within the company. The fix ensures the assistant functions correctly for all users, preventing errors and improving the user experience. This resolves a minor instability.
Original PR description
This PR fixes two tracebacks when the current user has no employee in the current company and tries to open either the timesheets assistant or systray Task-6041462 Forward-Port-Of: odoo/enterprise#110815
This update resolves a technical issue within the l10n_co_edi_pos module related to how a template was being constructed. The fix ensures proper formatting of POS receipts, preventing potential display problems. This change improves the reliability of the receipt generation process.
Original PR description
`class` cannot be set on the `t` element. Moving to the `div`. runbot-242041 runbot-242042 Forward-Port-Of: odoo/enterprise#111450
This update fixes a technical error that prevented users from saving planning slot forms when attempting to add resources. The issue stemmed from attempting to access records that had already been deleted. This change ensures smoother operation and prevents data saving failures in specific scenarios.
Original PR description
This error occurs upon saving a `planning.slot` form view. Steps to reproduce: - Install `planning_field_service` module - Settings > Technical > Discuss > `Subtypes` - Delete `Field Service Resources Changed` & `Field Service Status Changed` - Planning > New(open form view) > Add `Resources` and Save Traceback: `ValueError: External ID not found in the system: planning_field_service.mt_intervention_resources_changed` The error occurs because, in the `_track_subtype` [method], we attempt to retrieve a reference to records that have already been deleted. [method]: https://github.com/odoo/enterprise/blob/7e1a72d75ca672ea3660cc236f93571a441bb734/planning_field_service/models/planning_slot.py#L145-L150 sentry-7338382431 Forward-Port-Of: odoo/enterprise#110824
This update corrects a technical error in the Planning module's role search filter. Previously, the filter incorrectly used string IDs, causing issues with selecting roles. This fix ensures the filter uses correct integer IDs, improving the reliability of role selection within the Gantt view.
Original PR description
Steps to reproduce: ------------------------------------------ 1. Install Planning module 2. Click on any shift in Gantt view > Edit 3. In the Resource field, click on Search More to open the…
Steps to reproduce: ------------------------------------------ 1. Install Planning module 2. Click on any shift in Gantt view > Edit 3. In the Resource field, click on Search More to open the selection dialog 4. In the pop-up window, observe that a default filter is already applied 5. Click on the Roles filter in the search panel Observation: ------------------------------------------ The filter on the Roles field applies an 'Invalid Record ID' in the domain Issue: ------------------------------------------ the default filter on `role_ids` passes the role ID as a string (e.g., 4) instead of an integer (4). This happens because the `filter_domain` uses `[self]`, and `self` is substituted with `label.trim()` in `_getFieldDomain`, which is always a string even when the underlying value is a numeric ID https://github.com/odoo/odoo/blob/accaa246d5818572996660f967624978e906b5c3/addons/web/static/src/search/search_model.js#L1747-L1750 Solution: ------------------------------------------ Replace `[self]` with `[raw_value]` in the `filter_domain` of the `role_ids` search field, the `raw_value` variable holds the actual typed value (integer ID) instead of the string label. opw-6003611 Forward-Port-Of: odoo/enterprise#109781