Monday, December 1, 2025
6 changes · saas-18.2
Resolved issues and error corrections
The first time a user uses Send & Print for a customer invoice, Odoo no longer automatically saves that choice as the contact's preferred sending method. This prevents customers from being unexpectedly locked into an old default, making it easier to switch later from email to another option such as Peppol.
Original PR description
Before this commit, we were setting the preferred invoice sending method on the Contact depending on what was in the first Send & Print to this specific partner. It's a bad idea because user don't know about this setting and when they want to switch the default method (example email -> peppol) the wizard will keep propose them to send it by email only and they don't know why since they never knowingly set it to "email". task-none (feedback from AVW) Forward-Port-Of: odoo/odoo#237956
Short rating comments now display more naturally without pushing the last word onto a separate line. This makes customer feedback in rating-related messages easier to read and visually cleaner.
Original PR description
**Current behavior before PR:** - Short feedback wraps the last word unnecessary.  **Desired behavior after PR is merged:** - Short messages wrapped unnecessarily due to block-level element conflicting with floated rating image. This fix ensures cleaner inline layout.  Backport of this: [Commit](https://github.com/odoo/odoo/commit/52a1913ea7082655009c9eca1201c8c42e4e4037) task-[4788428](https://www.odoo.com/odoo/project/1519/tasks/4788428) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#215577
Stock replenishment error checks now account for the updated way rich-text notes are stored, preventing the same warning activity from being created repeatedly. The change also makes the lookup more efficient by counting matching records with a limit instead of scanning full results.
Original PR description
From saas-18.2 and later, html fields has been changed the old behaviour.
Ex.
```python
model.create({'note': 'test'}) -> <p>test</p>
```
Old behaviour:
```python
model.search_count([('note', '=', 'test')]) -> 1
```
New behaviour:
```python
model.search_count([('note', '=', 'test')]) -> 0
```
To follow the new behaviour and not generate infinite activities, we need to add html elements to the error message.
Additional, we improved the performance (better to count and limit vs see all the whole table).
OPW-5266061
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update resolves an issue that prevented users from placing test orders when a product's tax was set to a Group of Taxes without any defined tax rates. The fix corrects a technical error within the Urban Piper integration, ensuring test orders can now be successfully created under this scenario. This improves the reliability of the PoS testing process.
Original PR description
When creating a test order for a product whose tax is configured as a Group of Taxes without any definitions, a traceback occurs. Steps to reproduce the error: - Install ``pos_urban_piper`` module -…
When creating a test order for a product whose tax is configured as a Group of Taxes without any definitions, a traceback occurs. Steps to reproduce the error: - Install ``pos_urban_piper`` module - Configure Urban Piper integration for the PoS - Create a new tax without Definition > ``Tax Computation: Group of Taxes`` > Save - Create a new product > Set the above tax in sales taxes > Save - Open the session for PoS - Go to Settings > Urban Piper Location > Set Food Delivery Platforms > Save - Click Test Order > Select the product and Delivery Provider > Place Order Traceback: ```py IndexError: list index out of range ``` https://github.com/odoo/enterprise/blob/92bb923ffe185b7744adeadcc8f2972f9a64effb/pos_urban_piper/controllers/main.py#L319-L322 The issue happens because ``flatten_taxes_hierarchy()`` calls ``_flatten_taxes_and_sort_them()`` method at [1], which returns an empty record when the group tax has no children at [2]. As a result, ``tax_types`` becomes an empty list ([]), leading to an IndexError when trying to access ``tax_types[0]``. [1]: https://github.com/odoo/odoo/blob/57850b32332a71933a4f6b52d7428684de831f4b/addons/account/models/account_tax.py#L2786 [2]: https://github.com/odoo/odoo/blob/57850b32332a71933a4f6b52d7428684de831f4b/addons/account/models/account_tax.py#L795 sentry-6984648461
This update resolves a technical issue that prevented the printed receipt tour from functioning correctly after installing the `l10n_it_pos` or `l10n_se_pos` modules. The fix corrects a code error that was causing a runtime error, ensuring the POS receipt tour operates as intended for our international retail customers.
Original PR description
in this commit: - Fixed TypeError: this.get_order is not a function raised during the `test_printed_receipt_tour` in POS after installing `l10n_it_pos` or `l10n_se_pos`. runbot-233248
This update fixes a technical issue that prevented the 'fuel_type' field in the HR contract module from being properly translated. By directly using the available options, this change ensures all text within the field can be localized, improving the system's internationalization capabilities.
Original PR description
The selection field `fuel_type` in the `hr.contract` model was not properly translatable, because it used a function yielding static strings for the options. This commit changes the field to use the variable directly, allowing them to be translated. Forward-Port-Of: odoo/enterprise#100748