Wednesday, September 2, 2026
9 changes · saas-18.4
Resolved issues and error corrections
This fixes image upload behavior so the Android camera workaround is applied only in affected Android Chromium browsers. It prevents other environments, such as the native app or desktop browsers, from showing inappropriate file picker options while preserving camera access where users need it.
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#286074 Forward-Port-Of: odoo/odoo#285643
Fixes an issue where some website header designs showed an inaccurate preview when changing the header width setting. The setting now applies through the correct configuration path for those designs, helping users see consistent results when customizing their site.
Original PR description
The header width option is not previewed properly on the following header templates: - `template_header_boxed` - `template_header_sales_one` - `template_header_sales_two` - `template_header_sales_three` - `template_header_sales_four` - `template_header_search` This happens because these templates are not compatible with the action `previewableWebsiteConfig` (their width can't be previewed by adding a single class). This commit fixes the problem by using the action `websiteConfig` instead of `previewableWebsiteConfig` when one of these templates is set. task-6420611
Resetting text color in the HTML editor no longer removes other formatting such as font size. This prevents users from accidentally losing styling while editing notes or other rich text content.
Original PR description
Steps to reproduce: - Open the first default To-do note. - Select the word Welcome. - Open the text color picker. - Click the trash icon to reset the text color. Issue: - When resetting the text color, the selected text also loses its font-size style. Cause: - The `color_plugin` removes the wrapper element after resetting the color style. If the same element also contains other inline styles (such as font-size), those styles are lost when the element is removed. Solution: - After resetting the color style, only remove the element if it no longer has any other inline styles. Otherwise, keep the element so that the remaining styles are preserved. task-6279198 Forward-Port-Of: odoo/odoo#281760 Forward-Port-Of: odoo/odoo#275550
The certificate setup flow no longer shows an error banner when a key file is added without a password. Users now only see the warning when they entered a password and it is actually incorrect, reducing confusion during certificate configuration.
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 aligns the email alias with the team name by removing extra spacing. This creates a cleaner, more consistent layout for users viewing or managing helpdesk teams.
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 registers the Greek e-invoicing module with the translation system. It ensures the module can be translated properly, improving localization support for Greek electronic invoicing users.
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
Refunds made through the demo payment provider now complete correctly after a manually captured payment. This prevents transactions from getting stuck with an incorrect negative authorized amount, making demo checkout and refund testing more reliable.
Original PR description
Issue: --- When using manual capture, you can refund the transaction but it will be only authorized, and you'll then be blocked with a negative authorized amount and the impossibility to refund it. This seems to be specific to demo payment provider. Steps: 1- Enable manual capture on demo provider. 2- Buy a product from shop and checkout and pay. 3- Capture the payment in backend. Then click on post process. 4- Try refund. opw-6413515 Forward-Port-Of: odoo/odoo#282315
This update ensures the Indian stock localization loads the accounting-related stock component it needs. It prevents failures in isolated app testing and keeps the e-waybill stock form working reliably.
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 cases where the mail reply box or suggestion list could stay open after pressing Escape. Users should see more reliable behavior when dismissing replies, mentions, and emoji-related popups in the mail interface.
Original PR description
Two independent causes made "reply: discard on pressing escape" red, one commit each. "[FIX] mail: wait for the mention suggestions before Escape" is the one that fixes the reported failure, and it holds on every branch: the test presses Escape while the mention fetch is in flight, and the suggestions arriving from the server re-open the list that Escape closed, so the re-opened list takes the second Escape and the reply is never discarded. The test now waits for the fetched suggestions before pressing Escape. "[FIX] mail: keep the suggestion list closed on a re-render" backports "[FIX] mail: keep composer suggestion list closed on unrelated re-render", which entered at 19.0 and never came down. Here NavigableList is re-opened on every patch, so opening the emoji picker after Escape brings the dismissed list back, and it then steals the Escape meant for the picker. https://runbot.odoo.com/odoo/error/946314 Forward-Port-Of: odoo/odoo#285927 Forward-Port-Of: odoo/odoo#284725