Monday, July 14, 2025
12 changes · 18.0
Enhancements to existing features
This update lets Odoo automatically add the right labels to certain automated tests when they use website tours or database query checks. It helps the testing system run and report these tests more accurately, reducing missed labels and warning developers when special tests are not marked correctly.
Original PR description
This commit add the possibility to automatically add test-tag on a test method at runtime. A generic method `get_method_additional_tags` is added on `BaseCase` test class. That method can be overridden to return a list of test-tags that will be added on the test methods. With this mechanism, the `HttpCase` class override this method to add a `is_tour` test-tag when the `start_tour` method is used in the test method. Also, the `start_tour` method will now emit a warning when the method is called without being tagged `is_tour`. That way, all the tours can now be started with the `is_tour` test-tag. Forward-Port-Of: odoo/odoo#217102 Forward-Port-Of: odoo/odoo#212315
Resolved issues and error corrections
This fixes an import error that could block Italian electronic invoices containing a zero-priced line with no discount or surcharge. Businesses can now process these invoices normally without a division-by-zero failure.
Original PR description
Error "division by zero" raised when importing a XML invoice with `price_unit == 0` and `ScontoMaggiorazione == 0` introduced by #206238
This update adjusts translated messages so they no longer use a format that can break translation extraction on some Ubuntu build environments. It helps keep automated builds and deployments reliable without changing business workflows or user-facing features.
Original PR description
On Jammy, babel does *not* cope well with f-strings as values inside `_()` calls: it uses `eval` to try and figure them out, which attempts to execute the f-string, which fails because the evaluation context is empty. This is likely fixed from Babel 2.11 onwards (python-babel/babel#915) but Jammy uses babel 2.8[^1]. https://runbot.odoo.com/odoo/runbot.build.error/97849 [^1]: This doesn't seem to trigger on Noble even though it uses 2.10, but locally it does trigger on 2.10.3 (installed via pip), so ubuntu might have backported the fix or something.
Fixed a problem that could cause warnings when survey answer statistics were translated. This makes survey reporting more reliable for users working in different languages.
Original PR description
Issue: Prior to this commit, a translation issue occurred due to the use of a list comprehension. The _get_translation_source function attempts to scan the local variables, but in the context of a list comprehension, only variables defined within the comprehension are accessible. As a result, variables like uuid and cursor were not available to the _get_lang function, ultimately leading to an error. Fix: Replaced the list comprehension with a standard for loop to ensure proper access to local variables. runbot-135198
Internal users without Accounting permissions can now add sub-contacts to contacts that use Spanish FACe Center roles without hitting an access error. This removes an unnecessary restriction so regular contact management works as expected while keeping the change limited to read access for role data.
Original PR description
**Steps to reproduce:** - Install l10n_es_edi_facturae - With an admin user, create a contact - From the contact, add a "FACe Center" sub-contact with a Role - Save the contact - With a user that doesn't have any Accounting rights, try to add a sub-contact to the previously created contact **Issue:** An access error is raised because some Accounting rights are needed to access "l10n_es_edi_facturae.ac_role_type" records. **Cause:** "l10n_es_edi_facturae.ac_role_type" is only readable for "account.group_account_invoice" group and "account.group_account_readonly" group. **Solution:** There's is no point to restrict the read access to an Accounting group. The model is made readable for all internal users. opw-4788636 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Receipts created with an invoice date now keep that intended date instead of being set to the current day. This helps ensure accounting records reflect the correct transaction timing and avoids date-related reporting errors.
Original PR description
* When invoice_date is set with create method for receipts, the date is not set correctly to invoice_date, but it's wrongly set to today. * Missing dependency 'move_type' to compute method. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The shop page now avoids showing the same product category list twice when filters are opened on larger screens. This removes a confusing duplicate menu and makes the shopping experience cleaner for customers.
Original PR description
Steps to reproduce: 1. Go to the shop page. 2. Open the editor and configure Categories to display on the left, and Attributes at the top. 3. Save the changes and click the offcanvas toggle button next to the layout buttons. Issue: - The category list appears twice: once on the left side and again in the offcanvas dropdown. This is redundant and affects the user experience. Cause: - The category list in the offcanvas menu isn’t restricted to mobile view, so it also displays on larger screens where it’s already visible in the sidebar. Fix: - Add the 'd-lg-none' class to hide the category list in the offcanvas menu on large devices. opw-4830180 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#218330
A small typo was fixed in the portal sharing flow, with a minor code cleanup to make the logic clearer. This helps keep portal sharing messages or behavior polished without changing the overall user experience.
Original PR description
fix a small typo and and refactor for clarity opw-4938011 Forward-Port-Of: odoo/odoo#218570
This fix ensures Nilvera documents use the Turkish UBL format instead of Peppol-specific handling. This matters because Nilvera is not a Peppol format and should not rely on Peppol fields, reducing the risk of incorrect electronic invoicing data.
Original PR description
It's not a format that is on peppol and does not use the fields from peppol. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#218220
Preparation displays now show an S or K prefix on order tracking numbers to distinguish Self and Kiosk orders. This makes it easier for staff to match the same order across the POS ticket screen, preparation receipt, and kitchen preparation display.
Original PR description
Add a prefix `S` or `K` (respectively for Self and Kiosk orders) to the `tracking_number` in the preparation display, so we can follow orders with the same `tracking_number` in the POS (ticket screen), on the preparation receipt and in the preparation display. task-id: 4922308 community PR : https://github.com/odoo/odoo/pull/218543
This fixes rare cases where Hong Kong payroll payment amounts shown on payslips did not match the HSBC Autopay file. The change helps ensure employees and payroll teams see consistent payment amounts across payroll records and bank payment files.
Original PR description
Explanation: In some rare cases, the autopay amount in payslip and the amount in hsbc autopay file doesn't match. This is due to hsbc autopay files are trimming all the decimal places, and the amount in payslip are rounded.
This update adds missing labels to Helpdesk automated tests so they are correctly recognized by the test system. It helps keep internal quality checks reliable and prevents test runs from being misclassified.
Original PR description
With the new test-tags features that allows to add additional test tags at runtime, the tests that starts a tour or that are using a query_count and that are not detected as such must be tagged respectively `is_tour` or `is_query_count`. Forward-Port-Of: odoo/enterprise#89934