Monday, August 25, 2025
7 changes · 17.0
Resolved issues and error corrections
The Unsplash image picker now ignores duplicate images returned in the same search results. This prevents a crash when users search for images and Unsplash sends repeated items, keeping the media selection flow reliable.
Original PR description
This commit fixes an OwlError when we try to render the images received from Unsplash after a search. The issue is that Unsplash can send duplicate images in the same batch of images. When we render those in a `t-foreach` and use the image `id`s as the keys, we get a duplicate key error. This is fixed by expanding on the previous filtering code, which ignored duplicates over multiple batches. We now ignore duplicates within batches as well. At the time of writing, Unsplash is sending us duplicate images on a search for "Inventory". opw-5027032
This fix prevents the website editor from crashing when users paste multiple content blocks into inline text areas. It also avoids an extra blank line being inserted in a related editing case, making content editing more stable and predictable.
Original PR description
Problem: When pasting two blocks inside an inline element, a traceback occurs. Cause: During `insert`, when `insertBefore` is `true` and `isEmptyBlock(right)` after `splitElement`, `currentNode` is set to `right`. But `right` may already have been deleted, leading to an invalid reference. Solution: Delete `right` if empty, but do not set `currentNode` to `right` in that case. Steps to reproduce: It is tricky to reproduce manually (you must copy two blocks and paste them in an inline element). A test has been added to cover the case. opw-4972695 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Portal pages no longer fail when the assigned salesperson does not have an email address. The contact email link is only shown when an email is available, keeping customer portal access stable.
Original PR description
Description of the issue/feature this PR addresses: Portal crashes with Internal Server Error if the assigned salesperson does not have an email address. Current behavior before PR: When opening /my/home with a portal user linked to a salesperson without an email, the view portal.portal_contact tries to concatenate a False value with a string while building the mailto: link. This raises a TypeError: can only concatenate str (not "bool") to str. Desired behavior after PR is merged: Portal pages should render normally even if the salesperson has no email address. The link is only generated when the field is available, avoiding the crashink, preventing the crash and ensuring portal pages remain accessible even if a salesperson does not have an email. Fixes #223677 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Invoice OCR now selects the most relevant matching contact when several contacts share the same VAT number. This reduces incorrect partner assignments by prioritizing contacts with stronger supplier or customer activity history.
Original PR description
It's possible that multiple partners are sharing the same VAT number, for example, when multiple addresses are set on it (each address will be a child `res.partner` with the same VAT number). Previously, when the OCR matched such partners from their VAT number, it would select one "at random" (based on the default sort of `res.partner`). Now, it will match the one with the highest supplier/customer rank. opw-[4954057](https://www.odoo.com/odoo/49/tasks/4954057)
Swiss payroll ELM transmissions now include contact person details only when all required contact fields are filled in. This prevents incomplete contact information from being sent, reducing the chance of rejected or unclear payroll submissions.
Original PR description
Contact person information should only be transmitted if all 3 fields are filled
This fix ensures negative Swiss payroll entries use the correct accounting direction. It helps keep payroll accounting accurate and reduces the risk of incorrect balances for affected payroll postings.
Original PR description
…r 2050 Invert accounts for negative payslip line
This fix ensures subscription recurring revenue is calculated using the same values provided by the external tax calculator. It helps keep revenue fields accurate and consistent for businesses using external tax services with subscriptions.
Original PR description
Added the override to calculate recurrent revenue in sale_subscription_external_tax in order to ensure the revenue fields match the values provided by external calculator. opw-4964610