Tuesday, October 7, 2025
14 changes · saas-18.2
Resolved issues and error corrections
This fixes an unstable automated test for bus notifications by ensuring all received notifications are checked, not just the first one. It helps keep validation runs reliable and reduces false failures in the development pipeline.
Original PR description
This commit fixes the `test_postcommit` that fails in a non deterministic fashion. This test ensures bus notifications created in the post commit hook result in only one batch. However, the listener only consider the first notification of the batch (`conn.notifies.pop()`) and ignore the rest. When the expected notifications come as part of a bigger batch, they can be ignored thus making the test fail. This commit ensures we read every notification received. fixes runbot-233185 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#230054
The Point of Sale automated tour now waits longer for the system to finish loading when many localizations are installed. This helps prevent false test failures in slower setup scenarios, improving confidence in release validation without changing user-facing behavior.
Original PR description
Loading the PoS with all the localizations installed can take up to 15s to load, so we increase the timeout of the first step of the generic tour to 20s to make sure it doesn't fail. runbot-233059
Manufacturing orders that were completed without a linked bill of materials can now open their overview without triggering an error. This prevents users from being blocked when reviewing finished production records created with manual components.
Original PR description
Steps to reproduce: - Create a storable product “P1” - Create a manufacturing order to produce one unit of P1: - add any component - Mark the MO as done - Try to open the MO overview Issue: An error is raised because the MO has no BoM. But in the function we try to compute the missing quantity in the BoM's UoM, but since no BoM is linked, there is no UoM available. Error message: "The unit of measure Unit defined on the order line doesn't belong to the same category as the unit of measure %(product_unit)s defined on the product. Please correct the unit of measure defined on the order line or on the product. They should belong to the same category." Fix: Skip the computation of missing BoM quantities when no BoM is linked, allowing the MO overview to be opened without error. opw-5112132 Opw-5105544 Opw-5119897 Forward-Port-Of: odoo/odoo#229707
The appraisal skills list now allows horizontal scrolling again on mobile devices, so users can see the justification field and add or remove skill entries. This restores access to key controls that were hidden on smaller screens and removes unused styling.
Original PR description
Horizontal scrolling has been disabled on the appraisal skills list. An unwanted side effect of that is that the justification field along with the add and remove buttons are not visible on mobile. This PR re-enables the scrolling and removes some dead css. task-5001344 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#229609 Forward-Port-Of: odoo/odoo#222161
The message shown when bank transaction fetching or filtering finds no results now displays correctly instead of showing raw formatting code. This makes the banking workflow clearer and more professional for users when no transactions are available.
Original PR description
Before this commit : - The help message shown when no transactions were fetched by the 'Fetch Transactions' button in the 'Bank' journal contained raw html tags, as markup was not getting applied. - Also, removing a filter (without reloading) and applying another filter that resulted in no matches, the same issue occurred. After this commit: - The help message is now consistently rendered with markup applied. task-4942234 Forward-Port-Of: odoo/enterprise#95514
This fix prevents subscription invoices from accidentally overwriting the correct values on combo product sections. It also avoids adding unnecessary information to those sections, helping invoices stay accurate and cleaner for customers.
Original PR description
This commit improve fix of PR https://github.com/odoo/enterprise/pull/90989 to avoid overriding right combo section values and avoid setting unnecessary values on the section. opw-5069278 Forward-Port-Of: odoo/enterprise#94776
Belgian EC Sales reporting now handles company VAT numbers that were entered without the BE country prefix. This prevents incorrect removal of the first two VAT digits and ensures Belgian reports consistently use Belgium as the country.
Original PR description
It could happen that the user set his vat number without the country code before the number. In this case, we removed the two first digits of the vat number. Also changing other occurrence using the company_vat to get the country, since we are in the belgian ec sale list, the country_code should be 'BE' everytime task-5039969 Forward-Port-Of: odoo/enterprise#93377
This fixes an intermittent failure in automated tests for signed document cleanup. It adds a small timing margin so documents marked for deletion are consistently recognized as old enough to remove, improving release stability without changing user-facing behavior.
Original PR description
Steps to reproduce
==================
Launch the test `test_gc_clear_bin` a few times
It will eventually fail:
documents.document(544,) is not false :
trash document should be deleted after gc_clear_bin
Cause of the issue
==================
The domain for wether a record should be deleted contains `('write_date', '<=', fields.Datetime.now() - relativedelta(days=deletion_delay)`
The tests fails when the write_date is in the same second as the test run.
This is because fields.Datetime.now() replaces microseconds by 0.
https://github.com/odoo/odoo/blob/14073faf1fa272b8d3411b4fe6f42c279058459d/odoo/fields.py#L2378
Solution
========
Since records needs to be at least "deletion_delay" old, we add a margin of 30 seconds to make sure they match
runbot-224207
Forward-Port-Of: odoo/enterprise#95926Users who are allowed to print and send SEPA Direct Debit mandates can now generate, email, and reopen the related PDF attachments without needing an extra accounting read-only permission. This prevents failed mandate emails and avoids blocking users from accessing documents they created.
Original PR description
Removing the groups restriction from the `mandate_pdf_file` field in model `sdd.mandate` because it was causing issues when using the `sdd.mandate.send` wizard. Any user who has access to the `sdd.mandate` model can use this wizard to print and send the record. During this process, the system generates a PDF and stores it in the `mandate_pdf_file` binary field, linking the resulting attachment to the record. The previous group restriction prevented users who were not part of the `account.group_account_readonly` group from sending the email with the attachment. Even if the email was somehow sent, those users still couldn’t access the attachments they themselves had generated and sent. With this change, any user who is allowed to send and print `sdd.mandate` records will also be able to generate and later access the corresponding attachments. Forward-Port-Of: odoo/enterprise#96119
This update adds an automated test for the batch payment reconciliation flow to help prevent a previously reported issue from returning. It does not change user-facing behavior, but improves confidence that accounting workflows remain stable in future releases.
Original PR description
Add test for PR opw-5057109 Forward-Port-Of: odoo/enterprise#94304
The payroll accounting tests for Hong Kong were updated so their sample time off data includes the required leave allocations. This prevents validation errors during automated testing and helps keep payroll-related releases stable.
Original PR description
Issue: Unit tests are failing because test data was created without leave allocations, leading to validation errors. Fix: Added leave allocation data for time off types which requiring allocation in some tests. build_error-230409 Forward-Port-Of: odoo/enterprise#93160
The appraisal skills list now allows horizontal scrolling on mobile again, so users can see the justification field and the add or remove buttons. This fixes a mobile usability issue that prevented employees or managers from completing skill appraisals properly.
Original PR description
Horizontal scrolling has been disabled on the appraisal skills list. An unwanted side effect of that is that the justification field along with the add and remove buttons are not visible on mobile. This PR re-enables the scrolling and removes some dead css. task-5001344 Forward-Port-Of: odoo/enterprise#96068 Forward-Port-Of: odoo/enterprise#91882
Documentation and clarification updates
This change updates ForgeFlow's corporate contributor agreement documentation. It keeps Odoo's legal contributor records current, with no expected impact on product features or day-to-day users.
Original PR description
Forward-Port-Of: odoo/odoo#230040
Miscellaneous changes
Fixes a typo in the i18n directory. no task-id Forward-Port-Of: odoo/enterprise#96417
Original PR description
Fixes a typo in the i18n directory. no task-id Forward-Port-Of: odoo/enterprise#96417