Tuesday, April 21, 2026
10 changes · 18.0
Resolved issues and error corrections
This change fixes a flaky test in the web editor so it behaves more consistently across fast and slow test runs. It better matches how a real user clicks a link, reducing false failures in automated testing.
Original PR description
The popover opening is triggered through click, but there is a selectionchange handler on click that checks if the selection is outside of the link and, if it is, closes the popover. In this case, the click method didn't set the selection inside the link properly because of the presence of \ufeff around the link. The test actually passes by mistake when the runbot was fast, but failed when the runbot was slow, as the selectionchange handler had the time to execute and close the popover. This commit forces the selection to be inside the link after calling click, to be closer to what actually happens when a user click on a link, as opposed to a programmatic click. runbot-161423 Forward-Port-Of: odoo/odoo#259688
This change prevents template tags from overlapping the Template Properties button in the Sign app. It improves the display in wider languages like German so the header stays readable and easier to use.
Original PR description
## Issue In the Sign app, the list of tags of a template can overlap with the *Template Properties* button when using a language that makes those components slightly wider than expected (e.g.…
## Issue
In the Sign app, the list of tags of a template can overlap with the *Template Properties* button when using a language that makes those components slightly wider than expected (e.g. German).
## Steps to reproduce
1. Install Sign (`sign`)
2. Set the language to German
3. Open a template
4. **In the header, the list of tags overlap the _Template Properties_ button**
## Cause
The list of tags uses `col-lg-12`, which is design for Bootstrap's grid system and prevents the div from shrinking properly.
```css
.col-lg-12 {
flex: 0 0 auto; /* flex-shrink set to 0 */
width: 100%;
}
```
## Before
<img width="726" height="67" alt="6023834-1" src="https://github.com/user-attachments/assets/fd49c8d5-4ca0-4de4-8f0c-f03f78f4b7ab" />
<img width="432" height="75" alt="6023834-2" src="https://github.com/user-attachments/assets/d595e8a3-c3ab-4ae2-89dd-652371de9604" />
## After
https://github.com/user-attachments/assets/3a00fc5f-260d-465d-8e12-96d8e6e1aa4c
opw-6023834
Forward-Port-Of: odoo/enterprise#113116This change fixes an issue where already scanned packages could reappear with the wrong quantity when a delivery was reopened in the barcode app. Users will now see the expected quantity of 1 for picked package lines, avoiding confusing or misleading information during warehouse operations.
Original PR description
Issue ----- When using full packaging in barcode, leaving the operation and opening it again shows incorrect quantity for already scanned packages. Steps to reproduce ----- - Enable packages - Create…
Issue ----- When using full packaging in barcode, leaving the operation and opening it again shows incorrect quantity for already scanned packages. Steps to reproduce ----- - Enable packages - Create a product with one package in stock - Operation Types > Delivery Orders, set Move Entire Packages to true - Create a delivery for a package - Scan the package barcode - Exit the delivery - Re-enter the delivery > Quantity for the line is 1/false Cause ----- The line is picked, so it is considered as not reserved https://github.com/odoo/enterprise/blob/02f957b600bac3d86411091fd762d88e372db7c5/stock_barcode/static/src/models/barcode_picking_model.js#L288-L289 when doing https://github.com/odoo/enterprise/blob/02f957b600bac3d86411091fd762d88e372db7c5/stock_barcode/static/src/models/barcode_picking_model.js#L812-L813 This leads to `qtyDemand` returning false instead of 1 https://github.com/odoo/enterprise/blob/02f957b600bac3d86411091fd762d88e372db7c5/stock_barcode/static/src/components/package_line.js#L17-L18 ----- Ticket: opw-5960629
This fix makes the kiosk’s online payment page display in the user’s selected language instead of always showing the QR code payment message in English. It improves the customer experience for multilingual setups and helps make the payment flow feel consistent and localized.
Original PR description
Currently if you use an online payment with the kiosk, the payment page with the QR code is not translated. Steps to reproduce: ------------------- * Create an online payment method with demo * Install any language, you don't need to switch * Open kiosk configurations * Set the online pm in the available payment methods * Set the language istalled as the default language * Make an order, go to payment page > "Scan the QR code to pay" is written in english no matter the language opw-6074194
Contact list views now show related contact types in the user’s language instead of always displaying them in English. This makes contact names consistent across views and improves the experience for multilingual users.
Original PR description
Problem: When the contact type is set for a related (child) contact, the contact type is shown in English next to the contact name in the contact list view. It should be translated to the user language. It is correctly translated in the Kanban view. Steps to reproduce: 1. Install the Contacts app. 2. Create a contact or go to an existing contact 3. Add a related (child) contact and set its contact type to any type (i.e. Invoice Address) 4. Change the user language to any language other than English 5. Go back to the contact list view and check the name of the related (child) contact. See how the contact type appearing in the name is in English instead of being translated, while it is correctly translated in the Kanban view. Cause: The list view uses the 'complete_name' field which is not translated, while the Kanban view uses the 'display_name' field which is translated. Solution: Use the 'display_name' field instead of 'complete_name' in the list view. opw-5947987
When a UBL XML invoice is imported into a vendor bill, the chatter now shows the proper import format message instead of an unhelpful "None". This makes the import history clearer for users and ensures the invoice format is always displayed when available.
Original PR description
[FIX] account_edi_ubl_cii: Print right message in chatter at import When a UBL XML invoice is imported in vendor bills and no logs are collected, a message 'None' is printed in the chatter and the message 'Format used to import the invoice: ...' is not printed This commit fixes both issues no-task 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
This update prevents a test from failing during setup when a related security group module has not been checked for installation yet. It makes the e-invoicing test suite more reliable and avoids an exception during automated runs.
Original PR description
The `get_default_groups` call happens during super.setUpClass(), therefore we have not checked (yet) if the module in which the security group is in is installed, and we end up with an Exception. task-none
Code cleanup and technical improvements
This change renames an internal method so its name better matches what it actually does. It should reduce confusion for developers maintaining the system, while keeping the existing behavior for users the same.
Original PR description
The method `get_formview_action` in `ir_ui_view.py` is primarily used by M2O UI fields to open views of a linked record. However, because it is frequently overridden across the codebase to open various other view types (such as kanban and list views), the original name is misleading. Rename the method to `get_defaultview_action` to better reflect its actual behavior and prevent developer confusion. task-6068437
Miscellaneous changes
Forward-Port-Of: odoo/enterprise#114366
Original PR description
Forward-Port-Of: odoo/enterprise#114366