Daily updates from Odoo
Friday, August 14, 2026
12 changes
Code cleanup and technical improvements
The Knowledge app sidebar code was updated to use the newer Owl 3 approach as part of Odoo's frontend framework migration. This is an internal modernization that helps keep the app compatible and maintainable without changing business workflows.
Original PR description
As part of the Owl 3 migration, replace onWillUpdateProps hook with the appropriate Owl 3 alternatives.
This update modernizes how several reporting features build their underlying data views, replacing an older internal approach with the newer standard method. Users should not see functional changes, but finance, ESG, helpdesk, HR, manufacturing, and localization reports benefit from a more maintainable foundation for future improvements.
Original PR description
https://github.com/odoo/odoo/pull/281202
This change streamlines how the account reconciliation screen opens the auto-reconcile wizard. It keeps the same user-facing behavior while making the underlying code easier to maintain and less likely to cause future issues.
Original PR description
Before this commit, a function to open the auto reconcile wizard was given to env to make it available in sub components. It's only needed in the child component which is defined in the same file. We can just write a simple hook that the two components would share instead of giving it in the env.
The holiday planning timeline was updated to align with the next version of Odoo's interface framework. This keeps the feature maintainable and helps reduce upgrade risks without changing day-to-day user behavior.
Original PR description
As part of the Owl 3 migration, replace deprecated onWillRender hooks with the appropriate Owl 3 alternatives.
This update modernizes how view button click behavior is managed in Data Cleaning and Web Studio. It aligns the code with newer framework conventions, making future maintenance safer while keeping the user experience unchanged.
Original PR description
… with hooks Replace the `onClickViewButton` environment-based pattern with properly named hook functions to follow owl3 conventions. Introduces `useViewButtonHandler()` and `provideViewButtonHandler()` as the new public API for managing view button click handlers, implemented via a `ViewButtonPlugin` that uses owl's plugin system. This replaces the previous approach of directly accessing and overriding `this.env.onClickViewButton` or using `useSubEnv()`.
This update modernizes how parts of Social, Twitter social streams, and Website Knowledge handle user interactions such as scrolling and clicks. It reduces the risk of stale event handlers and prepares these areas for the next version of Odoo's frontend framework without changing expected user behavior.
Original PR description
[REF] *: use useListener instead of useLayoutEffect Several places bind a DOM listener with a useLayoutEffect. useListener already handles that: given a ref, it binds the listener and cleans it up whenever the element changes or the component is destroyed. documents: the scroll listener on the parent root is a plain useListener; only the initial topOffset still needs an effect. social: the 'Connect Accounts' link of the no content helper had a click listener that was never removed. As the helper is added/removed along with the view content, delegate the click on the root element instead of binding the link itself. Community: https://github.com/odoo/odoo/pull/282048
This update standardizes an internal icon setting name across several Odoo apps to match the platform’s preferred naming convention. It should not change how users work, but it helps keep the interface code consistent and easier to maintain.
Original PR description
odoo/odoo#256840 introduced the `icon_class` prop to allow adding modifiers to Material Symbols icons inside OWL components. This commit refactor `icon_class` to `iconClass` to follow OWL's camelCase prop convention. Community PR: odoo/odoo#279807 task-5901783
The AI prompt interface was updated to align with the latest Odoo web framework requirements. This is an internal modernization that helps keep the AI module compatible and maintainable without changing day-to-day user workflows.
Original PR description
As part of the Owl 3 migration, replace onWillUpdateProps hook with the appropriate Owl 3 alternatives.
This update aligns document-related test and store data with what the server actually provides, reducing inconsistencies and preventing invalid extra information from being saved in the client store. It also centralizes some mock behavior used in document tests, making future maintenance more reliable without changing everyday user workflows.
Original PR description
Before this commit, three places hand the store data the server never sends, and the store keeps each extra key as a value no model declares:
- adding documents to a composer pushes the media info of the copied attachments, `res_id`, `public` and `original_id` included,
- the file viewer test answers `create_document` with a document shaped for a view,
- the test helper sets `store.odoobot` to `{ userId }`, a key res.partner does not have, so odoobot lands on a partner with no id.
This comes from a payload built for a view or for the media dialog being reused as store data: `_store_attachment_fields` sends neither `res_id` nor `public`, and `_store_document_fields` sends five fields.
This commit sends those fields in the first two, and drops the odoobot line, which `_init_store_data` already sends in `session.storeData`.
https://github.com/odoo/odoo/pull/282241The manufacturing work order display was updated to use newer platform behavior as part of the Owl 3 migration. This keeps the screen aligned with supported technology and reduces future maintenance risk without changing business functionality.
Original PR description
As part of the Owl 3 migration, replace deprecated onWillRender hooks with the appropriate Owl 3 alternatives.
This change updates several Project and Studio views to use the newer startup hook required by the latest interface framework. It preserves existing behavior while avoiding compatibility issues during the Owl 3 transition.
Original PR description
`useLayoutEffect` is gone in Owl 3: `@web/owl2/utils` re-exports `owl.useLayoutEffect`, which no longer exists. All four effects only depended on the element they styled, read through `resolveRefEl` so the dependency was never reactive. Those refs are bound to unconditional roots - the gantt grid div and the list/kanban renderer roots - so they are set once at mount and never swapped, making the effects one-shot already. Each callback only adds a class, which affects styling and not layout reads, so moving from a layout effect to the mount hook changes nothing observable. Community: https://github.com/odoo/odoo/pull/282053
This change updates the invoice and document extraction module to stay compatible with Odoo's newer interface framework. It is an internal modernization that helps keep the feature maintainable and reliable without changing day-to-day user workflows.
Original PR description
As part of the Owl 3 migration, replace onWillUpdateProps hook with the appropriate Owl 3 alternatives.