Wednesday, September 2, 2026
11 changes · saas-18.3
Resolved issues and error corrections
A rental pricing test was made independent of the time of day so it no longer fails late in the UTC day. This improves reliability of automated checks without changing customer-facing rental pricing behavior.
Original PR description
Scenario:
- be (or switch your computer) at time between 21:01 and 23:59 UTC
- run test test_product_attribute_value_config_get_combination_info
Result:
This error is happening:
Traceback (most recent call last):
File "…/tests/test_website_sale_product_attribute_value_config.py",
line 106, in test_product_attribute_value_config_get_combination_info
self.assertEqual(combination_info['price'], price_3_hours)
AssertionError: 6.42 != 15.0
Cause: since the time range is on multiple day, we favor a weekly price
that is more interesting and the result is not the 3 hours price.
Fix: set the date for the test.
runbot-227695The system now handles requests with URLs that are too long without triggering an additional server error. This keeps the proper error response intact and improves reliability when unusual or malformed requests reach the server.
Original PR description
- When the request URI is too long, the HTTP server rejects the request before parsing the headers. As a result, `self.headers` is not available when the WebSocket compatibility code in `send_header()` and `end_headers()` is executed. - Access `self.headers` safely to avoid an AttributeError while handling the 414 response. **opw-6501275** --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#285870
An outdated Point of Sale data cleanup step was removed because a newer, more targeted fix now handles the issue more safely. This reduces the risk of removing valid order information while still clearing only obsolete loyalty reward lines when needed.
Original PR description
This fix is no longer required(https://github.com/odoo/odoo/pull/202752) as this one (https://github.com/odoo/odoo/pull/257043) is cleaner and less aggressive (it will only delete stale reward lines). This is the relevant part of the new fix to delete the previous one: https://github.com/odoo/odoo/pull/257043/changes#diff-18cef42f8c39513a82387e9cb81bc732b252304cd15b5b2f7b0b4623ac20cb41R100-R104 opw-6447092 Forward-Port-Of: odoo/odoo#285376
Remaining hours on sales order lines for timesheet-based services now update when the unit of measure or availability settings change. This helps teams see more reliable remaining work estimates without needing manual refreshes or corrections.
Original PR description
The dependencies of _compute_remaining_hours do not match the fields actually used for the computation: it lists analytic_line_ids, which it never uses, and omits both remaining_hours_available, and product_uom. _compute_remaining_hours_available has the same issue: it uses product_uom but only depends on product_id.service_policy. analytic_line_ids, on the other hand, can be dropped: qty_delivered already depends on it, along with its so_line, unit_amount, product_uom_id and project_id, so the timesheet flow keeps triggering the recomputation. This PR fixes the dependencies for both aforementioned compute methods. Task-4748521 Forward-Port-Of: odoo/odoo#285418 Forward-Port-Of: odoo/odoo#284750
This update fixes an inconsistent automated test for Canadian payment file handling by ensuring items are checked in a consistent order. It helps keep validation reliable and reduces false failures in the release process, with no expected change for end users.
Original PR description
Sorts the expected items in `test_cpa005` to ensure consistent ordering. runbot error: https://runbot.odoo.com/odoo/error/941567
This fix keeps the Android camera workaround only for Chrome-based Android browsers that need it. It avoids showing inappropriate file options in other environments, such as the Odoo mobile app, while preserving camera access for affected users.
Original PR description
Since Android 14, Chromium sends a file input accepting only images straight to the photo picker, which has no "Camera" entry. The image fields work around it by appending `dummy/allowAndroidCamera`…
Since Android 14, Chromium sends a file input accepting only images straight to the photo picker, which has no "Camera" entry. The image fields work around it by appending `dummy/allowAndroidCamera` to their accept attribute: a mimetype which is not an image is enough to get the generic chooser, and its camera, back. https://issues.chromium.org/issues/40937303 That invalid mimetype was appended for everyone, while only the browsers based on Chromium on Android need it: - the issue is an Android one, the desktop file dialogs are not concerned - the native app builds its own file chooser out of the accept attribute, and the invalid mimetype makes it offer the document picker on a field which only accepts images - Firefox and Safari are not based on Chromium and are not affected The workaround is now limited to the browsers needing it, and the expression moved from the template to a getter, since it is no longer a simple concatenation. Code made by Claude Supervised by RFR --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#285969 Forward-Port-Of: odoo/odoo#285643
When adding a certificate key file, users will no longer see an error banner simply because they left the password field empty. The warning now appears only when an entered password is incorrect, reducing confusion during certificate setup.
Original PR description
When adding a key file without entering a password, an error banner is immediately displayed, incorrectly suggesting that the password may be invalid. Only show the error banner when a password was provided and is incorrect. Also refactored the compute function to avoid repeated try-except blocks. task-6299175 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#283589
The helpdesk team card now displays the mail alias in line with the team name. This small visual correction makes the Helpdesk settings page look cleaner and easier to scan.
Original PR description
In this commit, we remove the margin before the mail alias, ensuring aligment within the helpdesk team card. task-6416578 Forward-Port-Of: odoo/enterprise#129865
This fix makes Point of Sale testing more reliable when demo databases contain many customers. The automated tour now searches for additional results before selecting a customer, preventing false failures in environments with larger demo data sets.
Original PR description
When running with demo data with many modules installed, there can be enough partners in the DB that the partner search in POS does not find the partner straight away, and requires another batch to be loaded. In this case, a tour that tries to select the partner straight away will fail. This commit fixes the issue by always pressing enter to search more in a tour when selecting a partner. The required tour steps were already present, just not always used, so they have been extracted into a function. runbot-233397 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where Indian e-waybill stock screens could break in certain single-app test setups because a required stock accounting component was not explicitly included. Adding the dependency makes the setup more reliable without changing everyday user workflows.
Original PR description
The view 'l10n_in_ewaybill_stock.view_picking_form_inherit_ewaybill' is broken in single-app tests because it depends on stock.picking:country_code. That field is provided by module 'stock_account' through auto_install relationship. 'stock_account' auto_installs with 'stock' and 'account' installed. This condition exists on stable so it's safe to add this dependency. The dependency is added to l10n_in_stock because it seemed like the logical place where 'account' and 'stock' functionality comes together. [l10n_in_ewaybill_stock] ──[depends]──> [l10n_in_stock] [l10n_in_stock] ──[depends]──> [stock] [l10n_in_stock] ──[depends]──> [l10n_in] ──[depends]──> [account_tax_python] ──[depends]──> [account] REF Runbot: https://runbot.odoo.com/odoo/error/945482 Forward-Port-Of: odoo/odoo#284990
This fixes a configuration omission so the Greek electronic invoicing module is included in the translation workflow. It helps ensure the module can receive and maintain translated text for users in supported languages.
Original PR description
Commit https://github.com/odoo/odoo/commit/45bd522dde7a67194e14a40d66944a2e34d1f79d introudced a new module without it's related `weblate.json` entry. This commit fixes this omission. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#285570