Wednesday, April 8, 2026
3 changes · saas-18.4
Resolved issues and error corrections
The invoice download action now exports the same XML format as the send action, including cases where a partner uses a non-default e-invoicing format such as Peppol BIS 3.0. This prevents users from downloading the wrong country-specific XML file and ensures the invoice company setting is respected in multi-company setups.
Original PR description
Issue: Export XML button doesn't produce the same file as the send button. Steps to reproduce: - Company in Spain with Peppol (work with any Peppol country) - Partner in Croatia - Select eInvoice…
Issue: Export XML button doesn't produce the same file as the send button. Steps to reproduce: - Company in Spain with Peppol (work with any Peppol country) - Partner in Croatia - Select eInvoice Type as "EU Standard (Peppol Bis 3.0)" - Create an invoice - Confirm it - Click on the Wheel -> Download Current behavior: - without l10n_hr_edi: only "PDF" and "PDF without Payment" - with l10n_hr_edi: "Export XML" appear, but try to create an "ubl_hr" file Cause: "Export XML" button appear only if: - there is a default ubl option for the partner country - there is an XML attached to the invoice when clicked it exports the corresponding one. Whereas, the 'send' button rely on: 1) the partner defined edi format, 2) the default ubl option for the partner country 3) "ubl_bis3" To be noted: The route to download the XML doesn't keep the context of the active company and fallback to the first allowed company. As invoice_edi_format is company dependent it needs to be exported in the format defined for the company of the invoice. opw-5943500 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#253650
Improves the online shop category sidebar so pages with many nested categories load much faster. This reduces delays for shoppers and lowers server workload when browsing the store.
Original PR description
Before this commit, the product categories templates recursively rendered on new recordsets created using `filtered()`. This caused a performance regression when there were nested categories, as `_prefetch_ids` would be cleared, generating N+1 queries when fetching each child category. This commit changes the t-foreach to iterate over the original recordset, in order to preserve _prefetch_ids and improve caching performance. Benchmarks opening /shop with sidebar categories |Category count |Time before|Queries before|Time after|Queries after| |----------------|-----------|--------------|----------|-------------| |2000, nested |29.52s |4843 |0.83s |76 | |2000, not nested|0.89s |91 |0.80s |75 | opw-5969878
This update resolves an issue where the breadcrumb navigation within the Barcode app was sometimes displaying incorrect or blank entries when moving between related records. Now, the breadcrumb correctly displays the name of the originating document, making it easier for users to track their workflow and understand where they are within the system.
Original PR description
*: stock_barcode_mrp, stock_barcode_picking_batch ## Issue Before This PR: When navigating from the Barcode client action (e.g. picking, inventory, etc.) to related form views (such as lot, product,…
*: stock_barcode_mrp, stock_barcode_picking_batch
## Issue Before This PR:
When navigating from the Barcode client action
(e.g. picking, inventory, etc.) to related form views
(such as lot, product, or company), the breadcrumb
would sometimes display an unnamed entry instead
of the originating document name.
This caused confusion for users, as they could not
easily identify which document they were coming from
when navigating to related records from the Barcode interface.
## Steps to Reproduce:
- Install the Barcode module.
- Open the Barcode app and navigate to:
- Delivery Orders.
- Manufacturing Orders
- Batch Pickings
- Inventory Count
- From any of these open a record
(e.g. picking, MO, batch, inventory line)
- Click on document name or edit button on the line.
- Click on an external link (e.g. product, lot, company).
- Observe that the breadcrumb shows an unnamed entry.
## Cause of the Issue:
- When switching views inside the Barcode client action,
the FormController calls `setDisplayName(this.displayName())`.
In some cases, this returns an empty string, overwriting the
previously set breadcrumb name.
- In several form views, the `display_name` field was not present,
preventing the controller from retrieving a proper name.
## With This PR:
The Barcode views now display the correct document names in the
breadcrumb when navigating to external links, allowing users to easily
identify the originating document when opening related records from
the Barcode app.
TaskID: 4978997
Forward-Port-Of: odoo/enterprise#99165