Daily updates from Odoo
Wednesday, August 19, 2026
6 changes · saas-19.4
Enhancements to existing features
Cached website generation requests now schedule a quick follow-up trigger instead of waiting or calling webhooks too early. This helps related notifications run reliably without tying up processing workers.
Original PR description
When a request is cached a webhook won't be called because if we did it immediatly it might arrive before the generator commited. And we don't want to delay the webhook call to not stall a worker just for that. So we simply scheldule a trigger if a request was cached. Forward-Port-Of: odoo/enterprise#128206
The Dutch payroll localization now includes the 2026 resident income tax rate values. This helps payroll calculations stay aligned with the latest tax rules for employees in the Netherlands.
Original PR description
Added 2026 values for the residents' income tax rates rule parameter. task-6462877 Forward-Port-Of: odoo/enterprise#127556
Users can now move through return items in the returns kanban view using the up and down arrow keys without triggering an error. This improves day-to-day navigation and prevents interruptions when reviewing or selecting returns.
Original PR description
In returns kanban view, a traceback occurs when pressing down. Fix this by adding the support for up/down keyboard navigation for returns selection. task-6281033 Forward-Port-Of: odoo/enterprise#128308 Forward-Port-Of: odoo/enterprise#125164
The default waiting time for certain web interface test checks has been increased from a very short window to 10 seconds. This reduces false test failures on busy machines without slowing successful test runs, improving confidence in automated quality checks.
Original PR description
Before this commit, waitFor, waitForNone and waitUntil gave the DOM 200 milliseconds, which the loop turns into 12 animation frames, while contains() and expect.waitForSteps sitting in the same tests…
Before this commit, waitFor, waitForNone and waitUntil gave the DOM 200 milliseconds, which the loop turns into 12 animation frames, while contains() and expect.waitForSteps sitting in the same tests give 10 seconds. 430 call sites in addons reach these three helpers and 29 pass an explicit timeout, so 12 frames is what the other 401 get. The problem is that 12 frames is less than what the client needs on a loaded machine. Measured on "should remove file from html editor if removed from attachment list", on the wait that follows the Full composer button: - 5 to 7 frames on an idle machine; - 11 to 18 frames over 8 runs with the machine at load 10 to 20, 5 of the 8 above the 12 frames the default allows. Those 5 are failing runs, and the same test at load 13 to 29 fails 6 runs out of 6 with the 200 milliseconds, 0 out of 6 with 10 seconds. Note that a longer timeout costs nothing on a green build: the wait ends on the frame the DOM matches, so it only delays the report of a test that was going to fail anyway. Hoot fails the test itself after 5 seconds, 15 in test_js.py, which keeps bounding a wait that never resolves. This commit raises the default to 10 seconds, the delay a tour step already gets in macro.js and the one contains() and expect.waitForSteps already have. https://runbot.odoo.com/odoo/error/946094 Forward-Port-Of: odoo/odoo#282702
Online shoppers can now select multiple values within the same product filter, such as choosing both Lenovo and HP while also filtering by storage size. This supports broader product searches and avoids unnecessary filter refreshes, making browsing more flexible and efficient.
Original PR description
Filters are now completely exclusive, which prevent 0 results but also prevents more "open" searches as "Lenovo" OR "HP" AND "512GB SSD". Stop updating the filters based on selected attribute values to avoid the extra product query and allow selecting non exclusive filters from the same attribute. task-6341310 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#273076
The update schedule for IoT boxes no longer runs on weekends. This helps ensure updates happen during support hours, reducing the risk of issues when help may be less available.
Original PR description
This PR removes weekend days from dynamic update for the iot boxes. This allows to follow the support availabilities Forward-Port-Of: odoo/odoo#282780