Tuesday, July 22, 2025
13 changes · saas-18.4
Enhancements to existing features
Web Studio was updated to stay compatible with recent changes in the messaging framework. This helps ensure form editor tests and related Studio behavior continue to work reliably after the underlying mail recipient fields endpoint was removed.
Original PR description
PR community: https://github.com/odoo/odoo/pull/208393 Task-4685400 Forward-Port-Of: odoo/enterprise#90375 Forward-Port-Of: odoo/enterprise#84661
Resolved issues and error corrections
This fix makes an automated test for the messaging connection warning more reliable by shortening simulated reconnection timing during the test. It helps prevent false test failures in busy environments without changing the user-facing behavior of the product.
Original PR description
The "show warning when bus connection encounters issues" test simulates a disconnected WebSocket that fails to reconnect. In this scenario, an alert is shown to warn the user that some features may…
The "show warning when bus connection encounters issues" test simulates a disconnected WebSocket that fails to reconnect. In this scenario, an alert is shown to warn the user that some features may be unavailable or slow. However, the websocket worker’s initial reconnect delay is 1.5s, with an added random jitter up to 1 second which means the first reconnect attempt can take up to 2.5s. The test waits up to 2.5s for the alert to show, which is not always enough. The reconnect attempt alone may be that long, and under high CPU load, processing the resulting event can take even longer. This commit reduces the initial reconnect delay and the jitter during this test, ensuring that the reconnect attempt fails and the alert is shown within the expected time. fixes runbot-226443 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#219649
Code cleanup and technical improvements
This update simplifies internal Web Studio test checks so they wait for the exact screen elements before validating them. It helps reduce intermittent test failures, improving confidence in releases without changing user-facing functionality.
Original PR description
In this commit, we simplify the assertions made in run functions with more explicit triggers that use Hoot's pseudo-selectors. This is almost the same thing, except that the macro system waits to…
In this commit, we simplify the assertions made in run functions with more explicit triggers that use Hoot's pseudo-selectors. This is almost the same thing, except that the macro system waits to find the trigger (animationFrame by animationFrame). If, for some reason, the parent element already exists but not the child element sought in the run function, then the tour spits out... indeterministically.
So this commit can also fix tours.
For example:
{
trigger: ".o-web-studio-report-container :iframe body",
run() {
assertEqual(
this.anchor.querySelector(".test-added-0").textContent,
"in document view"
);
assertEqual(this.anchor.querySelector(".test-added-1").textContent, "in main view");
},
},
:iframe body is present but not ".test-added-0" yet ... then the assertion failed when it is enough just to wait for the element to be in the dom.
Is fixed with :
{
trigger: ".o-web-studio-report-container :iframe body .test-added-0:contains(in document view)",
},
{
trigger: ".o-web-studio-report-container :iframe body .test-added-1:contains(in main view)",
}
Forward-Port-Of: odoo/enterprise#90404The task dependency list now shows task priority correctly in the Blocked by tab. The priority column is hidden by default to keep the view focused on key details like status, task name, and assignees.
Original PR description
Before this commit, the priority field of project.task was not correctly rendered inside the sub-list view of task dependencies (in "Blocked by" tab in task form view). This commit makes sure the priority field of project.task is correctly in that sub-list view. Also, it also hides by default the column to let more spaces for the most relevant fields (state, name and assignees). Forward-Port-Of: odoo/odoo#219706
Fixes an issue in the HTML editor where pressing backspace after an emptied file attachment box could delete both the box and the preceding character. This helps users edit content with attached files more safely and prevents unintended text loss.
Original PR description
Problem: When pressing backspace after text followed by an `o_file_box`, both the last character and the file box are deleted at once. Cause: An empty `o_file_box` is skipped in `findPosition` because it's treated like a zero-width space (`.textContent === "\ufeef"`), causing incorrect position resolution. Solution: `o_file_box` elements should not be skipped during position checks, even when empty. Steps to reproduce: - Go to Quality ---> Quality Control --> Control Points - Create New. - Add text - Add a file just after the text - Delete all content of the file box - Place the cursor after the file box and press backspace -> The character before the file box is also deleted opw-4903841 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#219358 Forward-Port-Of: odoo/odoo#216559
This update fixes an intermittent failure in an automated website editor test by making the test wait for background requests to finish before continuing. It helps keep validation runs stable and reduces false failures during quality checks.
Original PR description
This commit fix the tour `test_restricted_editor_only` which was failing on runbot. runbot-226535
Expense approval activities are now assigned to the manager chosen on the expense, rather than automatically going to the employee's default manager. This helps ensure the right person is notified and can act on expense submissions without delays or misrouting.
Original PR description
When an expense is submited and you've selected a different manager than the default one, this is not the right person that gets the activity linked to the expense. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#213162
The automatic invoice sending scheduled job now reports how many invoices it has processed and how many remain. This avoids misleading status messages that previously suggested no records were processed, making monitoring more reliable for administrators.
Original PR description
The scheduled action for the automatic sending of invoices currently does not explictly use the `_notify_progress` method introduced since Odoo 18 to track the progress of CRON jobs. This means that implicitly, by default the CRON will log `processed 0 records, 0 records remaining` at each run. This can be confusing, as the automatic invoice sending CRON is batched, and might run multiple times in sucession, reporting each time that it processed 0 records (which might not be true). ## Proposed fix: We correctly count the total account moves that need to be processed (using a `search_count`) and calculate the number of processed records and the remaining ones. opw-4926541 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#218763
The live chat test now uses a dedicated user instead of the demo user, preventing other demo data from changing the expected email address. This keeps nightly demo builds stable and reduces false test failures without changing customer-facing behavior.
Original PR description
This commit fixes a failing test in the nightly "With Demo" build. The test fails because it checks the email of the demo user, which is overridden by the demo data from another module. This commit fixes the issue by making the test run with a different user than the demo user, so that the email remains predictable. fixes runbot-229925 Forward-Port-Of: odoo/odoo#219421
This fix makes automated website tours more reliable when they move to a different page. It helps prevent inconsistent test behavior caused by page unload events, reducing false failures during quality checks.
Original PR description
In this commit, we add expectUloadPage to goToUrl util. This util redirect to another page an involves a unload event so we need to add this key to this util to avoid undeterministic behaviors in tours that use it. 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#219672
This fixes an issue where Belgian POS settings did not correctly limit IoT device choices to blackbox devices. The change helps businesses configure compliant fiscal devices more reliably and avoids showing irrelevant hardware options.
Original PR description
The domain to display only blackboxes in the IoT devices configuration on pos.config was a string, so not correctly passed to res.config.settings in the related field. This commit fixes this issue by computing the domain with a lambda method.
Users who process invoices can now use the Reload AI Data button without needing administrator settings access. This prevents an error during invoice AI data refreshes and keeps the workflow available to functional accounting users.
Original PR description
When clicking on the "Reload AI Data" button (`account.move::action_reload_ai_data`), a user not in `base.group_system` group encounters an access rights error when searching on `ir.module.module` model in `account.move::is_indian_taxes()`:
```python
def is_indian_taxes(self):
l10n_in = self.env['ir.module.module'].search([('name', '=', 'l10n_in')])
return self.company_id.country_id.code == "IN" and l10n_in and l10n_in.state == 'installed'
```
This commit adds `sudo()` to the `search` call to ensure that the check for the 'l10n_in' module does not fail for users not belonging to "Administration/Settings" group.
This prevents a traceback and ensures that functional users can reload AI data.
Forward-Port-Of: odoo/enterprise#90021Fixed an issue that could cause spreadsheets to crash when users autofilled pivot columns that were themselves created through autofill, especially with dates beyond the original range. This makes spreadsheet pivot editing more reliable and helps users continue their analysis without interruption.
Original PR description
Fix crash when autofilling columns which where created by autofill. Task: 4719884 Forward-Port-Of: odoo/enterprise#90462 Forward-Port-Of: odoo/enterprise#83314