Friday, July 25, 2025
10 changes · master
Resolved issues and error corrections
This update adjusts an automated test for Mexican point-of-sale invoicing so it no longer fails because of an irrelevant generated identifier. It helps keep validation reliable without changing any customer-facing invoicing behavior.
Original PR description
Fix the test file for pos order then invoice request to match the expected XML structure, by ignoring the `UUID` attribute in the `TimbreFiscalDigital` element because it is not relevant for the test and can cause issues with the test validation. build_error https://runbot.odoo.com/runbot/build/83409879 Forward-Port-Of: odoo/enterprise#88756
This fixes a display issue on the shop page where products sold by subscription could show the same price twice. Customers now see a clearer, more professional product listing, reducing confusion during browsing and purchase decisions.
Original PR description
This PR fixes an issue where the product price was displayed twice on the `/shop` page of a product with a subscription type. task-4954676 Issue: <img width="618" height="271" alt="image" src="https://github.com/user-attachments/assets/e00adabf-ecfb-4424-8c2a-3b7413cbeee3" /> Forward-Port-Of: odoo/enterprise#90924
The Luxembourg payroll settings now reflect the latest accident insurance bonus-malus factors required by local regulations. This helps companies use the correct payroll configuration and avoid relying on an outdated 0.9 factor.
Original PR description
**Problem**: =========== Bonus-Malus Factor l10n_lu_accident_insurance_factor, the value 0.9 is no longer used according to an update in Luxembourg regulations. Found the legal documentation from Luxembourg's social security institutions page: https://www.secu.lu/assurance-accidents/reglements/ **To Reproduce**: ================== -> install l10n_lu_hr_payroll -> switch to Luxembourg company -> settings -> filter with Bonus-Malus Factor **Solution**: ============== Update Bonus-Malus Factor https://github.com/odoo/upgrade/pull/8088 opw-4818034
This fix prevents an error when users or integrations access signing requests that are not in the shared state. Non-shared requests now safely show no sharing link instead of triggering a traceback, improving reliability for administrators and connected systems.
Original PR description
### Issue Commit [58425a0](https://github.com/odoo/enterprise/commit/58425a0022c79f2c45f23fdd5a5476d8c20a887e) introduced a new field `share_link` in `sign.request` that gets computed for requests…
### Issue Commit [58425a0](https://github.com/odoo/enterprise/commit/58425a0022c79f2c45f23fdd5a5476d8c20a887e) introduced a new field `share_link` in `sign.request` that gets computed for requests that are in the 'shared' state. However this compute method fails for requests not in the 'shared' state leading to a traceback error. This commit fixes it by setting the default as False for the sign.request records that do not have state='shared' so the traceback error is handled. This can be reproduced in v17 and above by: 1. Open any sign.request record that isn't in the shared state 2. Enable Developer Mode 3. Using the debug icon, click on view record data The traceback will be visible here which mentions that the compute method failed to assign It can also be re-produced by using an xml-rpc / json-rpc ORM call to search_read the sign.request records that does not have state = 'shared' ### Before https://github.com/user-attachments/assets/24c07f2a-2398-44b4-8969-30abb576876a ### After https://github.com/user-attachments/assets/e92b1212-5405-4b98-ba41-c81b2ac547d7 [opw-4864159](https://www.odoo.com/odoo/project/49/tasks/4864159) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#90576
Fixed an issue in the Gantt schedule where clicking Today after choosing a one-day custom range could create an invalid date range. This ensures navigation arrows continue to work correctly for resource bookings and similar planning views.
Original PR description
Steps to reproduce ================== - Go to Appointments > Schedule > Resources Bookings - Select a custom range with the same start date and stop date - Click apply - Click on Today - Use the next arrow => Nothing changes Cause of the issue ================== If there is 0 day between the start and stop dates, clicking on today will have the stop date before the start date. opw-4754203 Forward-Port-Of: odoo/enterprise#88919
This change moves Point of Sale configuration tests into the Enterprise POS module where the related functionality belongs. It helps keep automated checks aligned with the correct product area, reducing build issues and improving release reliability without changing user-facing behavior.
Original PR description
move tests for POS configuration settings from point_of_sale to pos_enterprise refer to this commit :https://github.com/odoo/odoo/pull/215611/commits/0074d743451834424706608fc76f32b0df9c5f1c build_error-227602 Forward-Port-Of: odoo/enterprise#89351 Forward-Port-Of: odoo/enterprise#88742
The Partner Commission module can now be installed even if the default Services product category was deleted. This prevents an installation failure and lets businesses continue setting up commissions without needing to restore that category first.
Original PR description
Currently, a ParseError is arising when the user installs the `partner_commission` module after deleting the `Services` in Product Categories/Configuration. Steps to reproduce: --- - Install…
Currently, a ParseError is arising when the user installs the `partner_commission` module after deleting the `Services` in Product Categories/Configuration.
Steps to reproduce:
---
- Install `Invoicing` application (without demo data).
- Invoicing > Configuration > Product Categories > Delete `Services`
- Now install `partner_commission` module
Traceback:
---
```py
ValueError: External ID not found in the system: product.product_category_services
ParseError: while parsing /home/odoo/src/enterprise/saas-18.4/partner_commission/data/data.xml:3, somewhere inside <record id="product_commission" model="product.product">
<field name="name">Commission</field>
<field name="purchase_ok" eval="True"/>
<field name="categ_id" ref="product.product_category_services"/>
<field name="type">service</field>
</record>
```
The error occurs because the user deleted `Services` in Product Categories, and then tried to install the other module.
This commit resolves the error by providing a False value for the field if the product category is missing.
sentry-6754387015
Forward-Port-Of: odoo/enterprise#90598The Belgian certified POS setup now shows the correct required cash rounding value in its validation message. This helps users configure Belgian Blackbox POS settings accurately and avoids confusion during setup.
Original PR description
The message `"The rounding method must be set to 0.5 and HALF-UP"` was wrong in `pos_blackbox_be/models/pos_config.py`
```py
def _check_cash_rounding(self):
if not self.cash_rounding:
raise ValidationError(_("Cash rounding must be enabled"))
if (
self.rounding_method.rounding != 0.05
or self.rounding_method.rounding_method != "HALF-UP"
):
raise ValidationError(
_("The rounding method must be set to 0.05 and HALF-UP")
)
```
It should be `"The rounding method must be set to 0.05 and HALF-UP"` as indicated in that documentation :
https://www.odoo.com/documentation/17.0/applications/finance/fiscal_localizations/belgium.html?highlight=blackbox#certified-pos-system
It's the same for 18.0
I also added the field for translation into `pos_blackbox_be.pot`
opw-4862967
Forward-Port-Of: odoo/enterprise#90321
Forward-Port-Of: odoo/enterprise#87496This update makes automated checks for the report editor more dependable by waiting more reliably for scrolling to finish. It reduces occasional false test failures, helping development and release validation run more smoothly without changing user-facing behavior.
Original PR description
Linked tests: - `test_add_field_blank_report` - `test_field_placeholder` These tests contained scroll-related indeterminacies that caused them to fail from time to time. This was due to the fact that we were modifying the scroll and we used this code to make sure it was done: ```js await new Promise(requestAnimationFrame); ``` However, sometimes this wasn't enough, so we now use `waitUntil`, which is more robust https://runbot.odoo.com/odoo/runbot.build.error/181989 runbot-181989 Forward-Port-Of: odoo/enterprise#90806
Fixed how Helpdesk tickets created from the website contact form handle the description field. The field is now hidden when it would be the only extra field, and its label uses the visitor's selected language when shown.
Original PR description
## Short functional explanation of the issue When a ticket is created and there are no additional fields, the only field in the ticket is the description field. Moreover, it is not translated. ##…
## Short functional explanation of the issue When a ticket is created and there are no additional fields, the only field in the ticket is the description field. Moreover, it is not translated. ## Reproduction Steps 1. Go to the general settings. Add a language where the term "description" differs from the english word (for example, Spanish). Do the same for the website settings. 2. Go to the website app. Scroll down and change the language. Then, click on the translated "contact us" tab. Fill the form and send the ticket. 3. Go to the helpdesk app and open the ticket you just created. ### Expected behavior The description field shouldn't show, as it appears in the description page. The field should only show if there are additional fields on the "contact us" page. ### Unexpected behavior The description field shows, untranslated. ## Origin of the issue In the ticket code, the field.name is used, instead of the field .field_description, which is translatable. Moreover, there isn't a condition checking if the field should appear or not. -- opw-4876726 Forward-Port-Of: odoo/enterprise#88913