Friday, February 13, 2026
8 changes · saas-18.2
Resolved issues and error corrections
A website automated test has been adjusted so it no longer depends on demo data being installed. This helps keep Odoo's quality checks reliable across different installation setups and reduces false build failures.
Original PR description
Commit f86f6f6a3dc6bbeb8c68308aab2462b9c7bb935d (6th February 2026) added the test test_website_force_domain_redirect but it doesn't work without demo data because it was requiring "website.group_multi_website" group to be enabled. Fix: add the group for the test case in case it's not enabled. runbot-[238897](https://runbot.odoo.com/odoo/runbot.build.error/238897) opw-5441957 Note: this was noticed in saas-18.3 forward port so this is only necessary up to saas-18.2 version. Forward-Port-Of: odoo/odoo#248304
Fixed an issue that could cause an error when users using Ukrainian opened certain Fleet vehicle category pages. The system now falls back to a safer formatting option when language data is incomplete, keeping the page accessible.
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#248228
The Italian e-invoicing tax form now shows TC-XX codes alongside pension fund type names. This makes the field consistent with other Italian tax options and helps users identify the correct pension fund type more easily.
Original PR description
How to reproduce: - Install the l10n_it_edi module - (Create and) switch to an Italian company - Go to the form view of any tax - In Advanced Options, click on the Pension fund type field The problem: The codes are not displayed before the names of the pension fund types Why: All other selection fields in the Advanced Tab shows the code before the name (Exemple: Tax category code, Exoneration, ...). The Pension fund types field was the only one that did not opw-5914302 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247410
Point of Sale now only creates loyalty cards when a customer earns points or when a reward redemption needs to be recorded. This prevents clutter from zero-point cards for unrelated loyalty programs while preserving useful reward history.
Original PR description
Currently, when you have multiple loyalty program but only 1 applies points on the current order, the other will have a loyalty card created with 0 points. steps to reproduce: ------------------- * Create a loyalty program giving you 1 point per $ on product 1 * Create a loyalty program giving you 1 point per § on product 2 * Make a pos order with just product 1, add a customer * Check the programs in the backend > Observation, a loyalty card with 0 points was create for the second loyalty program Why the fix: ------------ This creates a lot of unecessary records. We now only create cards where there are points or when there 0 points because a reward has been applied, thus keeping history. opw-5405109 Forward-Port-Of: odoo/odoo#244254
This fixes how Odoo identifies page content that should be translated, ensuring special instruction-based elements are not incorrectly grouped into translation text. It helps prevent incorrect or confusing translations in affected views while keeping the change internal and low risk.
Original PR description
Nodes with directives must not be included inside a translatable span. But the function `translatable` missed the directive `groups` (without `t-`), and the class `o_translate_inline` should only override the predicate about the element's tag. Forward-Port-Of: odoo/odoo#246354
This fix prevents errors when translated text has a different number of terms than the original text. In those cases, Odoo now keeps the original value instead of trying to force an unreliable translation match, improving stability and avoiding incorrect translated content.
Original PR description
When the number of translated terms differs between the base language and its translation, fall back to the base value instead of attempting to map terms. This avoids potential errors and incorrect translation mappings. 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 Forward-Port-Of: odoo/odoo#248474
This update corrects a discrepancy in the calculation of car tax (ATN) for employees in the Belgian payroll module. The update incorporates tax rates and regulations up to 2026, ensuring accurate tax deductions for employees with company vehicles. This ensures compliance with Belgian tax laws and accurate payroll reporting.
Original PR description
TaskID: 5932573 Forward-Port-Of: odoo/enterprise#107237
This update corrects a checksum issue related to the EU IoT scale certification process. It's a necessary step to ensure accurate reporting and compliance following a recent fix in the main Odoo project. This change maintains the integrity of financial data for European customers.
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#107241