Monday, July 27, 2026
7 changes · 19.0
Resolved issues and error corrections
This fix ensures custom website snippet previews finish updating before they are shown after a theme color change. It prevents occasional incorrect old colors from appearing in automated checks and improves reliability of the website builder experience.
Original PR description
Issue: The `shape_color_sync_with_theme_color` tour failed randomly at its last step i.e after changing a theme preset color, the image shapes of the saved (custom) snippet sometimes still had the old color. This happened because `updateContent` called its callback without awaiting it, so the re-processing of the custom snippet images ran in the background after the color change operation had already completed. At normal flow this operation finishes before the previews are looked at, but the tour reaches the `Custom` snippets category within milliseconds and could assert the colors before the re-processing was done - making the outcome depend purely on timing. Fix: Awaiting the callback ensures the custom snippets content is fully updated before the operation completes, so by the time the loading indicator disappears the previews are guaranteed to be in sync. runbot-[944175](https://runbot.odoo.com/odoo/error/944175) Forward-Port-Of: odoo/odoo#276862
A small template issue in the Website search results page was corrected so searches from the site navigation no longer generate repeated system warnings. This keeps logs cleaner and helps automated website tests run without unnecessary noise.
Original PR description
When searching on the Website site, using the main search on the navbar, it opens a list view with the results (`website.list_hybrid`) which raises the warning on the logs (2 times): "Unknown…
When searching on the Website site, using the main search on the navbar, it opens a list view with the results (`website.list_hybrid`) which raises the warning on the logs (2 times):
"Unknown directives or unused attributes: {'t-key'} in website.list_hybrid"

This happens after the attribute `t-key` was added to the template [\[1\]] because the template is only used in QWeb. The validation for them doesn't include the `t-key` [\[2\]] as one of the "iter_directives" nor has a `_compile_directive_*` method to check and remove it from the validation as it's done with the `t-as` and `t-foreach`.
This also causes the raise of the warnings on tours that use the tour method `searchProduct` (of the module `website_sale`) because it uses the first input with the name of search and happens to be the search on the navbar.

[\[1\]]: https://github.com/odoo/odoo/commit/7b1d82aa
[\[2\]]: https://github.com/odoo/odoo/blob/f52cfb09/odoo/addons/base/models/ir_qweb.py#L1400
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#179017Equipment cards in the Maintenance app now display property values when users choose the Display in Cards option. This helps teams see important equipment details directly from the card view without opening each record.
Original PR description
Currently, the property value is not displayed on the Kanban card, even when the `Display in Cards` option is enabled. This PR ensures that if `Display in Cards` option is enabled for a property, its value is displayed on the corresponding equipment Kanban card. **Steps to reproduce:** - Install the Maintenance module. - Open `Equipment`. - Open an existing equipment record or create a new one and save it. - Click the actions (gear) menu from the equipment form view. - Select `Add Properties`. - Add a property and enable the `Display in Cards` option. Open the Kanban view. **Expected behavior:** The property value should be displayed on the Kanban card when the `Display in Cards` option is enabled. Issue: [#277479](https://github.com/odoo/odoo/issues/277479) Forward-Port-Of: odoo/odoo#277757
The AI tool descriptions were cleaned up to remove misleading labels that could cause agents to request a tool that does not exist. This reduces avoidable AI workflow failures and helps automated actions run more reliably.
Original PR description
Purpose: -------- Agents occasionally fail by trying to call a `search` tool that does not exist. This seems to come from the `Tool Name: search` header in the tool description, which can be confused with the actual tool name used by the LLM, i.e. the tool xmlid. This commit removes these headers from the search and read group tool descriptions. They were missed in [this commit](https://github.com/odoo/enterprise/commit/912bce43a98d45e90dbd24328fa2f46caba4c887 ), which removed the same headers from the other tools. Task-6401285
The French accounting report tests were updated to match the latest fallback behavior for FEC export labels. This helps ensure the export validation remains reliable after the related core accounting change, with no expected change for day-to-day users.
Original PR description
Adjust the FEC export test expectations to match the updated `EcritureLib` fallback logic introduced in the related community change. Related: https://github.com/odoo/odoo/pull/257242 task-5346068
The rental order form now displays the duration and pricing update button correctly when translated button labels are longer. This prevents overlapping text, making rental durations easier to read across languages and screen sizes.
Original PR description
**Steps to reproduce:** 1. Set the UI language to Spanish (or any language with a long "Update Rental Prices" translation) 2. Create a rental order with a rental period that has both days and hours…
**Steps to reproduce:** 1. Set the UI language to Spanish (or any language with a long "Update Rental Prices" translation) 2. Create a rental order with a rental period that has both days and hours (e.g. July 15 10:00 → July 25 14:00 = 10 days 4 hours) 3. Observe the "Duration" field in the form after zooming (depends on screen resolution) **Issue:** The duration row displays overlapping text **Why this happens:** The "Update Rental Prices" button and the duration text share the same o_row flex container. In translated UIs the button text can be significantly wider than in English, pushing the total row width past the form value-cell boundary. When the row overflows, only spans and the button shrink, the integer field widgets do not. The threshold at which this triggers is zoom dependent based on screen resolution. **Fix:** Add `.flex-wrap` utility class to the duration `o_row` so the button wraps to the next line when space is insufficient, keeping the duration text intact on a single line. opw-6389526
This fix prevents Swiss payroll processing from failing when a related payroll rule has been archived. It helps payroll teams continue monthly value handling without unexpected interruptions caused by inactive rules.
Original PR description
Forward-Port-Of: odoo/enterprise#103677