Monday, July 13, 2026
15 changes · 18.0
Enhancements to existing features
This update improves the performance and reliability of our website's image galleries by upgrading the Owl library to version 2.8.4. Specifically, it fixes a bug that prevented the loss of rendered images and adds support for running Owl with Node.js, enhancing 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 update fixes an issue where pressing 'Enter' within a code block nested in a list would incorrectly create a new list item. Now, 'Enter' will simply add a new line within the existing code block, providing a smoother and more intuitive editing experience for code snippets.
Original PR description
Current behavior before PR: - When the cursor was placed within the text of a code block that was a child of a list, pressing enter create a new list item containing a code block. Desired behavior after PR is merged: - Now, if the cursor is positioned within the text of a code block that was child of a list, pressing enter will insert a new line within the code block instead of creating a new list item. task:4240721
Features or functions removed from Odoo
This update removes an unnecessary and always-true check within the Odoo POS self-ordering module. The previous code was designed to verify if the self-ordering mode was 'qr_code', but this option is no longer valid. This change streamlines the code and improves efficiency without impacting functionality.
Original PR description
Description of the issue/feature this PR addresses: Removed obsolete code checking "this.config.self_ordering_mode !== 'qr_code'". Since "qr_code" is not a valid value of the "self_ordering_mode" selection field. The condition is always true.
This update addresses a technical issue where a report was failing when analytic plans were not available. The fix ensures the system gracefully handles missing plans, preventing errors and maintaining data accuracy. This resolves a previously reported problem (OPW-6383774, OPW-6383787) and improves report stability.
Original PR description
After this commit 403d9d7, current_plans is being used to get the column name but not always have a analytic plan. To fix this issue we review if is empty or not. OPW-6383774 OPW-6383787 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue where the DSO (Days Sales Outstanding) data on the Invoice Dashboard was misaligned. The problem stemmed from a discrepancy in how fiscal years were handled, leading to inaccurate reporting. This change ensures the DSO data accurately reflects invoice performance.
Original PR description
Invoice dashboard data, specifically DSO, was incorrectly aligned due to a mismatch in the fiscal year structure. Task-6049887
This update corrects a crash that occurred when the system attempted to merge partners using UUID-formatted access tokens. The fix ensures the system correctly handles both the older numeric partner ID format and the newer UUID format, preventing errors and improving stability.
Original PR description
The SQL query in _update_foreign_keys was casting access_token to integer unconditionally, but website_visitor.access_token is a Char field that uses two formats: - Legacy: partner_id stored as a numeric string (e.g. '105249') - Current: 32-char UUID hex string (e.g. 'b0dd4bfd041f4b42957357ba7e067dda') The ::int cast raises InvalidTextRepresentation on UUID-format tokens. Fix: guard the cast with a regex so only rows with numeric access_tokens are processed; UUID-format rows are left untouched. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update addresses a technical issue where an empty distribution model could cause errors. The fix prevents unnecessary merging of these models, streamlining the system and avoiding potential problems. This improves the stability and efficiency of the analytic accounting features.
Original PR description
It is possible to have an empty distribution model, there is therefore ne need to merge it, especially since it raises when doing this ```python self.env['account.analytic.plan'].mapped(lambda p: p._column_name()) ```
This update corrects a technical issue where some users were unable to access certain elements within the partner view due to inconsistent access rights. The fix ensures all users, regardless of their group membership, can properly interact with the relevant features. This improves overall system usability and prevents potential data access problems.
Original PR description
This PR fixes the following warning (similar ones with different XMLID) which occurred during system update. ``` WARNING ? odoo.addons.base.models.ir_ui_view: <b>Access Rights…
This PR fixes the following warning (similar ones with different XMLID) which occurred during system update.
```
WARNING ? odoo.addons.base.models.ir_ui_view: <b>Access Rights Inconsistency</b><br/>This view may not work for all users: some users may have a combination of
groups where the elements <b><tt><button></tt></b> are displayed, but they depend on the field <b><tt>loyalty_card_count</tt></b> that is not accessible. You might fix this by mo
difying user groups to make sure that all users who have access to those elements also have access to the field, typically via group implications. Alternatively, you could adjust the “<
i>groups</i>” or “<i>invisible</i>” attributes for these fields, to make sure they are always available together.<br/>Debugging information:<br/>- field “loyalty_card_count” is accessib
le for groups: 'base.group_user'<br/>- element “<button name="action_view_loyalty_cards" type="object" class="oe_stat_button" icon="fa-money"
groups="base.group_system,sales_team.group_sale_salesman" invisible="loyalty_card_count == 0"/>” is shown in the view for groups: ('base.group_portal' & &
#39;base.group_system') | ('base.group_public' & 'base.group_system') | ('base.group_system' & 'base.group_user') | ('base.group_system&#
39; & 'base.group_partner_manager') | 'sales_team.group_sale_salesman'
View error context:
{'file': '/tmp/addons/account_invoice_import_simple_pdf/views/res_partner.xml',
'line': 1,
'name': 'res.partner form',
'view': ir.ui.view(15203,),
'view.model': 'res.partner',
'view.parent': ir.ui.view(15202,),
'xmlid': 'view_partner_property_form_move'}
```
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update corrects a technical issue in the Odoo accounting system that could have caused errors during payment processing. The fix ensures the system correctly identifies the 'company' record instead of the 'self' record, preventing potential errors and improving payment reliability. This resolves a minor bug impacting financial transactions.
Original PR description
This commit https://github.com/odoo/odoo/commit/f54d6918d8ef5aa143e63b7dc79e8c3e3d8583f8 introduced a bug, calling _get_batch_payment_sequence_values on self instead of company triggering possible ensure_one exception if self is not one company.
This pull request updates the core spreadsheet component within Odoo. It addresses several technical improvements and bug fixes related to spreadsheet functionality, specifically focusing on conditional formatting and internal configuration. These updates ensure the spreadsheet component continues to operate smoothly and reliably.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/9183e3668 [REL] 18.0.74 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/9183e3668 [REL] 18.0.74 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/ec8874600 [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/8278af136 [FIX] config: filter-out claude folder from prettier [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 ensures that the Klipy search placeholder now displays "Search KLIPY" as required by Klipy's attribution guidelines. This improves the user experience and maintains compliance with Klipy's documentation. The change was made to align with the platform's integration with Klipy.
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 Forward-Port-Of: odoo/odoo#275677
A recent change blocked users from creating social media posts within event communications. This update removes a restriction that was causing the issue, allowing users to once again add social media posts to event communication templates. The change was initially intended to limit template edits but inadvertently caused broader functionality problems.
Original PR description
Issue: User goes to Event.event Form -> communication tab -> add line - can no longer create a social post in template communication tab Fix: remove "no_create_edit: True" to the associated field in the xml to unblock creation of new mail.templates Reverted from commit (odoo/odoo@f58e9f97192ac0ff8d159377494d6c68f871d20b) due to not being able to make social media posts on event communication tab. I originanlly suggested this change because WA Templates need more limitations for creation and edits. This then blocked other creation and edits that rely on this flow. opw-6334168
This update resolves an issue where animated GIFs used within image shapes wouldn't play correctly in Firefox and Safari. The team added a technical workaround to ensure GIFs now function as expected, expanding the usability of image shapes with animated content.
Original PR description
Animated GIFs applied with an image shape freeze on Firefox and Safari when the shape's SVG is otherwise static. A dummy `<animateMotion dur="1ms" repeatCount="indefinite"/>` child on the <image> element keeps the animation running so the GIF plays. This hack was introduced in [1] but was missing from most shapes. This commit adds it to every <image> element that lacked it so any shape can be used with a GIF. task-5967171 [1]: https://github.com/odoo/odoo/commit/144e5ef799060da860a5fb1fbe0fd009919afe79
This update corrects a minor error in the turnstile template that prevented users from consistently controlling the display mode via the ?cf=show parameter. The fix ensures the turnstile appears as intended, resolving a visual inconsistency. This update is a safe forward-port from the 17.0 release.
Original PR description
Stable forward-port source patch. Issue - The turnstile template uses a misspelled variable name in data-appearance: appeareance. - JS provides appearance. - Because of this mismatch, data-appearance always falls back to interaction-only and ?cf=show cannot force always mode. Fix - Replace appeareance with appearance in the turnstile template. Why stable-safe - One-line template fix. - No API/model/signature changes. - No behavior change outside the intended appearance selection. This is intended as the 17.0 source fix so forward-porting can propagate to upper versions. Related: odoo/odoo#273306 and odoo/odoo#273652 Forward-Port-Of: odoo/odoo#273706
This update fixes a potential issue where loading certificates could cause unexpected errors and crashes in Odoo. By implementing safeguards, the system now gracefully handles malformed certificates, preventing tracebacks and ensuring smoother operation. This improves the overall reliability of certificate management within Odoo.
Original PR description
Loading a certificate could raise an unhandled exception instead of failing gracefully. Clearing the content, uploading a bundle with a corrupted certificate block, or handling certificates with unsupported signature algorithms or malformed extensions all could end up in a traceback. Guard those paths to ensure loading errors are handled. opw-6370529 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