Friday, November 7, 2025
13 changes · saas-18.3
Enhancements to existing features
The test suite for PDF quote generation now handles alternative labels for sales order states more safely. This prevents test failures when another installed module customizes those state names, helping keep updates and integrations stable.
Original PR description
### Description of the issue/feature this PR addresses: This ensures that `sale_pdf_quote_builder` tests pass even if a third party module that renames `sale.order` `state` selections has been installed. ### Current behavior before PR: Tests fail. ### Desired behavior after PR is merged: Tests pass. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232760
This update makes an existing error message more explicit when files come from an uninstalled module or addon. It helps support teams and users understand the cause of the problem faster, reducing time spent tracing the issue in the code.
Original PR description
While working on a support ticket, I was faced with this exception handling: https://github.com/odoo/odoo/blob/49061347c181b1a451435bc363bb9508db8b6fab/odoo/addons/base/models/ir_asset.py#L344-L346 It might be nitpicky, but given the if condition, the exception error text could be more explicit about the fact that it's raised because the files in question being from an uninstalled addon/module. This might fast track troubleshooting without having to dive into the source code to understand why the error is being raised. There is always the possibility that I might be missing some context or other scenarios where this error could be raised. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179889
Resolved issues and error corrections
This update fixes a problem in the editor where selecting table cells from right to left or bottom to top could lose the first selected cell in Firefox. It makes table selection behave consistently, improving the editing experience for users working with tables.
Original PR description
Steps to Reproduce: 1. Create a table in the editor (Firefox). 2. Select table cells backward (right → left or bottom → top). Description of the issue this PR addresses: - The first selected cell does not remain selected in Firefox when extending the selection backward. task-5094832 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#234579 Forward-Port-Of: odoo/odoo#227694
Miscellaneous changes
task-5184489 Related: https://github.com/odoo/enterprise/pull/98193 Forward-Port-Of: odoo/odoo#234625 Forward-Port-Of: odoo/odoo#233275
Original PR description
task-5184489 Related: https://github.com/odoo/enterprise/pull/98193 Forward-Port-Of: odoo/odoo#234625 Forward-Port-Of: odoo/odoo#233275
When a guest changes their name on the meeting welcome page, the updated name now appears right away in the attendee list. This makes meeting participation clearer and avoids confusion for hosts and other participants.
Original PR description
**Steps to Reproduce:** - Login with Admin, start a meeting, open the member list. - Join the meeting with a guest, using the invite link. - Change the guest name from the welcome page. - Admin member list doesn't show updated guest name. **Current behavior before PR:** Before this PR, the guest appeared as `Guest` in the member list even after updating their name on the welcome page. **Desired behavior after PR is merged:** This PR ensures the guest name is updated and displayed instantly upon joining, providing a smoother and more consistent experience. task-[5062702](https://www.odoo.com/odoo/project/1519/tasks/5062702) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#234299
This fix makes lot and serial numbers appear in the barcode app only when the Manufacturing setting to show reserved lots/SNs is enabled, or when they have already been picked or scanned. It reduces visual clutter and helps users avoid picking or scanning the wrong items during manufacturing operations.
Original PR description
Issue: ------------------------------------- Lots/serial numbers were always displayed in the barcode module during Manufacturing Order operations, regardless of whether the Show Reserved Lots/SNs…
Issue: ------------------------------------- Lots/serial numbers were always displayed in the barcode module during Manufacturing Order operations, regardless of whether the Show Reserved Lots/SNs option was enabled in the Manufacturing settings. Steps to Produce: ------------------------------------- - In Manufacturing settings, disable the Show Reserved Lots/SNs option. - Create a Manufacturing Order and reserve component lots. - Go to the barcode app - Lots/SNs appear even though the Show Reserved Lots/SNs option is disabled. After this Commit: ------------------------------------- A correct value is now passed to the condition controlling the lot and serial number visibility. Lots/SNs are shown only when Show Reserved Lots/SNs is enabled in Manufacturing settings, or when they have been picked or scanned, helping users focus only on relevant information and reducing the chance of picking or scanning mistakes. Task Id: [3908929](https://www.odoo.com/odoo/project/966/tasks/3908929) Forward-Port-Of: odoo/enterprise#62853
This update corrects an automated test for restaurant preparation tickets so it matches the current system behavior. It helps ensure the test keeps validating the right result after changes to how empty tickets are handled.
Original PR description
pos_* = post_restaurant_preparation_display Before this PR (https://github.com/odoo/odoo/pull/231733), the checkPreparationTicketData method returned True if the preparation ticket was empty. This is no longer the case, so the test has been updated to work correctly now. Related Community PR: https://github.com/odoo/odoo/pull/231733 Forward-Port-Of: odoo/enterprise#97333
The color picker interface now updates properly when users select grayscale, transparent grayscale, or theme colors. This makes it easier to fine-tune these colors and keeps the on-screen controls aligned with the selected color.
Original PR description
Before this commit, the colorpicker UI would not update when switching to some colors (grayscale, transparent grayscale, theme colors). It would therefore be difficult to make small changes to those colors. This commit make the colorpicker update correctly. Step to reproduce the bug (example with grayscale colors): - Add a snippet - Change the background color to a custom color (the colorpicker interface was updated to match the color) - Change the background color to a grayscale color (the colorpicker interface was not updated to match the color) task-3806989 Forward-Port-Of: odoo/odoo#179883
The search panel background on mobile now adjusts correctly in both light and dark modes. This makes the popover view easier to read and more consistent with the rest of the app.
Original PR description
This commit adjusts the search_panel background color so it adapts correctly to both light and dark modes on mobile. It only affects the "popover" use case. task-5121027 Requires: - https://github.com/odoo/enterprise/pull/98248 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#234361
This update adjusts the search panel colors on mobile when dark mode is enabled. It makes the interface easier to read and more consistent with the rest of the dark theme.
Original PR description
This commit adapts colors of search_panel for mobile in dark mode. | Before | After | |--------|--------| | <img width="904" height="1022" alt="image" src="https://github.com/user-attachments/assets/9136de22-3ce1-40e3-bb79-8f87c8ee2bf8" /> | <img width="372" height="653" alt="Capture d’écran 2025-10-29 à 08 37 39" src="https://github.com/user-attachments/assets/6aff402b-6dc8-46ce-8e2a-d55887374f51" /> | Requires: - https://github.com/odoo/odoo/pull/234361 task-5121027 Forward-Port-Of: odoo/enterprise#98248
This change avoids refreshing cached product data when nothing has actually changed during variant creation. It improves performance by reducing extra system work, which can help product-related operations run more smoothly.
Original PR description
Description of the issue/feature this PR addresses: Method `product.template._create_variant_ids()` triggers a `write()` on `product.product.product_template_attribute_value_ids` which will, in turn, invalidate the cache. This cache invalidation is unnecessary if the new value is the same as the old value. 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#233677
We fixed an issue in Live Chat where the page breadcrumb could briefly show the wrong name or flicker when moving between sessions. This makes navigation look smoother and helps users stay oriented while switching conversations.
Original PR description
Before this PR, The breadcrumbs flickered when navigating between livechat sessions. This occurred because the `FormController`…
Before this PR,
The breadcrumbs flickered when navigating between livechat sessions.
This occurred because the `FormController` ([@web/views/form/form_controller](https://github.com/odoo/odoo/blob/saas-18.3/addons/mail/static/src/core/web/discuss_patch.js#L16-L23))
updated the breadcrumb title inside the `onRendered` hook and set it to
`this.model.root.data.display_name` which is `undefined`, the `Discuss` component
also updated the breadcrumb title in a `useEffect` hook. ([@mail/code/web/discuss_patch.js](https://github.com/odoo/odoo/blob/saas-18.3/addons/mail/static/src/core/web/discuss_patch.js#L16-L23))
The two updates conflicted: the onRendered hook first set the title to
“Unnamed,” and then the useEffect hook replaced it with the correct title,
causing a brief flicker. Additionally, when navigating to another session with
the same thread.displayName, the useEffect hook did not trigger (since its
dependency did not change), but onRendered still ran, causing the breadcrumb
to remain “Unnamed”.
This PR fixes the issue by introducing a `LivechatFormController` which
updates the breadcrumbs when channel is fetched in store.
task-4671251
Before:

After:

task-4671251task-5184489 Related: https://github.com/odoo/odoo/pull/233275 Forward-Port-Of: odoo/enterprise#98949 Forward-Port-Of: odoo/enterprise#98193
Original PR description
task-5184489 Related: https://github.com/odoo/odoo/pull/233275 Forward-Port-Of: odoo/enterprise#98949 Forward-Port-Of: odoo/enterprise#98193