Tuesday, September 30, 2025
3 changes · 18.0
Enhancements to existing features
Link tracking redirects now encode certain repeated-dot characters in destination URLs. This helps prevent some web server configurations from incorrectly blocking valid tracked links as suspicious.
Original PR description
Purpose ======= It has been reported that some nginx configuration detect '...' as malicious. When testing, encoding the '...' solve the issue, and so we force the encoding for the redirection URL. Task-4920533 Forward-Port-Of: odoo/odoo#229060
This update lets developers extend existing view settings without replacing them entirely. It reduces the risk that customizations accidentally overwrite earlier configuration, making upgrades and inherited views easier to maintain.
Original PR description
This commit introduces a new `merge` attribute to the `<attribute>` tag, allowing developers to safely merge existing dictionary-based or list-based attributes in XML view inheritance. Problem:…
This commit introduces a new `merge` attribute to the `<attribute>` tag, allowing developers to safely merge existing dictionary-based or list-based attributes in XML view inheritance.
Problem:
Currently, when a developer needs to extend an attribute like `options` or `domain` in an inherited view, they must completely redefine the attribute, which can lead to unintended overwrites of properties set in the base view. For example, to add a new option, one must copy all existing options, which is tedious and brittle.
Solution:
The new `merge` attribute provides a declarative way to extend these attributes. When specified on an `<attribute>` tag, it intelligently merges its value with the existing attribute value on the target node. For dictionary-based attributes like `options`, it performs a dictionary update. For list-based attributes like `domain`, it extends the list.
Usage Example:
Given an existing field with a base `options` attribute: `<field name="supplier_id" options="{'no_open': 1, 'no_create': 1}"/>`
A developer can now extend this in an inherited view without overwriting: `<attribute name="options" merge="{'list_view_ref':'cm_product.cm_product_supplierinfo_tree_view'}"/>`
The result will be a combined `options` attribute: `options="{'no_open': 1, 'no_create': 1, 'list_view_ref': 'cm_product.cm_product_supplierinfo_tree_view'}"`
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-prThe Point of Sale now prevents keyboard input from accidentally changing order lines while a popup is open, such as customer selection, notes, or coupons. This reduces unintended order changes and makes checkout workflows safer and more predictable for staff.
Original PR description
Before this commit: - Even when a popup (e.g., customer selection, note, coupon) was open, unfocused keyboard inputs could still update orderline values. After this commit: - Orderline editing via keyboard is disabled whenever a popup is active. - Prevents unintended changes and ensures a safer user flow in POS. Task-5033716