Daily updates from Odoo
Tuesday, August 11, 2026
10 changes
1 change
Code cleanup and technical improvements
We now use `sys.excepthook` and `threading.excepthook` to catch any unhandled exception in the logfile. This improvement allows logging exceptions as a whole instead of line by line. This will simplify debugging with Sentry.
Original PR description
We now use `sys.excepthook` and `threading.excepthook` to catch any unhandled exception in the logfile. This improvement allows logging exceptions as a whole instead of line by line. This will simplify debugging with Sentry.
9 changes
Code cleanup and technical improvements
This update refreshes part of the Sign document page’s internal setup so it works correctly with the newer interface framework. It helps ensure signing documents initialize at the right time without changing the signing experience for users.
Original PR description
The two `useLayoutEffect` call-sites in `sign/.../document_signable.js` were already migrated to native OWL3 APIs and merged in odoo/enterprise#121285 (landed `c1ba215c0e0`, 2026-07-03), then…
The two `useLayoutEffect` call-sites in `sign/.../document_signable.js` were already migrated to native OWL3 APIs and merged in odoo/enterprise#121285 (landed `c1ba215c0e0`, 2026-07-03), then re-introduced by `2dbde0eb232` — the t-ref → Owl 3 signals migration (odoo/enterprise#123261, authored 2026-07-02, landed 2026-07-19, i.e. written against the pre-migration code and resolved in its favour). This is **not** a revert of the signals work. #121285 could turn the first effect into a plain `onMounted` because the parent element was available by then; that no longer holds. The backend now passes `parent` as a `signal(null)` t-ref which is only populated on mount, so both effects have to re-run when it lands. Both therefore become native `useEffect`s, subscribed through a tracked `getParentEl()` read. `getDataFromHTML` and the geolocation branch both reach the parent through `resolveRefEl`, which UNTRACKS — so it cannot be what subscribes them, and the explicit tracked read is what makes the effects re-fire on mount. Community: odoo/odoo#281132
Belgian payroll assimilation calculations now rely on configurable rule categories and work entry types instead of fixed internal lists. This makes the payroll setup easier to maintain and reduces the risk of future updates requiring code changes.
Original PR description
Assimilations are computed based on a hardcoded list of time types. In this PR, we remove the class methods used to return these hardcoded lists, and instead, we use rule categories and work entry types. __ task-6316440
This update modernizes internal Documents app code to stay compatible with the next Odoo web framework version. Users should not see functional changes, but the change helps keep document selection, drag-and-drop, and bulk actions reliable over time.
Original PR description
Removes deprecated `useLayoutEffect` (OWL3) from three `documents` components. Combines three individually-reviewed changes into one PR; each is kept as its own commit. - **documents_action** (`documents_action.js`) — `useLayoutEffect` → `onMounted` + `onPatched` with a manual `[targetRecords, ui.isSmall]` diff (native `useEffect` stops firing after the first selection settles). Was #121060. - **documents_drop_zone** (`documents_drop_zone.js/.xml`) — `useLayoutEffect` → `useListener` on the ref getter + a `signal(0)` scroll offset; adds test coverage. Was #121066. - **documents_renderer_mixin** (`documents_renderer_mixin.js`) — `useLayoutEffect` → `computed()` signals for `recordsToDelete` / `recordsToArchive`; adds test coverage. Was #121063. Supersedes #121060, #121066, #121063.
This update adjusts how customization record identifiers are prepared before being saved, making them compatible with newer database handling. It also aligns accounting report data type handling with stored field definitions, reducing the risk of technical errors without changing day-to-day user workflows.
Original PR description
The value should be of the type to insert to use with SQL wrapper. https://github.com/odoo/odoo/pull/281121
Time zone settings are being moved from individual work schedules to the company level. This simplifies configuration and helps keep attendance, leave, payroll, planning, project, and maintenance calculations consistent across business processes.
Original PR description
This commit removes the timezone field on resource_calendar and adds a new timezone field on the company. task-5124688
The pricing label management features have been moved into their own Pricer app so they can be reused beyond Point of Sale, such as in Inventory. This also makes Pricer store and tag management accessible from the Inventory app, supporting broader operational use.
Original PR description
We extract `pricer` logic from `pos_pricer` to later use pricer in other modules (e.g. `stock`). task-6377740
The room booking screens were updated as part of Odoo's move to a newer interface framework. This is an internal modernization that helps keep the room booking feature compatible and maintainable without changing the expected user experience.
Original PR description
As part of the migration from `owl 2` to `owl 3`, this commit replaces uses of `t-custom-model` with `t-model` or `t-model.proxy`.
This update streamlines how several Odoo apps manage shared interface settings behind the scenes. It reduces duplicate technical mechanisms, making future maintenance easier without introducing a visible change for everyday users.
Original PR description
This commit unifies `useSubEnv` and `useChildSubEnv` and removes the latest. The unification simplifies the env management. we can now use `useEnv` anywhere even in a plugin. `useChildEnv` was meant to be used in plugins but it can now be replaced by `useEnv`. `provideEnv` is also removed, there was no occurence and it existed only because of the compatibility layer.
The website generator was updated to align with the newer interface framework used by Odoo. This is an internal modernization that helps keep the module maintainable during the platform migration, with no expected change for day-to-day users.
Original PR description
As part of the migration from `owl 2` to `owl 3`, this commit replaces uses of `t-custom-model` with `t-model` or `t-model.proxy`. Community: https://github.com/odoo/odoo/pull/273883