Wednesday, September 16, 2026
4 changes · saas-19.4
Enhancements to existing features
The web debug menu now includes a Copy Arch button for the Computed Arch dialog, letting users copy the full computed view structure in one click. This makes troubleshooting, support sharing, and comparing customizations easier and less error-prone than manually selecting long XML text.
Original PR description
Description of the issue/feature this PR addresses: The "Computed Arch" debug dialog displays the fully computed view architecture, after inheritance, xpaths and studio customizations have been…
Description of the issue/feature this PR addresses: The "Computed Arch" debug dialog displays the fully computed view architecture, after inheritance, xpaths and studio customizations have been applied, in a read-only pre block. Extracting that text previously required manually selecting it in the browser, which is unreliable for long or deeply indented XML. Being able to copy this text to the clipboard helps with several common scenarios: - Debugging inherited views: when a view looks wrong and it is not clear which of several inheriting modules caused it, the computed arch can be diffed against the base view's arch to see exactly what changed. - Writing new xpath inherit rules: the exact final structure (attribute values, node ordering) is needed to write a correct expr="//field[@name='x']", which is easier to do in a scratch file or editor with search than by eyeballing a read-only dialog. - Bug reports and support tickets: the computed arch can be pasted into a Slack message, GitHub issue or support ticket so others can inspect the view without needing access to the database. - Studio customizations: consultants often need the underlying computed arch to understand why a Studio-added field appears in an unexpected position. - Comparing environments: the arch from a customer's staging instance can be diffed against production to spot config drift, e.g. a view customization made directly on prod. Current behavior before PR: In the "Computed Arch" debug dialog, the only way to get the arch text out of the browser is to manually click-drag to select it inside the pre block, then copy it. This is error-prone for long or deeply indented XML, where whitespace and line breaks are easy to select incorrectly or truncate. Desired behavior after PR is merged: A "Copy Arch" button is added next to "Close" in the dialog's footer. Clicking it copies the full computed arch to the clipboard in one click, with a brief "Copied" confirmation, removing the need to manually select the text. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#286797 Forward-Port-Of: odoo/odoo#286619
Point of Sale now remembers whether the cashier last used a percentage or fixed global discount and applies that choice by default on the next order. This reduces repeated setup for businesses that regularly use fixed discounts, and the discount setting label is clearer for both discount types.
Original PR description
The default global discount type was always `percent`, ignoring the type the cashier last picked. Some clients prefer `fixed` and had to reselect it on every order. Save the last global discount type used in local storage and use it as the default type for the next global discount. Since the discount value is no longer necessarily a percentage, rename the "Discount Percentage" field and its label to "Discount Value". --- Task: https://www.odoo.com/odoo/project/1737/tasks/6507075 Forward-Port-Of: odoo/odoo#285353
Peppol document errors are now shown as separate, readable items instead of one technical line. This helps users understand what went wrong and what action they may need to take when electronic invoicing issues occur.
Original PR description
Before this commit, Peppol error messages (e.g. Schematron errors) were logged in the chatter as a single unformatted line and without any humanization. The errors were too technical and the user could not easily know what action to take. This PR splits the raw error payload into individual entries, maps known error codes to human-readable explanations, and renders them as an HTML list in the chatter. task-6144909 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#283311 Forward-Port-Of: odoo/odoo#265253
The mail module now avoids searching for email aliases when the name to check is empty. This prevents very large unnecessary database lookups, improving performance and reducing load for systems with many aliases.
Original PR description
`email_localparts_tocheck` might contains the empty string. It can end up fetching tons of aliases without name (2M+ in odooo.com) task-6570805 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#288230