Daily updates from Odoo
Friday, November 7, 2025
15 changes · master
Enhancements to existing features
The Swiss payroll employee form now shows example names as placeholder text in the employee name field. This small usability improvement helps users understand the expected format when entering employee names.
Original PR description
* Add placeholder text to employee name field with Swiss cultural examples: "e.g. Roger Federer, Jean-Luc Godard, Johannna Spyri, ..." task-5102851
The SendCloud delivery integration has been tidied up to make its internal handling of service calls, settings, and access keys more consistent. This should make the delivery connection easier to maintain and reduce the risk of issues when managing SendCloud credentials, without changing day-to-day user workflows.
Original PR description
Cleanup of the SendCloud class calls, attributes and methods. Keys lifecycle management via context manager. task-5129801
Embedded content in Knowledge now reuses the editor’s shared selection handling instead of duplicating it in individual components. This makes editing interactions more consistent and easier to maintain, with no expected workflow disruption for users.
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 Forward-Port-Of: odoo/enterprise#97941
The time-off Gantt view now colors each time-off entry based on its time-off type instead of the employee. This makes the overview easier to read by helping managers quickly distinguish different kinds of leave.
Original PR description
Change the color of the Gantt pill from employee-wise to the time-off color. task-5215713
Salary adjustment amount and duration fields are now read-only once the record is closed. This helps prevent accidental changes to finalized payroll information and supports more reliable payroll records.
Original PR description
Set the `Amount` and `Duration` fields to be readonly when the state is closed. task-5155477
Resolved issues and error corrections
This fix prevents the AI chat from crashing when a user has no timezone set in their profile. If no timezone is available, the system now uses UTC so users can continue composing emails with AI assistance without interruption.
Original PR description
Currently, an error occurs when opening the AI chat from the mail composer if the user's timezone has been removed. **Steps to Reproduce:** 1. Install AI and Purchase modules. 2. In the user's profile, remove the 'TimeZone'. 3. Open any purchase order and click on _Send PO_. 4. In the _Compose Email_ form, click on AI icon. **Error:** `AttributeError - 'bool' object has no attribute 'upper'` **Cause:** The issue occurs because `self.env.user.tz` returns False when the user's timezone is not set, causing an error when it tries to use `upper()` method on bool value. **Fix:** This commit fixes the issue by defaulting to the UTC timezone when the user's timezone is not set. **Ref:** https://github.com/odoo/odoo/blob/0f40ea82a1332f0e7168d861ad446b7316ab03de/odoo/addons/base/models/res_partner.py#L225-L228 sentry-6961379038 Forward-Port-Of: odoo/enterprise#98435
Archived reconciliation models are now hidden from the list of available options when matching bank transactions. This prevents users from accidentally selecting outdated or disabled rules and keeps the reconciliation workflow aligned with active settings.
Original PR description
Steps to reproduce: ------------------- 1. Install Accounting (with demo data). 2. Go to Accounting > Dashboard and open the "Bank" journal. 3. Click on any unreconciled line and open the dropdown menu. 4. Select “Manage models” and archive one of the reconcile models. 5. Return to the bank journal and open any unreconciled line. Issue: ------- Archived reconcile models are still shown in the available model list. Cause: ------ The [SQL query](https://github.com/odoo/enterprise/blob/6615de3100ac1192039a5f276df278c543f2fabb/account_accountant/models/account_reconcile_model.py#L47-L118 ) does not filter out inactive reconcile models. Solution: ---------- Add a condition to include only active models. opw-5189700 Forward-Port-Of: odoo/enterprise#98372
This fixes an issue where connecting an IoT Box could fail while creating its record if the version information was not yet available. The system now checks that the version is present before using it, helping ensure smoother IoT Box setup.
Original PR description
In order to avoid a traceback when creating the IoT Box record after connection, we need to ensure the version is set, before checking whether the first character is a "W". Forward-Port-Of: odoo/enterprise#98871
Philippine check printing now formats amounts with centavos correctly by removing the trailing "ONLY" when decimal amounts are present. The wording for decimal amounts was also adjusted to use lowercase "and", helping printed checks match local formatting expectations.
Original PR description
In phillipines, if any amount has centovas (decimal amount), the amount in words cannot contain 'ONLY' in the end. Additionally, changed 'And' -> 'and' for decimal amount. **task**-5155953 Forward-Port-Of: odoo/enterprise#98535
The mobile search panel now uses colors that fit dark mode better. This improves readability and visual consistency for users working in dark mode on smaller screens.
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
The Planning app now handles missing employee data when opening an avatar popover, such as for archived employees. This prevents an error screen and lets users continue working without interruption.
Original PR description
Purpose of this PR: A guard has been added in the override of `get_avatar_card_data` to handle empty results and prevent traceback errors when data is missing. community PR: [odoo/odoo#231184](https://github.com/odoo/odoo/pull/231184) Forward-Port-Of: odoo/enterprise#98963 Forward-Port-Of: odoo/enterprise#98230
The employee salary offer button now shows all offers linked to the employee across every contract version, instead of only the currently displayed version. This gives HR users an accurate count and avoids missing offers when reviewing employee salary information.
Original PR description
Fix offers count shown in the smart button to show all offers of the mployee in all version, not just the version being displayed. Task-5082700
When a pay run is created from an employee payslip, its dates now automatically match the payslip's pay period. This prevents incorrect default dates and reduces manual corrections for payroll teams.
Original PR description
When creating a pay run directly from the payslip form view, the pay run dates now default to the payslip's period dates instead of the current month. task-5236811 Forward-Port-Of: odoo/enterprise#98799
Code cleanup and technical improvements
The salary contract code was reorganized so related modules can customize key steps more safely and efficiently. This is an internal cleanup that should make future payroll and localization changes easier without changing the user experience.
Original PR description
This commit extracts the code used inside the savepoint so that other modules can override these methods without doing another savepoint and rollback. task-5163035
Miscellaneous changes
task-5184489 Related: https://github.com/odoo/odoo/pull/233275 Forward-Port-Of: odoo/enterprise#99056 Forward-Port-Of: odoo/enterprise#98193
Original PR description
task-5184489 Related: https://github.com/odoo/odoo/pull/233275 Forward-Port-Of: odoo/enterprise#99056 Forward-Port-Of: odoo/enterprise#98193