Saturday, July 5, 2025
10 changes · saas-18.2
Enhancements to existing features
French accounting no longer automatically copies the invoice date into the delivery date field. This ensures the delivery date is only filled in when a user explicitly provides it, reducing the risk of incorrect invoice information.
Original PR description
This commit prevents the delivery date from being set to invoice date by default in French localization. We need the delivery date to be only set by the users. task-4900043 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216548
Accounting users can now group the Chart of Accounts by account root, making it easier to review and organize accounts at a higher level. This improves navigation and reporting workflows without changing accounting data.
Original PR description
Before this commit:
- go to Accounting > Configuration > Chart of Accounts
- in the search bar, you cannot group accounts by account root.
After this commit:
- You can group accounts by account root ('Root').
We do this by implementing `_field_to_sql` for `account.account.root_id` which makes the field groupable.
task-none
Forward-Port-Of: odoo/odoo#217418
Forward-Port-Of: odoo/odoo#217293Resolved issues and error corrections
This fixes how Odoo's web testing tools handle drag-and-drop or clipboard-like data during automated interactions. The change makes tests more accurate when data is added dynamically, reducing the risk of false failures or missed issues in web interface testing.
Original PR description
Before this commit, the 'types' property of datatransfers used in Hoot interactions was mocked to insert the initial types of the given 'items' and 'files'. However, this didn't account for the items added dynamically on the datatransfer object. The good thing is that it doesn't actually need to be mocked, since it already works with the given 'files' and 'items' types without having to override the 'types' descriptor. So the mock has been removed. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217313
This fixes an issue where the refund reason popup could fail to appear in Point of Sale when Spanish TicketBAI and Peruvian electronic invoicing features were both installed. Businesses using these localizations can now process refunds with the required reason prompt shown reliably.
Original PR description
When both l10n_es_pos_tbai and l10n_pe_edi_pos are installed, the refund reason popup was not showing up because we were not awaiting the super method call in the l10n_pe_edi_pos override. runbot-227630 Forward-Port-Of: odoo/odoo#217358 Forward-Port-Of: odoo/odoo#216379
This fix makes the sales signature test wait until the signature area is ready before accepting and signing. It helps prevent false error messages during automated checks, improving confidence that the online signing flow works as expected.
Original PR description
In commit, we make sure that the signature is present in the modal before reaching the step where we click on "accept & sign". If the canvas is not yet loaded at this step, then there is an error message "Signature is missing". Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217202 Forward-Port-Of: odoo/odoo#217099
Fixed an issue where sending or printing invoices for customers using different languages could show the email button in the wrong language. Each invoice email now uses the correct customer language, improving accuracy for multilingual customer communications.
Original PR description
**Issue**: When multiple invoices with different customer languages are sent and printed together, the invoice email button may appear with an incorrect translation for some of them. **Steps to…
**Issue**: When multiple invoices with different customer languages are sent and printed together, the invoice email button may appear with an incorrect translation for some of them. **Steps to reproduce**: - Open the Accounting app - Go to Customers > invoices - Create a new invoice with a customer with its language set to German - Create a new invoice with a customer with its language set to English - Go back to Customers > invoices - Select the two invoices just created and click on action > Sent & Print and then click on the Sent & Print button - Go to Settings > Technical > Email > Emails and check the two last emails. One of them should have the invoice email button wrongly translated **Cause**: Before sending an email, it retrieve the `type_name` using the lang of the customer https://github.com/odoo/odoo/blob/28c3b9cf10488536dce5a4927fdbe8fcd6e5a839/addons/account/wizard/account_move_send.py#L596C1-L605C14 This will trigger that compute method https://github.com/odoo/odoo/blob/a6368e8a5787f3067d09d79516a2924b3f1207f0/addons/account/models/account_move.py#L841C1-L850C67 which set the `type_name` of all the records. Since the compute method only depends on move_type, it does not recompute type_name per record. As a result, all records may share the same type_name, regardless of language context. Please notice that `type_name` is used to display the invoice email button in the right language. **Solution**: Make the compute method `_compute_type_name` depending to the lang parameter, thus it will use the right `type_name` for each email to send. opw-4748741 Forward-Port-Of: odoo/odoo#216811
Printing Indian E-Waybills no longer crashes when the expiry date is missing from the government response. The report also shows the correct document date in document details, helping users produce accurate invoices and transport documents after migration.
Original PR description
Steps to reproduce: Traceback occurs when printing the eWaybill. When the eWaybill expiry date is not present in the JSON response, any usage of date.strftime(...) caused a traceback. This fix ensures the date is checked before formatting to prevent such errors. Possible issue after the post migration of the database to saas-18.1 opw-4919575 Forward-Port-Of: odoo/odoo#217535
This update makes automated checks for the HTML editor more stable by waiting properly for link preview popovers and splitting an overly long test. It reduces random test failures in validation systems, helping releases move forward with fewer false alarms.
Original PR description
Forward-Port-Of: odoo/odoo#215168
A frequently failing automated test for editing chatter messages has been temporarily skipped to reduce false failures in Odoo's test pipeline. This does not change user-facing mail behavior, but helps keep validation runs more reliable while the underlying timing issue is addressed later.
Original PR description
The test "Can edit message comment in chatter" fails often non-determinically on runbot. This happens because this test heavily uses the edit message feature, which has client-side code receiving…
The test "Can edit message comment in chatter" fails often non-determinically on runbot. This happens because this test heavily uses the edit message feature, which has client-side code receiving store data from both RPC returns and bus notifications. When CPU load is high which happens frequently on runbot, test shows race-condition where bus notifications are received much later than RPC return part and thus discuss state becomes wrong by having outdated data. This is an architectural issue that takes time to solve, so this test is skipped in the meantime. Note that while the problem occurs quite a lot on runbot in HOOT tests, in practice this happens quite rarely: bus notifications should be heavily throttled. Also HOOT test fails because of unfortunately case of receiving exactly outdated message body data before starting message edition. When message is being edited, any following store data with change of message body is ignored because the text in composer is intended to not change while editing the message. Kinda fixes runbot 227618 Forward-Port-Of: odoo/odoo#217501
This fix ensures refund processing waits for the required prior step when Spanish TicketBAI and Peruvian POS e-invoicing are both installed. As a result, staff will correctly see the refund reason popup, helping maintain proper refund records and compliance workflows.
Original PR description
When both l10n_es_pos_tbai and l10n_pe_edi_pos are installed, the refund reason popup was not showing up because we were not awaiting the super method call in the l10n_pe_edi_pos override. runbot-227630 Forward-Port-Of: odoo/enterprise#89423 Forward-Port-Of: odoo/enterprise#88813