Monday, July 13, 2026
10 changes · 17.0
Enhancements to existing features
This update improves the performance and reliability of our website's image galleries by upgrading the Owl library to the latest version (2.8.4). Specifically, it fixes a bug that caused lost coalesced renders and adds support for running Owl with Node.js, enhancing our development flexibility.
Original PR description
- [FIX] runtime: don't lose coalesced renders - [IMP] loadable with nodejs See https://github.com/odoo/owl/commits/owl-2.x/ for more details 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 Forward-Port-Of: odoo/odoo#275568
Resolved issues and error corrections
This fix registers the WhatsApp Identifiers translation template so it is included in the translation workflow. It helps ensure translated text for this module can be properly managed and kept up to date.
Original PR description
pot files must be registered there. See 9966b160972a053e051f2213846acc64d133f2a3
Documentation and clarification updates
This update formally recognizes the contributions from Royal Import & Export Ltd and Colin Van den Akker by recording their signed Contributor License Agreements. This allows Odoo to accept code changes and features from this valuable contributor. The CLA signatures are now stored for future use and to ensure compliance with Odoo's open-source licensing.
Original PR description
Description of the issue/feature this PR addresses: Contributor License Agreement signatures for Royal Import & Export Ltd and Colin Van den Akker, per https://github.com/odoo/odoo/blob/17.0/doc/cla/sign-cla.md - Corporate CLA: `doc/cla/corporate/royalimport.md` - Individual CLA: `doc/cla/individual/colinvandenakker.md` Targeted at **17.0** (oldest supported LTS) so robodoo can forward-port to 18.0/19.0. Current behavior before PR: No corporate or individual CLA on file for Royal Import / Colin Van den Akker. Desired behavior after PR is merged: CCLA and ICLA are recorded so contributions from https://github.com/royalimport can be accepted. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Dutch reports module information no longer shows an outdated website link that now points to unrelated content. This avoids sending users to the wrong external site and keeps module details accurate.
Original PR description
The URL leads to a website that has nothing to do with what it used to be so it needs to be removed. Task-6360682
This fix ensures payroll rule parameter data stays consistent when reused by the system. It prevents one payroll calculation or process from unintentionally changing cached values used elsewhere, reducing the risk of hard-to-trace payroll issues.
Original PR description
Cached functions with `@ormcache` should not return immutable values, yet `_get_parameter_from_code()` could return dicts/sets/lists/etc. It could lead to very obscure bugs such as: ```python def…
Cached functions with `@ormcache` should not return immutable values, yet `_get_parameter_from_code()` could return dicts/sets/lists/etc.
It could lead to very obscure bugs such as:
```python
def some_innocent_code():
category_dict = self.env["hr.rule.parameter"]._get_parameter_from_code('l10n_be_work_entry_categories')
incapacity_codes = category_dict['partial_incapacity']
incapacity_codes |= category_dict['total_incapacity']
# ... then use incapacity_codes
def print_rule_param():
print(self.env["hr.rule.parameter"]._get_parameter_from_code('l10n_be_work_entry_categories')['partial_incapacity'])
print_rule_param() # OrderedSet(['LEAVE281'])
some_innocent_code()
print_rule_param() # OrderedSet(['LEAVE281', 'LEAVE264', 'LEAVE266', 'LEAVE217', 'LEAVE218', 'LEAVE219', 'MEDIC01'])
```
The solution was to either deepcopy the returned value each time, or to change all the rule parameters to their frozen equivalent. Since we don't have access to frozen objects in rule parameters's xml definitions, we opted for the deepcopy approach.
task-6329380This update ensures that the default placeholder in the Klipy search feature displays "Search KLIPY", as required by Klipy's attribution guidelines. This change maintains proper compliance and enhances the user experience when using Klipy within Odoo. It's a minor fix to improve consistency.
Original PR description
Klipy requires attribution with "Search KLIPY" as the default placeholder [1]. This commit complies these guidelines. [1]: https://docs.klipy.com/attribution
This update ensures the Odoo spreadsheet component is running the latest version, addressing potential bugs and improving performance. The changes include fixes for conditional formatting and updates to the underlying technology. This ensures the spreadsheet functionality continues to operate smoothly within Odoo.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/209fe7cdc [REL] 17.0.102 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/209fe7cdc [REL] 17.0.102 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/23f83e0cb [FIX] conditional_formatting: handle zero color scale midpoint [Task: 6312961](https://www.odoo.com/odoo/2328/tasks/6312961) https://github.com/odoo/o-spreadsheet/commit/b016fb42b [FIX] config: filter-out claude folder from prettier [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/bc58e58d7 [REL] Ghost-rel [](https://www.odoo.com/odoo/2328/tasks/) https://github.com/odoo/o-spreadsheet/commit/22a817fe5 [FIX] config: bump node version in GH action [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Ronak Mukeshbhai Bharadiya (rmbh) <rmbh@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com> Co-authored-by: Marceline Thomas (matho) <matho@odoo.com>
This update fixes a problem where users were repeatedly receiving duplicate vendor bills. The system was incorrectly creating new invoices for each incoming message, leading to unnecessary processing. Now, the system checks for existing invoices before processing new ones, preventing duplicates and improving efficiency.
Original PR description
Many users were receiving duplicate vendor bills. The issue was that duplicates were never detected in the receiving flow. Every incoming message returned by the proxy was processed and turned into a new `account.move`, even if it had already been imported previously. This commit filters out messages whose UUID already matches an existing `account.move` before processing them, and acknowledges those duplicates on the IAP side so they are not received again on the next run. task-5930116 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a technical issue related to how the Odoo website modules (website, website_sale) process data. By replacing synchronous `forEach` loops with standard `for` loops, the system's performance has been enhanced. This ensures smoother operation and avoids potential errors within these key website functionalities.
Original PR description
*: website, website_sale `forEach` is a synchronous operation, so it doesn't support promises. We refactor its usage to use `for` loops. task-4794299
This update fixes a confusing error message related to zero amounts in account reconciliation settings. The change ensures that error messages accurately reflect the type of amount being validated, leading to a clearer and more user-friendly experience. This improves the accuracy of reconciliation processes.
Original PR description
In _validate_amount(), setting a "Percentage of balance" line to 0 raises "Statement line percentage can't be 0", and setting a "Percentage of statement line" to 0 raises "Balance percentage can't be 0". Align each error message with the amount type being validated. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr