Thursday, November 6, 2025
21 changes · 19.0
Enhancements to existing features
This update introduces a shared way to handle customer account settlement in Point of Sale test tours. It also makes the process more reliable when dialogs are closed or switched, helping avoid cases where the wrong customer could be set during the flow.
Original PR description
In this commit: --------------- - We have introduced a common function for settlement of customer accounts and replaced it in existing tours. task: 5028009 related PR: [95156](https://github.com/odoo/enterprise/pull/95156) Forward-Port-Of: odoo/odoo#227971
The employee form view was adjusted so the details panel uses the available space more intelligently across screen sizes. On mobile, the panel now stretches to full width, while on larger screens it leaves room for the employee avatar, making the page easier to read and use.
Original PR description
Replace the generic col class with explicit col-12 col-sm-6 col-md-7 col-lg-8 so the right-hand panel spans full width on mobile but leaves room for the avatar on bigger screens task-5238383
This update improves how embedded content keeps its selection state when users insert or edit components inside the editor. It helps make editing embedded elements more reliable and smooth, especially in Knowledge pages that use these components.
Original PR description
### generalize the embeddedEditable selection restoration `env.editorShared` now always contains `selection` shared functions, this commit removes obsolete assignations in embedded components. task-5189453
Some website and HTML builder notifications now use shorter text so they fit on one line more often. This makes alerts easier to read and reduces visual clutter in the interface.
Original PR description
Reduce the text size of certain notifications so that they are displayed on a single line. task-5169680
This update makes an existing error message more explicit when Odoo blocks files coming from an uninstalled module. It helps support teams and users identify the cause faster without needing to inspect the source 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
The purchase agreement view now shows the start and end dates in the same date format. This makes the information easier to read and avoids confusion when comparing contract dates.
Original PR description
Issue: In the purchase agreement view the start and end date have different date formatting where start date is writting as such (Nov 12) and end date is written as (02/01/2027). Fix: Simply added the widget date alongside the optio numeric true for the start date opw-5187358 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Documentation and clarification updates
This update adds a contributor’s signed CLA record for Camptocamp. It is an administrative change needed to unblock a related contribution and does not affect product behavior.
Original PR description
Well, I thought I had signed it, ten years ago. Here I am. Needed to unblock: - #233883 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a small issue in the Belgian black box POS module when receiving orders from Urban Piper. It helps ensure these orders are accepted and processed correctly, reducing the risk of ordering disruptions for affected businesses.
Original PR description
Fix small issue in `pos_blackbox_be` module when accepting orders from Urban Piper. Forward-Port-Of: odoo/enterprise#98563
The event form now displays the currency symbol next to ticket prices. This makes pricing clearer for users and helps avoid confusion when managing event tickets.
Original PR description
Add missing currency symbol next to the event ticket price in the event form view. Task-5114075 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#233470
In dark mode, the informational popover in Account Reports now uses a lighter text color so formulas are easier to read. This makes the debug information clearer and improves usability for users working in low-light themes.
Original PR description
When using the dark mode, the popover available only in debug mode on the account reports (when pressing the info button on the right of each line) used to display the formula with a dark color, making it hard to read. Forward-Port-Of: odoo/enterprise#98905
The configuration field has been renamed so it better reflects its actual purpose: calculating the default tax return deadline. This reduces confusion for users and makes the setting easier to understand when preparing tax reports.
Original PR description
This field is not a reminder anymore and is used to compute the default deadline from the end of the tax return. task-5153900 Forward-Port-Of: odoo/enterprise#96651
This change prevents a rare database error when a unit of measure has an extremely large relative value. It caps the automatically assigned sequence number so records can still be saved without failing.
Original PR description
The default value of uom.sequence is calculated as uom.relative_factor * 100. If the value of relative_factor is big enough, it can be bigger than what the int column can handle and trigger ``` ERROR: integer out of range ``` So we just cap it at an arbitrary value. To reproduce: - Create an uom with relative factor bigger than 2147483647.
The commercial state field is now only shown on accounting entries for Colombian companies. This prevents users working in other countries from seeing a field that does not apply to their company and reduces confusion when creating moves.
Original PR description
The commercial state field should only be visible on moves part of Colombian companies. Steps to reproduce: load the `l10n_co_dian` module and switch a non-Colombian company, then create a move -> the commercial event is visible. task: 5232473
This change corrects how the website builder keeps the selected Products List Page option when settings are updated. It helps ensure the page continues to use the intended option without unexpected changes.
Original PR description
In PR https://github.com/odoo/odoo/pull/233696, we forgot to add an applyTo to keep the same target's option. This commit will fix the issue by adding the missing applyTo.
The Website editor’s gradient color picker now displays custom text more clearly in dark mode. This fixes a readability issue by increasing contrast, making the interface easier to use without changing the available options.
Original PR description
Steps to Reproduce: 1. Go to `Website` and enter edit mode. 2. Drop any `text` snippet. 3. Select the text. 4. Open color picker from the toolbar and switch to `gradient` tab. Issue: The custom text…
Steps to Reproduce: 1. Go to `Website` and enter edit mode. 2. Drop any `text` snippet. 3. Select the text. 4. Open color picker from the toolbar and switch to `gradient` tab. Issue: The custom text in the gradient tab of the color picker was not clearly visible in dark mode. Reason: The background is already light, and in dark mode the text color was also light. This resulted in insufficient contrast, making the text hard to read. Fix: Set the text color to black when button has no background image. In case of button containing style of background-image, the text color will be same as earlier. | Before | After | |-----------------------------|---------------------------------| | <img width="483" height="274" alt="image" src="https://github.com/user-attachments/assets/911c53f2-bb0e-4d70-9fb2-078ac17388c1" /> | <img width="473" height="326" alt="image" src="https://github.com/user-attachments/assets/c976fb49-6c10-47c0-b559-6a58cfcbcdc2" /> | Forward-Port-Of: odoo/odoo#227938
This change updates an internal description so it matches how self-service point-of-sale orders are actually numbered. It does not change how orders work for customers, but it helps keep the code and documentation aligned for future maintenance.
Original PR description
**Description of the issue/feature this PR addresses:** When calculating the order's `order_reference`, we'd use the order's `table.id` as the reference's middle constituent. This was changed in 16.5 in [odoo/odoo:e512634935aa](https://github.com/odoo/odoo/pull/133902), from when on we used the order's `config.id` instead of its table - but the docstring was never updated to reflect the change. This commit fixes that. **Current behavior before PR:** Docstring referenced the table.id **Desired behavior after PR is merged:** Docstring references the config.id. The whole pos_reference generation was revamped in [odoo/odoo:76336f6123a6](https://github.com/odoo/odoo/pull/183085) in 18.1, so this only affects versions 17.0 and 18.0.
This fix ensures that when an upgrade is started and then canceled, the add-on’s status is properly reset. This prevents the system from showing an incorrect module state and helps keep module management reliable.
Original PR description
There is a typo in Odoo 19 and master: module state is not reset when upgrade action is aborted. 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
Changing a contact’s email address from lowercase to uppercase, or the other way around, no longer triggers duplicate signature request emails. This prevents unnecessary repeated messages to people who have already received a signing request, reducing confusion and email noise.
Original PR description
Before this commit, when changing the partner email to uppercase or lowercase, it would resend sign requests emails for each previously sent signed request to that email. After this commit, we don't resend anymore the sign requests emails after a case sensitive email change of a partner. task-4844230 Forward-Port-Of: odoo/enterprise#87112
Guests who have not been online recently will no longer be notified when a call starts. This reduces unnecessary alerts and avoids contacting people who are unlikely to be available.
Original PR description
With this commit, guests who haven't been online in the last 12 hours will not be notified of a call starting. task-5136330 backport of https://github.com/odoo/odoo/pull/230337 Forward-Port-Of: odoo/odoo#233969 Forward-Port-Of: odoo/odoo#233221
This change fixes an issue in call participant status where the same deafened state could appear twice in the sidebar. It makes the display clearer by showing only one icon when a participant is deafened, since that already means they are muted.
Original PR description
**Current behavior before PR:** The PR #228657 combined the mute and deafen actions into a single "mute" action handling both states, As a result, when a user was both muted and deafened during a…
**Current behavior before PR:** The PR #228657 combined the mute and deafen actions into a single "mute" action handling both states, As a result, when a user was both muted and deafened during a call, two identical deaf icons were shown in the participant status area (in sidebar). **Steps to reproduce:** 1. Start a call 2. Click the Mute button 3. Open Voice Settings dropdown 4. Click Deafen button 5. Observe two deaf icons in the sidebar participant status **Desired behavior after PR is merged:** Only one deaf icon is shown when the user is deafened, since the deaf state already implies being muted. **Before:** <img width="387" height="113" alt="image" src="https://github.com/user-attachments/assets/65be3365-0c7a-4d97-9260-1f440ce09c70" /> **After:** <img width="385" height="119" alt="image" src="https://github.com/user-attachments/assets/bd83fe67-d4b2-4756-9445-5f48ef3a8b5e" /> task-[5166621](https://www.odoo.com/odoo/project/1519/tasks/5166621) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
When a graph view search returns no results, Odoo now shows the custom empty-state message configured for that action instead of the generic default one. This makes the screen message match the context set by the business and avoids confusing users.
Original PR description
Before this commit: In the graph view, when performing a search that yields no matching data, the default no content helper is shown even if a custom no content helper has been provided for that action window. After this commit: The provided no content helper for the action window is displayed instead. task-5136801 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#234320