Friday, August 22, 2025
13 changes · 18.0
Resolved issues and error corrections
This fixes an issue where users could not confirm a selection in a grouped list dialog after selecting records through the group/domain checkbox. The Select button now becomes available as expected, reducing friction when adding related records in Odoo settings and similar screens.
Original PR description
Steps to reproduce ================== - Enable debug - Go to Settings / User & Companies / Groups - Open a record - Switch to the Views notebook tab - Add a line - Group by Model - Click on the o_list_record_selector checkbox => The Select button is disabled Cause of the issue ================== The list_controller onSelectionChanged props is only called when we select records manually, but not when using the domain selection Solution ======== Backport part of https://github.com/odoo/odoo/commit/1d761ac90d027f1448381391104d20f0e1693407 This calls the onSelectionChanged when this.model.root.isDomainSelected changes opw-4856528
This update prevents warning messages when Odoo runs with newer Python-related documentation libraries while keeping support for older versions. It is a small, backward-compatible maintenance fix that helps keep the base system clean and future-ready.
Original PR description
Odoo 17.0 supports Python ≥3.11, which installs docutils==0.20.1. This version deprecates `Node.traverse()` in favor of `Node.findall()`. To avoid deprecation warnings and ensure compatibility with both docutils 0.17 and 0.20.1, this patch uses `findall()` if available and falls back to `traverse()` otherwise. This change is backward-compatible and safe to cherry-pick to >= 18.0. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#222000
The restaurant point of sale test flow now waits for orders to finish syncing before it ends. This prevents follow-up errors caused by orders not being fully saved yet, improving reliability of automated validation.
Original PR description
### Issue: - In `test_14_pos_payment_sync`, the tour could end before the order was synced to the server, causing errors in later steps. ### Fix: - Added steps to wait until the sync is done before finishing the tour. Runbot Error: 113594, 181563 Task: 4974068
The Timesheets settings help icon has been updated to point to the current documentation location after a documentation page structure change. This prevents users from landing on a missing or outdated help page when looking for guidance about time off settings.
Original PR description
**Description:** - In a recent documentation commit, the overview section was removed from the timesheets path. commit: odoo/documentation@3bceee836fa8b8edfd8a35c20b21867354f6c078 **Steps to reproduce:** - In a `v18` runbot - open settings > Timesheets settings > under Time off - click on the info icon <img width="1905" height="944" alt="2025-08-21_18-25" src="https://github.com/user-attachments/assets/34ec76ed-46f7-4b08-8c23-10269e105b43" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Leads without a valid email address will now be checked for enrichment only once. This prevents repeated failed enrichment attempts and avoids recurring error loops that can clutter operations.
Original PR description
If a lead has no valid email, try to enrich it only once This will avoid infinite loop of errors of "Enrichment could not be done because…"
Fixed a website header styling issue where certain active link styles made the sign-in button appear larger than intended. This keeps the header layout more consistent for visitors and improves the visual polish of the login experience.
Original PR description
Before this commit, using the "outline" or "border bottom" options for the Link Style (active page link in the header) would make the sign in button bigger. This was due to the fact the selector was not precise enough and would also include the button. This commit improves the selector to avoid impacting the sign in button. Steps to reproduce: - Go to Edit mode - Click on the header - Set the Navbar > Links Style option to "Border Bottom" - Save - Log Out
Recurring project tasks now carry the correct background context when they are created. This helps related Field Service task data copy correctly, reducing errors or missing information in recurring work.
Original PR description
This context is used in the FSM task's copy_data method. Enterprise: https://github.com/odoo/enterprise/pull/83424 task-4595587 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Portal users can now group Helpdesk tickets by customer without running into an access error. This keeps the ticket list usable for invited customers while respecting existing access limits on customer records.
Original PR description
**Issue:**
When logged in as a portal user, grouping tickets by 'Customer' raises an
access error, as portal user can only read partner records if:
```
[('id', 'child_of', user.commercial_partner_id.id)]
```
As defined in rule here:
https://github.com/odoo/odoo/blob/68a156030c366fbbf6b0841e1e2688a571355bf2/odoo/addons/base/security/base_security.xml#L22-L30
**Steps to reproduce:**
- Navigate a helpdesk team and set tickets to be visible to Invited portal
users and all internal users.
- Add a portal user as a follower to one of the team's tickets.
- Log in as the portal user, navigate to Tickets, and group by Customer.
An access error is raised
opw-4969684Payroll configuration screens now show Python code correctly for salary rules and rule parameters. This helps payroll administrators review and maintain calculation logic more reliably, reducing confusion when checking or updating payroll settings.
Original PR description
Forward-Port-Of: odoo/enterprise#91811
FedEx delivery requests now send province codes without the country prefix when required. This helps avoid shipping errors for countries where standard region codes include the country code, such as Sweden.
Original PR description
Before this commit: The province code for some countries includes the country code too. FedEx expects a two letter code in the request. For example, the standard code for Stockholms lan is "SE-AB" and the code FedEx expects is "AB". After this commit: The country code is excluded from the province code. opw-4984662 Forward-Port-Of: odoo/enterprise#92650
Users can now export calendar invites for planning shifts even when no employee is assigned. The system falls back to the current user's timezone or UTC, preventing an error and keeping shift sharing reliable.
Original PR description
Currently, an error occurs when a user tries to export a calendar invite (ICS) for a planning shift that has no assigned resource. **Steps to reproduce:** - Install the `planning` module. - Go to `Planning > New`, and click `Publish & Send`. - Enable developer mode and go to `Settings > Technical > Email > Emails`. - Open the latest email record and click `iCal/Outlook`. **Error:** `AttributeError: 'bool' object has no attribute 'upper'` **Root Cause:** At [1], when no employee is assigned to the shift, `slot.employee_id` is `empty`, so `slot.employee_id.tz` is `False`, which leads to an error. This commit ensures a valid timezone is always used by selecting the current user's timezone or 'UTC' when the shift has no assigned employee. [1] https://github.com/odoo/enterprise/blob/13ce65b8ca61f9a825f2876e2727cddfae83f894/planning/controllers/main.py#L355 sentry-6781639319
Recurring field service tasks now retain the related sales order and sales order line from the original task. This prevents follow-up work from losing its sales context, helping teams track billable service work accurately.
Original PR description
Steps to reproduce: - Install the `industry_fsm_sale` module - Enable recurring tasks in project settings - Create and confirm a sale order - Create a task and link the sale order - Mark the task as done - Check the newly created task Issue: - The sale order and sale order line are not set when creating a recurring task. Cause: - The `copy_data` method clears these fields when the task is fsm. Fix: - Ensure that the sale order and sale order line are not removed during recurring task creation, even when the task is fsm. task-4595587
The Danish RSU module name has been adjusted to match the naming style used by other Denmark-related modules. This is a small consistency fix that helps users and administrators recognize the module more easily.
Original PR description
This commit will edit the name of the module to be consistent with the other denmark modules no task id Forward-Port-Of: odoo/enterprise#92759