Monday, February 16, 2026
9 changes · saas-18.4
Resolved issues and error corrections
The update prevents an error that could occur when Ukrainian users opened vehicle category details. If a localized list format is missing, the system now falls back to a standard format so users can continue working normally.
Original PR description
**Steps to Reproduce:** 1. Install `stock_fleet` module (with demo data). 2. Set the **Ukrainian** language for the user. 3. Open Fleet > Vehicle > Click Category Error: `KeyError: '2'` **Cause:** Babel's CLDR list patterns for some locales (e.g., Ukrainian 'unit-short') do not include the two-item pattern key, so when babel's `format_list` attempts to access patterns, it will raise an error. **Fix:** This commit wraps the call in a try/except that handles KeyError and retries formatting with the 'standard' style to avoid the crash. Forward-Port-Of: odoo/odoo#248519 Forward-Port-Of: odoo/odoo#248228
Disabling GST, TDS, or TCS registration in Indian localization settings now also deactivates the related taxes. This prevents outdated tax rules from staying active after a business turns off those tax features, reducing configuration mistakes.
Original PR description
Before this PR: - When enabling TDS, TCS, or GST registration from settings, related taxes are activated, but when disabling these settings, the taxes remain active. After this PR: - When disabling TDS, TCS, or GST registration, all related taxes are deactivated. task-5456351 Forward-Port-Of: odoo/odoo#242030
This fixes an error that could appear when users hovered over an unselect button in the website/page builder. It helps keep the editing experience stable when optional preview behavior is not enabled.
Original PR description
Issue: The `BuilderMany2One` component throws an undefined error when hovering over the unselect button. Steps to reproduce: 1. Create a `BuilderMany2One` component with `allowUnselect=true` 2. Hover over the unselect button 3. Error occurs Cause: `undefined` was passed when `hasPreview` is `false`, but a callback function is expected. Solution: Pass an empty callback function instead of `undefined` when `hasPreview` is false.
This fix prevents the HTML editor from showing an error when a selection target is missing. It makes editing more reliable by handling this edge case safely instead of interrupting the user.
Original PR description
Before this commit: in rectifySelection, the focusTarget can be null and causing an error when calling the previousSibling After this commit: now we do an optional chaining(?.) on previousSibling task-5481248 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#248595
This update fixes an issue where the activity menu in web_studio was incorrectly displaying all records for custom models, rather than just those associated with the current user. Now, clicking the activity menu will only show records with activities assigned to the user, improving the user experience and data accuracy.
Original PR description
After commit odoo/odoo@5c5fbc10b7024c7227f03e37897d421bba64df82 , actions spawned by the activities menu have their domain managed by dynamic <filter /> rather than a plain readonly domain. Before this commit, clicking on the activity menu to go to a custom model showed every record, not just ones with activities after this commit, only records with activities assigned to the current user are showed opw-5778806 Forward-Port-Of: odoo/enterprise#106622
This update ensures that the preparation display in the backend accurately reflects changes when a POS order is cancelled or deleted. Specifically, related preparation orders and data are now properly removed, maintaining data consistency and a more accurate view of order history.
Original PR description
**In this commit:** Ensure the preparation display UI is updated when a POS order is cancelled or deleted from the backend. - On order cancellation, the preparation display is refreshed accordingly. - On order deletion, related preparation orders, lines, and states are removed via notify call. Task-5373116 Related: https://github.com/odoo/odoo/pull/240523
This update resolves a minor issue related to the calculation of scale certificates for European VAT compliance. It synchronizes a key checksum value following a recent fix in the main Odoo project. This ensures accurate reporting and adherence to regulatory requirements.
Original PR description
This commit simply updates the expected scale checksum after the fix in the community PR odoo/odoo#248413. Forward-Port-Of: odoo/enterprise#107445 Forward-Port-Of: odoo/enterprise#107241
This update fixes a technical issue where the system was creating multiple, empty pay runs when generating payslips through the selection dialog. The fix ensures that only one temporary pay run is created per dialog attempt, preventing unnecessary database entries and improving system efficiency. This resolves a potential data inconsistency issue.
Original PR description
When generating payslips from the selection dialog the UI previously created a new hr.payslip.run on every attempt; server-side validation can fail and each failed attempt left an empty pay run in the database. Fixed by allowing the dialog to create at most one temporary pay run per dialog lifecycle, reuses it on retries, and removes it if generation fails or the dialog is closed. task-5920710
This update fixes an issue where Mexican POS invoices incorrectly displayed the invoice creation month instead of the order date month. This ensures accurate reporting and compliance with Mexican tax regulations for global invoices generated from POS orders. The fix corrects the 'Meses' attribute in the generated XML.
Original PR description
**PROBLEM** In accounting, if you create a global invoice with an invoice, the attribute `Meses` will be the month of the invoice date. In POS, if you do the same with an order, the attribute `Meses` will be equal to the month the day we create the global invoice, instead of the month of the order date. This is wrong. **STEP TO REPRODUCE** 1. Have an order from the month before (not sure how to do this on a runbot). 2. Create a global invoice. 3. Check the generated xml, and notice the month is wrong. opw-5381607 Forward-Port-Of: odoo/enterprise#107362 Forward-Port-Of: odoo/enterprise#106856