Monday, June 15, 2026
7 changes · saas-18.4
Resolved issues and error corrections
This update stabilizes automated checks for one-to-many fields linked to related records. It helps reduce false test failures, making releases and maintenance more predictable without changing user-facing behavior.
Original PR description
This commit is a backport of [1] and [2] which fix non deterministic one2many tests involving a many2one. [1] https://github.com/odoo/odoo/pull/266344 [2] https://github.com/odoo/odoo/pull/256582 runbot error~243512 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#269739
This update prevents errors when certain combined website builder actions are used together. It helps keep website customization options working reliably when users click elements that depend on these actions.
Original PR description
In 18.4 the composite action isn't used extensively, so the problem was unnoticed. However, if you use it with an action that has a `getValue` set, you may get issues, since the action will not be bound. Possible way to reproduce the issue: - Create an option that uses the `composite` action - Set `customizeWebsiteVariable` as a first action in the `actionParam` - Click on an element that has that option => You'll get an error. Note, that testing just this would be useless, so I added a test that tests that the action uses the first `getValue`. Without this fix the test would crash since in `getValue` `this` is unbound.
This fix makes an automated live chat chatbot setup test wait long enough for a new blank step form to load after saving. It reduces false failures in quality checks under heavier system load, helping keep releases more stable without changing customer-facing behavior.
Original PR description
When creating chatbot steps, the tour clicks "Save & New" and waits for a fresh empty step form before typing the next one. That wait was done inside a step `run` with `waitFor`, which only polls for 200ms. "Save & New" saves and reloads the parent record, switches the saved record to readonly, then loads a new empty record. Under load this takes more than 200ms, so the wait gives up before the empty textarea appears and the tour fails. Wait for these conditions in the step trigger instead, which uses the regular (much longer) step timeout. https://runbot.odoo.com/odoo/runbot.build.error/237893
Saving an Odoo configuration file now keeps existing custom path settings such as bin_path instead of removing them. This prevents accidental loss of environment-specific setup when administrators save configuration changes.
Original PR description
Have a configuration file with a "bin_path" entry. Use that config file and --save it. The "bin_path" entry is removed from the new config file, it should had been persisted. The problem is common to all "undocumented options", options that did not exist in `config.py` before ConfigCleaner(7) and that were not created upon --save. We can argue about creating or not those options upon --save with the default config, but what's sure is that when the option be set in the config file, then it must be persisted across saves. Task-6106771 Reference-to: 80007415d621 ([REF] core: ConfigCleaner(7) remove deprecated options) 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#258377
This update resolves two issues related to attaching documents to employee records. Previously, attachments were created in the root employee folder, which was inconvenient. Now, attachments are correctly created, including those for sick leave, ensuring proper document management for employee records. This improves the user experience and data integrity.
Original PR description
Before this commit, when adding an attachment to a leave or a employee version the mixin was configured to create the document in the root folder of Employees which was not very convenient. In addition, when creating a Sick leave with an attachment, no document was ever created. This commit fix both those bugs. Task-6095811 Forward-Port-Of: odoo/enterprise#112993
This update corrects a potential issue in the Swiss payroll module where users could incorrectly request refunds on payslips. Swiss payroll regulations limit payments to one per month, so the system now guides users to cancel and re-create a payslip for any necessary adjustments. This ensures compliance with Swiss tax laws.
Original PR description
Prevent refunds for CH payslips since only one payslip per month is allowed for Swiss payroll. Users should cancel the payslip and create a new one to apply corrections. task-5951981 Forward-Port-Of: odoo/enterprise#107943
This update resolves a technical issue where the Urbanpiper order information screen incorrectly displayed customer details even after the customer was removed. The fix ensures that customer information is only shown when a valid customer is associated with the order, improving the user experience and preventing unexpected errors.
Original PR description
Steps to reproduce: ==== - Place an order through Urbanpiper. - Edit the order and remove the customer. - Open the ticket screen and click the info button. - A traceback occurs. Cause: ==== - Customer details were rendered even when no customer was linked to the order. Fix: ==== - Display customer details only when a customer is present on the order. task-6233812 Forward-Port-Of: odoo/enterprise#120290 Forward-Port-Of: odoo/enterprise#118147