Friday, February 13, 2026
12 changes · 18.0
New functionality added to Odoo
This update introduces a new feature that allows other Odoo modules to dynamically adjust timesheet values within the helpdesk timesheet wizard. This improves the flexibility of time tracking and ensures timesheets accurately reflect the work performed across different departments. It allows for more precise reporting and integration with other business processes.
Original PR description
Add a hook in helpdesk_timesheet timer wizard for other modules to modify timesheet values.
Resolved issues and error corrections
This update resolves an issue preventing a key test case for website redirection functionality. The fix ensures the test runs correctly even without the standard demo data, which previously required a specific user group to be enabled. This change is limited to versions 18.2 and earlier.
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
This update resolves a delay in reading data from Toledo scales. Previously, the system waited up to one second for a response. Now, it reads the scale data until a carriage return character is received, eliminating this delay and improving responsiveness. This ensures more accurate and timely data collection from these scales.
Original PR description
Before this commit, the `_get_raw_response` method would wait until the read timed out (1 second) before returning the response. After this commit, for the Toledo scale we instead read until we reach a `\r` character, which is at the end of the response. This eliminates the 1 second delay. Enterprise: https://github.com/odoo/enterprise/pull/107241 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update corrects a display issue within the Italian tax module (l10n_it_edi) where TC-XX codes weren't shown alongside pension fund type names. Previously, all other selection fields displayed codes first, but this field was an exception. This ensures accurate and consistent reporting for Italian businesses.
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
This update fixes a potential issue where translation mapping could fail when the number of translated terms didn't perfectly match the base language. Now, the system gracefully falls back to the base language's values, preventing errors and ensuring more accurate translations. This improves the reliability of our translation process.
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
This update addresses a minor bug in the HTML editor component that was causing errors when the focus element was missing. The fix uses a technique called 'optional chaining' to safely access the previous sibling, preventing the traceback and ensuring smoother editor functionality. This improves stability and reliability of the HTML editor.
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
A recent test was causing build errors due to inconsistent leave requests, particularly when coinciding with legal holidays. This commit corrects the test to ensure leave is always requested for the intended date, resolving the build issues and improving test stability. This change ensures accurate leave processing during testing.
Original PR description
The test 'test_holiday_responsible_refuse_leave' is creating build errors in the runbot, it requests a leave for the current day, which can fall on a legal day off, and will then result in an error. This commit ensures the leave is consistently requested for a correct date. https://runbot.odoo.com/odoo/runbot.build.error/237917
This update corrects a technical issue that was preventing Odoo e-invoices from passing PDF/A-3 validation. The previous code incorrectly stored file sizes as text strings instead of numbers, leading to validation errors. This fix ensures our e-invoices meet industry standards for archiving, improving compliance and reducing potential issues with document processing.
Original PR description
The `/Size` parameter in embedded file `/Params` was being set using `NameObject` instead of `NumberObject`, resulting in the size value being stored as a PDF Name Object (e.g., `/19410`) rather than a numeric integer (`19410`).
This causes PDF/A-3 validators to report zero-size or invalid attachments, breaking compliance with ISO 19005-3 (PDF/A-3A).
Steps to reproduce:
- Generate an e-invoice PDF with XML attachments (e.g., Factur-X)
- Validate the PDF with veraPDF or Adobe Acrobat Preflight
- Embedded file size is reported as zero or invalid
Fix:
```diff
- NameObject('/Size'): NameObject(f"/{len(attachment['content'])}"),
+ NameObject('/Size'): NumberObject(len(attachment['content'])),
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-prThis update resolves an issue where users could trigger errors when entering non-numeric values in the serial/lot number field. By changing the field's input type to 'number' and adding a keypress handler, the system now correctly validates input, preventing errors and ensuring reliable serial number generation.
Original PR description
Issue before this commit: ========================= When generating serial/lot numbers, if a user enters a `string value (e.g. "dhha" or ".")` in the `Number of SN` field of the Generate Serials/Lots…
Issue before this commit: ========================= When generating serial/lot numbers, if a user enters a `string value (e.g. "dhha" or ".")` in the `Number of SN` field of the Generate Serials/Lots wizard, a traceback is raised: `InvalidNumberError: "dhha" is not a correct number`. Steps to Reproduce: ========================= - Install the "stock" module. - Create a receipt for a serial-tracked product. - Open the detailed operations. - Click on "Generate Serials/Lots". - Enter a string value in the "Number of SN" field. Result: A traceback is raised with: InvalidNumberError: `"dhha" is not a correct number.` Cause of the issue: ========================= The [next_serial_count input](https://github.com/odoo/odoo/blob/17.0/addons/stock/static/src/widgets/lots_dialog.xml#L36) field is defined as type="text", which allows users to enter string values, even though the field represents a numeric count. The value is later processed using [parseInteger](https://github.com/odoo/odoo/blob/17.0/addons/stock/static/src/widgets/generate_serial.js#L33), which throws an error when the input is not a valid integer string, [Here](https://github.com/odoo/odoo/blob/17.0/addons/web/static/src/views/fields/parsers.js#L139). With This Commit: ========================= The input type is changed from type="text" to type="number", ensuring that only numeric values can be entered. This prevents invalid input and avoids the traceback when generating serial or lot numbers. Additionally, a `t-on-keydown` handler is added to prevent entering a `dot (.)`, ensuring that only integer values are allowed. Forward-Port-Of: odoo/odoo#248221
This update corrects a bug where nodes containing directives (like 'groups') were incorrectly identified as translatable. This prevented proper translation of certain elements within the Odoo interface. The fix ensures that only standard elements are considered for translation, improving the accuracy of translated content.
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 update resolves a discrepancy in the scale certificate checksum, aligning it with a recent fix implemented in the core Odoo platform. This ensures accurate verification of the certificate and maintains compliance standards. The change was driven by a community-developed improvement.
Original PR description
This commit simply updates the expected scale checksum after the fix in the community PR odoo/odoo#248413.
This update corrects a bug in the timesheet approval reminder email. The email was referencing an outdated action, which caused it to fail. This change ensures the approval reminder email functions correctly, prompting timely approvals for timesheets.
Original PR description
### Issue: The action used in the ` timesheet approval reminder` email template refair to a non existing action. ### Cause of the issue: The issue has been introduced in…
### Issue: The action used in the ` timesheet approval reminder` email template refair to a non existing action. ### Cause of the issue: The issue has been introduced in [1](b56e355c400c874f7cd9c3174e2253ad5769a461) b56e355c400c874f7cd9c3174e2253ad5769a461 Starting from 17.3 the actions `action_timesheet_previous_week` and `action_timesheet_previous_month` have been removed and merged in a single action `timesheet_grid_to_validate_action`. See [2](7040535ffe2c08d0d286cfccbaf4cc7f81f18443) 7040535ffe2c08d0d286cfccbaf4cc7f81f18443 However, while [2](7040535ffe2c08d0d286cfccbaf4cc7f81f18443) correctly replaced the usage of both actions used in the template as `action_xml_id`: https://github.com/odoo/enterprise/blob/913418bb3d7558b6b44916455e28de855eb123f5/timesheet_grid/models/res_company.py#L209-L221 https://github.com/odoo/enterprise/blob/913418bb3d7558b6b44916455e28de855eb123f5/timesheet_grid/data/mail_template_data.xml#L43-L45 The forward port of [1](b56e355c400c874f7cd9c3174e2253ad5769a461) replaced it with the deleted action: https://github.com/odoo/enterprise/blob/913418bb3d7558b6b44916455e28de855eb123f5/timesheet_grid/models/res_company.py#L161-L171 https://github.com/odoo/enterprise/blob/913418bb3d7558b6b44916455e28de855eb123f5/timesheet_grid/models/res_company.py#L193-L198 opw-5890269