Monday, June 2, 2025
15 changes · master
Enhancements to existing features
When a commission plan start date is moved later, linked salesperson start dates that fall before the new plan date are updated automatically. This reduces manual cleanup and keeps commission eligibility dates aligned with the active plan period.
Original PR description
Before: - Changing the plan start date didn't update linked salespersons' from dates. - Users had to manually update each salesperson's from date. After: - Whenever the commission plan’s start date is changed — whether to an earlier or later date — the start date of all salespersons linked to it will be updated to match the new plan start date. task:4601225
The Sign and itsme signing modules now use the newer testing approach, replacing older test cases. This improves confidence in electronic signing workflows while keeping the change internal and not altering day-to-day user features.
Original PR description
Hootfication of Sign Modules task-4452228
This update adds coverage to ensure HTML content used by AI fields is properly sanitized, helping reduce the risk of unsafe or malformed content. It also raises the API call timeout, making related AI operations more tolerant of slower responses.
Original PR description
Task-4712395
The Indian localization Balance Sheet no longer opens with the horizontal split option enabled by default. This gives users a simpler default report view while still allowing them to enable the split manually when needed.
Original PR description
- before this commit: split horizontally is ticked by default on Balance Sheet. - after this commit: split horizontally is unticked by default. - Task ID: 4836667
The Planning Holidays test coverage has been updated to match the newer email-based notification flow for leave requests. This helps ensure the right responsible person is still notified when leave is created, reducing the risk of unnoticed absences in planning workflows.
Original PR description
This PR improves the test cases related to notifying the responsible person when a leave is created. Previously, the notification triggered an activity, which also invoked the compute function during the process. Now, since the notification is sent via email instead of creating an activity, the compute function is no longer automatically triggered — so it needs to be called explicitly. task-4681107
Resolved issues and error corrections
A spreadsheet test was adjusted to match the corrected behavior of fixed-period global filters. This helps ensure the spreadsheet feature remains reliable after related changes in the shared codebase.
Miscellaneous changes
Also apply images customization on non-cropped images, so the format can can be detected by the website editor. Performance improved by reducing the amount of regex applied per page. This is both an improvement and fixes, we do it retrospectively in 18.3 to be able to continue fast iterations by updating server side. Linked to: - https://github.com/odoo/website-scraper/pull/307 - https://github.com/odoo/iap-apps/pull/1069 Forward-Port-Of: odoo/enterprise#85131
Original PR description
Also apply images customization on non-cropped images, so the format can can be detected by the website editor. Performance improved by reducing the amount of regex applied per page. This is both an improvement and fixes, we do it retrospectively in 18.3 to be able to continue fast iterations by updating server side. Linked to: - https://github.com/odoo/website-scraper/pull/307 - https://github.com/odoo/iap-apps/pull/1069 Forward-Port-Of: odoo/enterprise#85131
This update corrects internal tests so they use the debug setting in the same format as the application does. It helps keep automated checks accurate and reduces the risk of false test behavior, with no expected impact on day-to-day users.
Original PR description
The debug key in the environment, is a string based on the query string of the URL that can have the following values : "1", "assets", "asset,test" or "". This commit fixes some tests that incorrectly set the debug as a Boolean value.
The `all_l10n` standalone test started to fail on 2025-06-01 when installing `l10n_in_hr_payroll`. A first attempt was made to blacklist the module in the test itself. This attemps failed as the module is auto_install on `hr_payroll` and most of `l10n_hr*` modules depend on `hr_payroll`. Forward-Port-Of: odoo/enterprise#86758
Original PR description
The `all_l10n` standalone test started to fail on 2025-06-01 when installing `l10n_in_hr_payroll`. A first attempt was made to blacklist the module in the test itself. This attemps failed as the module is auto_install on `hr_payroll` and most of `l10n_hr*` modules depend on `hr_payroll`. Forward-Port-Of: odoo/enterprise#86758
Before this commit, the code checks if `this.connectorDragState.draging` if truly before using the split tool because we don't want to execute that if the user is currently dragging a planning slot. The problem is `draging` attribute does not exist in `connectorDragState`, it should be `dragging` instead. This commit fixes the typo to correctly check if the slot is dragging before doing the split tool or not. Forward-Port-Of: odoo/enterprise#85946
Original PR description
Before this commit, the code checks if `this.connectorDragState.draging` if truly before using the split tool because we don't want to execute that if the user is currently dragging a planning slot. The problem is `draging` attribute does not exist in `connectorDragState`, it should be `dragging` instead. This commit fixes the typo to correctly check if the slot is dragging before doing the split tool or not. Forward-Port-Of: odoo/enterprise#85946
This new module should replace the existing implementation for DHL integration which uses XML and is no longer recommended by DHL: https://developer.dhl.com/dhl-express-xml-developer-portal-sunset. The new integration uses ["MyDHL API](https://developer.dhl.com/api-reference/dhl-express-mydhl-ap)" which is based on REST. Community PR: odoo/odoo#187409 Task-3759205 Forward-Port-Of: odoo/enterprise#86625 Forward-Port-Of: odoo/enterprise#73908
Original PR description
This new module should replace the existing implementation for DHL integration which uses XML and is no longer recommended by DHL: https://developer.dhl.com/dhl-express-xml-developer-portal-sunset. The new integration uses ["MyDHL API](https://developer.dhl.com/api-reference/dhl-express-mydhl-ap)" which is based on REST. Community PR: odoo/odoo#187409 Task-3759205 Forward-Port-Of: odoo/enterprise#86625 Forward-Port-Of: odoo/enterprise#73908
Steps to reproduce: - Install any module with exposed views (say sale_management) and the ai module. - Open any list view (say the Quotations) and type something in the search bar. - Dropdown menu items will appear and click "Custom Filter" button from the items. - [ISSUE] The items are shown over the custom filter dialog. The issue is caused by the custom rules introduced in the ai module. In this commit, we're removing all the custom rules that overrides the overlay items. We shouldn'
Original PR description
Steps to reproduce: - Install any module with exposed views (say sale_management) and the ai module. - Open any list view (say the Quotations) and type something in the search bar. - Dropdown menu…
Steps to reproduce: - Install any module with exposed views (say sale_management) and the ai module. - Open any list view (say the Quotations) and type something in the search bar. - Dropdown menu items will appear and click "Custom Filter" button from the items. - [ISSUE] The items are shown over the custom filter dialog. The issue is caused by the custom rules introduced in the ai module. In this commit, we're removing all the custom rules that overrides the overlay items. We shouldn't be controlling the `z-index` of those items. To ensure that the AI ChatWindow is still above the dialog that opens it, we reduce the `z-index` of the dialog to `$zindex-sticky=1020` (from `zindex-modal=1055`) and change the `z-index` of the ChatWindows to `$zindex-sticky + 1`. This works because the `.o-mail-ChatWindow` elements lives in the same "stacking context" as the `.o-overlay-item` that contains the dialog. In the dom (and in terms of stacking context) it roughly looks like the following: - html (root stacking context) - .o-overlay-item:has(.o_dialog) (z-index=1020) (under .o-overlay-container) - .o-mail-ChatWindow (z-index=1021) (under .o-mail-ChatHub) - .o-mail-ChatHub-bubbles (z-index=1020) With the above `z-index` values, the stacking will be: - .o-overlay-item:has(.o_dialog) - .o-mail-ChatHub-bubbles - .o-mail-ChatWindow (top most) The bubbles are not visible when the chat window is open, and when the chatwindow is minimized, the bubbles is still visible because it's above the dialog. Forward-Port-Of: odoo/enterprise#86616
Update on the filterExchangeRate function. The text input allowed users to enter non-numeric characters, which led to float conversion errors during processing. Now we parse the string into a float, catch errors and notify the user that the number was not valid. It also enables the user to use the thousands and decimal separators based on the language of the user. opw-4788246 Forward-Port-Of: odoo/enterprise#85857
Original PR description
Update on the filterExchangeRate function. The text input allowed users to enter non-numeric characters, which led to float conversion errors during processing. Now we parse the string into a float, catch errors and notify the user that the number was not valid. It also enables the user to use the thousands and decimal separators based on the language of the user. opw-4788246 Forward-Port-Of: odoo/enterprise#85857
Before this commit, the adding of View chat stat button has erased the other stat buttons instead of adding the stat buttons after the existing ones in helpdesk.ticket form view. This commit adds the view chat stat button after the other stat buttons displayed instead of replacing them. Forward-Port-Of: odoo/enterprise#86501
Original PR description
Before this commit, the adding of View chat stat button has erased the other stat buttons instead of adding the stat buttons after the existing ones in helpdesk.ticket form view. This commit adds the view chat stat button after the other stat buttons displayed instead of replacing them. Forward-Port-Of: odoo/enterprise#86501
**Current behavior before PR:** Closing the AI agent chat window would throw an error because the code attempted to access the associated thread after it had been deleted. **After this commit:** The issue is resolved by ensuring the thread is not accessed after deletion, preventing the error. Forward-Port-Of: odoo/enterprise#86697
Original PR description
**Current behavior before PR:** Closing the AI agent chat window would throw an error because the code attempted to access the associated thread after it had been deleted. **After this commit:** The issue is resolved by ensuring the thread is not accessed after deletion, preventing the error. Forward-Port-Of: odoo/enterprise#86697