Daily updates from Odoo
Thursday, June 4, 2026
6 changes
Code cleanup and technical improvements
This update addresses technical debt by migrating from outdated Owl 3 hooks to the newer Owl 3 alternatives. Specifically, unused code related to attendance Gantt charts and payroll change detection has been removed, streamlining the system and improving performance.
Original PR description
As part of the Owl 3 migration, replace deprecated onRendered hooks with the appropriate Owl 3 alternatives. In hr_attendance_gantt, remove the obsolete loadHelper logic since it is no longer used. replace the payRunId change detection in hr_payroll with a useEffect.
This update aligns the Knowledge and Sign applications with a new, standardized component for managing form status indicators. This refactoring eliminates redundant code and ensures a consistent user interface across Odoo Enterprise, improving maintainability and reducing potential errors. The previous custom status indicator in the Sign module has been removed.
Original PR description
This PR adapts the `knowledge` and `sign` applications to use the newly refactored, model-agnostic `FormStatusIndicator` component from the `web` module. Specifically, it updates the component calls to pass the newly required properties (`isDirty`, `isValid`, `isNew`, `save`, `discard`) instead of the `RelationalModel`. In `sign`, the custom `SignStatusIndicator` implementation has been removed and replaced by extending the core `FormStatusIndicator`, eliminating duplicated logic and ensuring consistent behavior with the rest of the application. **Related Community PR:** https://github.com/odoo/odoo/pull/264066 **Task:** 4422555
This update refactors several Odoo addons (including marketing automation, MRP, POS, and planning) to use a new proxy-based approach instead of `useState`. This change improves the underlying architecture and prepares the system for future development. It impacts multiple modules within the enterprise suite.
Original PR description
In Owl3, uses of `useState` or replace with `proxy`. This commit changes all those uses for addons in the range [m..!w]. *: marketing_automation,mrp_workorder,planning,pos_appointment,pos_blackbox_be,pos_enterprise,pos_iot_six,pos_platform_order,pos_restaurant_appointment,pos_sale_planning,pos_tyro,pos_urban_piper,quality_mrp_workorder,room,sale_planning,sale_renting,sale_timesheet_enterprise,sign,sign_emsigner,social,social_linkedin,social_push_notifications,social_twitter,social_youtube,spreadsheet_dashboard_edition,spreadsheet_edition,spreadsheet_sale_management,stock_barcode,stock_barcode_mrp,timer,timesheet_grid,timesheet_grid_hr_attendance,voip
This update modernizes the bank reconciliation widget by replacing outdated React techniques with a more efficient system. Specifically, it removes the use of `useLayoutEffect`, which is now deprecated, and utilizes signals for automatic data updates, resulting in a smoother user experience. This change improves performance and aligns with current best practices.
Original PR description
Replace useState + useLayoutEffect with computed/signal from OWL3: - accountMoveLines, linesToReconcile, suspenseAccountLine, and reconciledLineName are now computed signals that re-derive automatically when line_ids changes, removing the need for _updateLinesState() and its useLayoutEffect trigger - isUnfolded is a plain signal (writable boolean) - Drop fold/unfold which were unused. WHY: useLayout effect is deprecated NOTE: This widget was tested with the tour `test_tour_bank_rec_widget` but may still contain some errors
This update addresses a technical issue related to the Gantt chart library by replacing an outdated component. This change ensures the Gantt chart continues to function correctly and avoids potential future compatibility problems. It's a routine maintenance update.
Original PR description
Replaces useLayoutEffect with [xxx] WHY: UseLayoutEffect is deprecated in OWL3
This update removes an outdated method of passing data through notifications, streamlining the notification process and simplifying the underlying code. This change improves efficiency and reduces unnecessary data access, leading to better performance and maintainability.
Original PR description
Purpose: get rid of "msg_vals" added in various notification methods. Its purpose is to avoid browsing message records when values are available to avoid redundant accesses (see https://github.com/odoo/odoo/pull/32404 ). This is now quite an old school approach, and with time and overrides part of its benefits were lost. In this task we remove message values propagation, using message record as source of values. This allows to simplify API of several methods as well as code. Some query counters are higher, as we have to fetch some values that were previously found in message values. Next step is to check if cache usage can be improved in order to avoid queries if those are annoying or might create performance issues. Task-4845982