Monday, December 29, 2025
11 changes · master
Enhancements to existing features
This update aligns Odoo's Thailand localization with the specific requirement for 5-digit Branch Codes. The change clarifies how Branch Codes are used and validates them correctly, ensuring accurate reporting and compliance within the Thai market. This improves the reliability of financial data for Thai businesses using Odoo Enterprise.
Original PR description
The related community PR substitutes 'Branch Code' for 'Company ID' (company_registry). Since Thailand uses strictly 5 digit Branch Code, the validation is applied and the test case has been adjusted accordingly in this commit. task-5402592
This update ensures all work entries are consistently set to 'draft' status, streamlining payroll processing. The change was made to centralize work entry management within the core HR payroll module. This improves data accuracy and simplifies workflows for HR administrators.
Original PR description
-The action_set_to_draft should set any work entry to draft regardless of the situation. -The record has been moved inside hr_payroll module.
Resolved issues and error corrections
This update restores the intended behavior for the Knowledge composer by hiding the GIF and canned response actions. These features were previously visible after a recent system update, but this fix ensures they are hidden when creating content in Knowledge, streamlining the composing process. This improves the user experience for creating knowledge articles.
Original PR description
The GIF picker was previously hidden in Knowledge, but became visible again after the composer actions refactor. Commit that introduced the change: https://github.com/odoo/odoo/commit/5e1daafeac231c333ea13369fc208627213d67d4 This commit restores the intended behavior by hiding the GIF action again and also hides the canned response action, as neither feature is relevant when composing content in Knowledge, by applying conditions on the corresponding composer actions. Task-5163888 Forward-Port-Of: odoo/enterprise#102927 Forward-Port-Of: odoo/enterprise#100585
Code cleanup and technical improvements
This update streamlines the integration of WhatsApp within the Odoo Enterprise platform. The changes optimize how WhatsApp interacts with channels, enhancing code readability and efficiency. This results in a more robust and maintainable system for managing WhatsApp conversations.
Original PR description
PR community: https://github.com/odoo/odoo/pull/241072
This update resolves an error that occurred when a user removed the end date from a planning slot. The fix ensures the system handles the absence of an end date gracefully, preventing a technical error and allowing users to correctly manage their planning slots. This improves the overall stability of the planning module.
Original PR description
Currently an error occurs when user tries to remove end date on slot. Steps to replicate: - Install `planning`. - Create a new planning slot and click on a slot template at the top. - Remove the end…
Currently an error occurs when user tries to remove end date on slot.
Steps to replicate:
- Install `planning`.
- Create a new planning slot and click on a slot template at the top.
- Remove the end date (rightmost) and click elsewhere.
Error:
```
File /home/odoo/odoo18/enterprise/planning/models/planning.py, line 423, in _compute_template_id
if slot._different_than_template():
File /home/odoo/odoo18/enterprise/planning/models/planning.py, line 439, in _different_than_template
slot_time = self[slot_field].astimezone(pytz.timezone(self._get_tz()))
AttributeError: 'bool' object has no attribute 'astimezone'
```
Cause:
- When the end date was removed, [compute] was triggered, calling the `_different_than_template()` method, which iterates through the fields in the slot template.
- Since the user removed `end_datetime`, `self['end_datetime']` became false and caused the error at line [1].
Solution:
- Returned from the function call when `end_datetime` is false.
[compute]: https://github.com/odoo/enterprise/blob/745c1cc0e06f5e0578ec4383439f8be2419adb6b/planning/models/planning.py#L418-L426
[1]: https://github.com/odoo/enterprise/blob/745c1cc0e06f5e0578ec4383439f8be2419adb6b/planning/models/planning.py#L438
No ID
Forward-Port-Of: odoo/enterprise#102762This update resolves an issue preventing the successful installation of the UK Construction Industry Scheme (l10n_uk_reports_cis) when using branch companies. The fix prevents the creation of duplicate account codes, ensuring the module installs correctly and reliably for all UK company setups, including those with branches.
Original PR description
Before this commit: Steps 1) Create a UK localization company 2) Create a branch for that company 3) Try to install UK - Construction Industry Scheme (l10n_uk_reports_cis) => A Validation Error is raised with the message `Account codes must be unique. You can't create accounts with these duplicate codes: 220001, 220101, 220201`, This occurs because the `_l10n_uk_reports_cis_post_init()` method is creating accounts for each UK company even if they aren't root companies (branch). After this commit: UK - Construction Industry Scheme (l10n_uk_reports_cis) is installed successfully with UK companies that have branches. opw-5326079 Forward-Port-Of: odoo/enterprise#99901
This update resolves an issue where payment differences were incorrectly calculated for UrbanPiper orders after payment. The fix ensures that the final payment amount is accurately reflected as $0.00, improving the reliability of financial reporting for these orders. This change impacts the UrbanPiper integration.
Original PR description
In this commit, The amount difference should be 0.0 after the Urbanpiper order has been paid. task-5441252 Forward-Port-Of: odoo/enterprise#102894 Forward-Port-Of: odoo/enterprise#102872
This update fixes an issue where the Payslip Work Days Lines report displayed data for both Indian and Belgium payrolls. The team added a filter to ensure the report only shows data for the currently selected company, improving data accuracy and usability.
Original PR description
**Steps to reproduce:** - Install Indian and Belgium payroll. - Go to Payslip Work Days Lines report. - Employee data of both companies are shown. **Issue:** - Payslip Work Days Lines Report Should Show Only Selected Company’s Data. **Cause:** - Filtering was missing to set the data according to selected company **Fix:** - Added domain in view to show data according to the current selected company. task-5407727
This update fixes an issue where Sendcloud delivery address parsing incorrectly handled addresses with multiple dashes or slashes, such as those common in Austria. The change updates a key pattern to accurately capture address numbers with multiple separators, ensuring correct delivery address formatting and preventing delivery errors.
Original PR description
Issue ----- When creating a sendcloud delivery, addresses containing multiple dashes or slashes (eg Austrian addresses) have their number incorrectly parsed. Examples: Innsbruck Straße 8/1/13 -> 8/11 (should be 8/11/13) 7-3/11A Hochköning Straße -> 7-3 (should be 7-3/11A) Fix ----- Update part of the regex pattern from `\d+[-\/]?\d*` to `\d+(?:[-\/]?\d+)*` in order to match multiple occurences of one of '-', '\' or '/' followed by some number. ----- Ticket: opw-5366863 Forward-Port-Of: odoo/enterprise#101594
This update resolves a problem preventing a key demo tour from running correctly. The issue stemmed from duplicate job entries within the demo data, causing a mismatch during the tour's execution. This ensures the demo tour functions as intended, providing a reliable experience for users.
Original PR description
- fixing tour `hr_contract_salary_tour_sign_again`which was failing with demo data because another job was installed in the demo data with name Experienced Developer so it was matching with it instead of the correct job position task-id: 5413364 Forward-Port-Of: odoo/enterprise#102677
This update restores the ability to generate negative overtime (undertime) in the attendance system. This feature, previously removed to minimize financial losses, is now re-enabled based on specific Absence Management settings. This allows for more accurate tracking of employee hours and reduces potential revenue discrepancies.
Original PR description
…time generation Forward-Port-Of: odoo/enterprise#102880 Forward-Port-Of: odoo/enterprise#102271