Daily updates from Odoo
Friday, February 20, 2026
12 changes · 17.0
New functionality added to Odoo
This update incorporates recent additions of Mexican cities into the Odoo Enterprise system. This ensures accurate reporting and compliance for businesses operating in Mexico by reflecting the latest governmental data.
Original PR description
The Mexican government has recently introduced new cities. This pr adds those cities here as well. task-5883334
Enhancements to existing features
This update simplifies the process of running Odoo tests by introducing a convenient alias for the `--test-tags` command. This change streamlines testing workflows and makes it easier for developers to target specific tests. It's a minor improvement that enhances the overall testing experience.
Original PR description
Backport of https://github.com/odoo/odoo/pull/234287 <img width="408" height="151" alt="image" src="https://github.com/user-attachments/assets/7f22826f-6887-432b-8baf-8a6778b9cadf" />
This update allows accountants to group invoice lines by tax, reducing clutter and improving journal item clarity. The system provides a toggle to easily group or ungroup lines, streamlining the invoice import process and making it more efficient for accounting tasks.
Original PR description
[IMP] account_edi_ubl_cii: (un)group lines by tax
Once an invoice is imported, a server action allows the user to group
lines by tax, and then if the same action is triggered again it will
ungroup all lines from the origin file
This feature is useful because accountants don't always need the
detail of the vendor bills, and also all the lines clutter up the
journal items
task-5047859Resolved issues and error corrections
This update fixes a usability issue on mobile devices where the undo and redo buttons were hidden in the editor toolbar. The change ensures these buttons are always visible, improving the editing experience for mobile users. This enhancement streamlines the workflow and allows users to easily correct mistakes while editing content on their phones or tablets.
Original PR description
Problem: On mobile devices, the undo and redo buttons are not visible in the editor toolbar. Cause: `showHistory` is not enabled by default in mobile view, which hides the undo/redo controls. Solution: Pass `true` as the default value for `showHistory` when in mobile view, ensuring the undo/redo buttons are always visible. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adjusts Odoo to comply with a new Italian law effective January 1, 2025. Forfettari (RF19) – a specific type of small business – can now utilize simplified invoices regardless of the total invoice amount. This simplifies invoicing processes for these businesses.
Original PR description
Since 01/01/2025, Italian law allows forfettari (RF19) to use simplified invoices even if the total amount exceeds 400€. References: - https://www.normattiva.it/uri-res/N2Ls?urn:nir:stato:legge:2014-12-23;190;1;59#:~:text=L'emissione%20della%20fattura%2C%20ove%20prevista%2C%20può%20avvenire%20in%20modalità%20semplificata%20ai%20sensi%20dell'articolo%2021%2Dbis%20del%20decreto%20del%20Presidente%20della%20Repubblica%2026%20ottobre%201972%2C%20n.%20633%2C%20anche%20se%20di%20ammontare%20complessivo%20superiore%20al%20limite%20indicato%20nel%20comma%201%20del%20medesimo%20articolo%2021%2Dbis. - https://www.dkpost.it/fattura-semplificata-senza-limiti-per-i-forfettari/ - https://www.gazzettaufficiale.it/eli/id/2024/11/30/24G00196/sg
This update ensures timesheet entries with excessively large negative hours (over six digits) are properly flagged as errors. Previously, these entries could be added without warning, leading to potential data inaccuracies. This fix improves data integrity and prevents incorrect time tracking.
Original PR description
Currently, a user can add a timesheet entry with a negative Hours Spent value `exceeding six digits`. **Steps to reproduce:** - Install the `timesheet_grid` module. - Open the `Timesheets` app and click `Add a line`. - Set Hours Spent to a `negative` value with more than six digits (e.g., -1000000). **Observation:** The line is added without any warning, whereas entering a positive value with more than six digits correctly raises an `error`. **Root cause:** At [1], the constraint validates only positive values exceeding six digits. As a result, negative values with more than six digits are not checked and bypass the `UserError validation`. **Fix:** This commit updates the constraint to ensure the six-digit limit applies to both positive and negative values. [1]: https://github.com/odoo/enterprise/blob/660905872909405c0a07a8317b4eb0a42e5854ca/timesheet_grid/models/analytic.py#L46-L49 opw-5909417
This update resolves a technical issue preventing the Hungarian VAT integration from saving correctly. The problem stemmed from a shortened software ID string, requiring an 18-character value for compatibility with the NAV system. The fix pads the software ID to the correct length, ensuring successful data saving and integration.
Original PR description
**Steps to reproduce:** * Create a **Hungarian** database with **Accounting** or **Invoicing**. * Set a valid **VAT number** on the company. * Configure **NAV credentials** in **production mode**.…
**Steps to reproduce:**
* Create a **Hungarian** database with **Accounting** or **Invoicing**.
* Set a valid **VAT number** on the company.
* Configure **NAV credentials** in **production mode**. (use credentials from ticket)
* Try to save the Settings.
**Observed behavior:**
* Authentication fails with error: `INVALID_REQUEST: Helytelen kérés!`
* NAV returns schema violation: `Value 'BE477472701-19110' is not facet-valid with respect to pattern '[0-9A-Z\-]{18}' for type 'SoftwareIdType'.`
* The softwareId is only 17 characters instead of required 18.
**Cause:**
* The `version` parameter was removed from the module manifest by this [commit](https://github.com/odoo/odoo/commit/717619571d1297d6b299b7c47b728841bcd81e69#diff-d96ba04bb478d9dcbade7b9bf9f07305d42a38ce7a906f3387879271cde35fecL7)
* This change shortened the module version string used to build the `softwareId`.
* Truncating the value to 18 characters therefore produced a string shorter than required.
* The NAV API requires the `softwareId` to be **exactly 18 characters**.
**Fix:**
* Pad the generated `softwareId` to **18 characters** using `ljust(18, '0')`.
* Ensures the value always complies with NAV schema validation rules.
opw-5902414This update resolves an issue where Odoo's expense report PDF generation would fail if the necessary security library (PyCryptodome) wasn't installed. The change ensures that encrypted files are gracefully skipped, preventing errors and allowing users to generate expense reports without needing to install additional software. This improves the reliability of the expense reporting process.
Original PR description
**Issue:** This is a complement to the previous commit: https://github.com/odoo/odoo/commit/2eb12ba5e8055c5a0aa3ab86d0e173b3ca3ff2f0 When using version 2.12.1 of PyPDF2 as required if python version > 3.10, if PyCryptodome library is not installed, a DependencyError will be raised when trying to decrypt the file: "PyCryptodome is required for AES algorithm". opw-5194501 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where helpdesk users with limited access were unable to view tickets due to a restriction on accessing related stock data. The fix adds a necessary permission group to allow read access to the required stock records, ensuring all helpdesk users can properly access and manage tickets.
Original PR description
To reproduce: ============= - install helpdesk_stock - with user having only User rights on helpdesk and nothing on other modules - try to access a ticket -> AccessError Problem: ======== when reading the ticket, the field `suitable_product_ids` is computed, and it requires read access to records the user doesn't have access to, which raises an AccessError. Solution: ========= Add the group `stock.group_stock_user` to the field, so that only users having access can read it. backport of https://github.com/odoo/enterprise/pull/59605 opw-5907657
This update fixes an issue where invoices weren't correctly using product category accounts. Now, Odoo automatically checks the entire category hierarchy (parent to child) to find an available account, ensuring invoices accurately reflect the intended income or expense classification. This improves financial reporting accuracy.
Original PR description
**Steps to reproduce:** * Install the **Accounting** module. * Create a product category hierarchy (grandparent → parent → child). * Set an **income account** on the grandparent category. * Set an…
**Steps to reproduce:** * Install the **Accounting** module. * Create a product category hierarchy (grandparent → parent → child). * Set an **income account** on the grandparent category. * Set an **expense account** on the child category. * Leave the parent category without any accounts. * Create a product assigned to the child category. * Create a customer invoice using this product. **Observed behavior:** * The invoice line uses the **default income account** from settings instead of the grandparent category’s income account. * The category hierarchy is not checked to retrieve parent accounts. **Expected behavior:** * If no account is defined on a category, Odoo should traverse the **parent categories** to find one. * Only if no account exists in the hierarchy should it fall back to journal or default accounts. **Cause:** * Account lookup only checked the **immediate category**. * Parent categories were not considered. **Fix:** * Traverse the product category hierarchy when searching for accounts. * Use the first account found in the parent chain. opw-5869592
This update resolves an issue in version 17.0 where the 'Send via Peppol' option was disabled after sending invoices via email. The previous system prevented the necessary UBL-CII XML file from being generated, blocking Peppol transmission. Now, invoices can be sent via Peppol regardless of whether a PDF was previously generated.
Original PR description
### Issue: In 17.0, the `Send via Peppol` option becomes unavailable after using `Send by email` on an invoice ### Cause: The `Send via Peppol` action depends on the UBL-CII XML file However, the XML…
### Issue: In 17.0, the `Send via Peppol` option becomes unavailable after using `Send by email` on an invoice ### Cause: The `Send via Peppol` action depends on the UBL-CII XML file However, the XML generation was conditioned on the absence of a PDF document After generating the PDF, the invoice was considered as already having all required documents, so no additional EDI documents (including the UBL-CII XML) were generated, which disabled the `Peppol` option ### Note: If the XML was already generated, it should still be possible to `Send via Peppol` However, the XML was not attached because it wasn't generated during Peppol sending This issue is also fixed in this PR ### Steps to reproduce: - Install `l10n_be` and switch to BE Company - Enable Peppol and activate the Demo mode in Settings - Create an invoice for the BE Company - Add any product with a Tax - Confirm -> Send & Print -> Email - Open Send & Print again Before the fix, the `Send via Peppol` option is no longer available opw-5490217
This update resolves an issue preventing successful processing of Dutch tax (OB) and ICP reports by Digipoort. It replaces outdated report templates with the final 20251210 NT20 taxonomy, ensuring compliance and accurate data submission.
Original PR description
Update the Dutch tax (OB) and ICP report templates from the 20251210.a pre-release to the final 20251210 NT20 taxonomy to ensure successful processing by Digipoort. Fixes: https://github.com/odoo/enterprise/commit/5becacff48f1a2490ce2f57a4679020615b6b8c2 opw-5911496