Thursday, July 10, 2025
15 changes · saas-18.1
Resolved issues and error corrections
The media dialog now uses the correct display layering setting for attachment remove icons. This fixes a small visual issue so users can reliably see and use the remove action when managing media attachments.
Original PR description
Description of the issue this PR addresses: - The remove icon in the media dialog attachment was not visible due to the use of an invalid `z-index-1` class. This commit c5a98c76ea1cce4acb55faf4768388b94255508f removed custom `z-index` utilities. Replaces `z-index-1` with Bootstrap's default `z-1` class. Before this commit: - The icon used `z-index-1`, which is not a valid Bootstrap class. After this commit: - Replaced with `z-1`, the correct Bootstrap 5 utility class for `z-index: 1`. task-4903381 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216261
This fixes a timing issue in Discuss where automated checks could try to react to a message before it was fully saved. The change helps keep message interactions stable and reduces false failures in quality testing.
Original PR description
Backport of https://github.com/odoo/odoo/pull/217982 [FIX] mail: fix runbot error 222093 (o-mail-Message:contains(cheese)) Before this commit, tour "test_discuss_channel_public_page_as_guest" would…
Backport of https://github.com/odoo/odoo/pull/217982 [FIX] mail: fix runbot error 222093 (o-mail-Message:contains(cheese)) Before this commit, tour "test_discuss_channel_public_page_as_guest" would crash in test after posting a message in which we attempt to add a reaction. This happens because the step is a `hover && click 'Add a reaction'`, so it hovers on selector `o-mail-Message:contains(cheese)` then clicks on the 'Add a reaction' action. In discuss channels, when sending a message, the message is immediately shown on UI before there's a genuine message that is created in DB. This optimistic behavior gives impression the app is fast, but some actions require a genuine message like 'Add a reaction'. The problem of test is that selector `.o-mail-Message:contains(cheese)` passes with temporary / transient message of optimistic behavior, so the `hover` step would be triggered on the temporary / transient message and 'Add a reaction' action is awaited for click. Problem is that when genuine message data is received, implementation detail deletes the temporary / transient message and then shows the genuine message. Because the genuine message is different, component identity is different (it uses message.localId in `t-key`), thus it awaits `Add a reaction` on UI but it's not visible because we need to hover again, this time on genuine message. This commit fixes the issue by awaiting message is shown on UI is the persistent, i.e. non-temporary and non-transient, so that hover and click on the 'Add a reaction' action works without issue. fixes runbot error 181660 fixes runbot error 222093 fixes runbot error 227756 fixes runbot error 227758 Forward-Port-Of: odoo/odoo#218143
This fixes an internal test stability issue in the Mail app by avoiding timing-related failures when the testing system is under heavy load. It helps keep automated validation reliable without changing how users experience the product.
Original PR description
Since [1], https://github.com/odoo/odoo/pull/207974 websocket timeout has been increased during test. Fetching notification only returns the notifications of the last 50 seconds initially. When runbot is under high load, this can lead to non deterministic failures. This commit patches the cursor date to bypass this issue. [1]: https://github.com/odoo/odoo/pull/207974 fixes rubot-223758 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#218104
This fix makes the HTML editor handle preformatted text blocks more consistently. Pasted content inside these blocks is kept as plain text while preserving list numbers and markers, reducing formatting issues for users editing content.
Original PR description
Description of the issue this PR addresses: Current behavior before PR: `pre` was not considered paragraph related element. Also it allowed flow content. Desired behavior after PR is merged: `pre` is considered paragraph related element and now it only allows phrasing content also anything pasted within `pre` is now pasted as plain text and list numbering and markers are preserved. task-4766648 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#213910
This update fixes an unreliable automated test in the Stock app related to adding new lines in detailed operations. It helps keep validation checks stable so future stock changes can be tested with fewer false failures.
Original PR description
The `test_add_new_line_in_detailled_op` fails in 18.0+ since clicking on the head of the modal content will trigger a web_read before the records has been updated in db. So that the last applied change disappear. This commit attempt to clean the tour to be more reliable. runbot-113534 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216645
Expense posting no longer blocks employees who do not have a work email address. This prevents unnecessary posting errors because the related partner record can now be created without that email requirement.
Original PR description
- removed work email constraint while posting the expense as the partner is now created without the need of work email --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#212211
This update adjusts a test for the website text editor's link popover to prevent inconsistent failures during automated checks. It helps keep release validation reliable without changing end-user behavior.
Original PR description
The fix at [1] did not fix the issue. This is another attempt. runbot-227759 [1]: https://github.com/odoo/odoo/pull/215168/commits/9a3c9ecca14fb8701e4f934cf5285297cbe26310 Forward-Port-Of: odoo/odoo#218114
Mobile dialog windows no longer show back-office brand colors in website-facing screens. This keeps the customer-facing experience visually consistent and aligned with the current design direction.
Original PR description
Before this PR: header color of `Dialog` on mobile was "community color" or white, depending on the version of Odoo the database is running. This was creating issues in in the front-end, where the user of the website would see back-end specific colors in different `Dialog`s. This PR removes the color customization of `Dialog`'header as it was fitting a design line we had before we introduced MILK. task-4001365 Example of the issue (mobile front-end): <img width="376" alt="Screenshot 2024-06-20 at 10 54 04" src="https://github.com/odoo/odoo/assets/110090660/dad6a4b2-6164-45dd-9e16-0160e2989607"> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170087
The HTML editor font size field now uses an appropriate text color when dark mode is active. This improves readability and makes editing content more consistent for users working in dark mode.
Original PR description
Purpose of this PR: - Backport a [PR #206008](https://github.com/odoo/odoo/pull/206008), which ensures that the font-size input now changes its color appropriately in dark mode. task-4897771 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#215865
The live chat chatbot rating flow now waits until a real chat session is fully created before closing it during automated checks. This prevents occasional false failures under slower network or high-load conditions, improving confidence in release validation.
Original PR description
Chatbot rating tours can sometimes fail. They all share the same steps: start a chat, close the chat, then rate the agent. Before closing the chat, the tours check that the message is present in the DOM, assuming it has been posted, then close the chat window. However, this is not enough to guarantee the thread was properly created. Initially, a temporary thread is shown. When the user sends the first message, a temporary message is posted on that thread while the real thread is created asynchronously. As a result, closing the chat after checking the message in the DOM doesn’t guarantee the window belongs to the persisted thread. If it doesn’t (due to slow network or high CPU load), the rating panel never shows because the real thread was never closed. This commit fixes the issue by waiting for the persisted thread to be created before closing the chat. fixes runbot-159683
This fix adjusts automated checks for two-factor login pages so they only wait for a page change when the relevant login step is active. This helps prevent false test failures and supports a more stable authentication flow for users.
Original PR description
In this commit, we change the login page step by a step with isActive property. So this step is only active when the input#login is not on the page and then expectUnloadPage will be only listen when this step is active. 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#217972
Cancelling accounting entries no longer removes their reference unless the entry is linked to an employee expense. This prevents unrelated records from losing important identifying information when the Expenses app is installed.
Original PR description
### Issue: On 18.0 and 18.1, cancelling an `account.move` will clear the `ref` value in all situations if `hr_expense` is installed. While clearing the `ref` is necessary if unlinking an expense, this isn't the case for unrelated records. ### Solution: Check to see if the `expense_sheet_id` is set on the `account.move` to determine if the `ref` should also be removed. ### Additional Note: This flow was reworked in 18.2 via #189701, so we only need to adjust this for the affected versions. opw-4853903 Forward-Port-Of: odoo/odoo#215477
This fix adds a missing database index used when linking Indian withholding entries to accounting records. It helps avoid slow lookups on large accounting tables, improving responsiveness without changing user workflows.
Original PR description
FK columns in large tables like `account.move` need to be indexed if an opposite one-to-many relationship is defined, otherwise reading that o2m requires a full Seq Scan of the table. Introduced via #183335
Spanish BOE 349 reports now avoid showing rectification lines for bills and credit notes that fully cancel each other within the same reporting period. This prevents overstated or confusing tax report entries while preserving the expected treatment for corrections to prior-period bills.
Original PR description
# How to reproduce the issue On a **l10n_es** fiscal position: - Create a bill for the current period and then create a credit note for this bill. - In the tax report, under model 349, download the BOE report. Since the bill has been fully canceled within the same period, no rectification line should appear in the BOE report (correct behavior). - Create a bill from a previous period. - Create a credit note for this bill in the current period. - Download the BOE report from model 349. A rectification line appears for the previous period bill, which is expected. However, a rectification line also appears for the current period bill, which is incorrect, as the bill was canceled within the same period. This commit prevents moves from the current period from being included as rectification lines in the BOE report. opw-4895636 Forward-Port-Of: odoo/enterprise#89624 Forward-Port-Of: odoo/enterprise#89382
This fix updates the Mexican DIOT reporting logic to use the latest report definitions. It helps ensure DIOT tax report columns are calculated consistently after related reporting changes.
Original PR description
Description of the issue/feature this PR addresses: The language used in the DIOT documentation was confusing and even though we had the exact same description for two columns it turns out they were different, so we need to change the logic of a few columns to make it work as needed. This issue was addressed in PR: https://github.com/odoo/odoo/pull/217441, but a small adjustment still needs to be made in the l10n_mx_reports module. Current behavior before PR: The l10n_mx_diot_get_values function uses references to the old account.report.expression that were removed in the pr mentioned above. Desired behavior after PR is merged: The l10n_mx_diot_get_values function uses the new references to account.report.expression that were introduced in the pr of the community repo. opw-[4920577](https://www.odoo.com/odoo/my-tasks/4920577) "I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr" Forward-Port-Of: odoo/enterprise#89481