Daily updates from Odoo
Wednesday, August 5, 2026
7 changes
1 change
Code cleanup and technical improvements
The live chat helpdesk panel was simplified to avoid a duplicated check when showing open tickets. This reduces the risk of crashes or inconsistent behavior and adds test coverage to keep the ticket information block reliable.
Original PR description
Enterprise counterpart of "[FIX] crm_livechat, *: prevent crash in the info panel", which explains why the condition of the caller goes away. This commit drops the same condition on the "Open tickets" block, and covers that block with a test. https://github.com/odoo/odoo/pull/280430 Forward-Port-Of: odoo/enterprise#126715
6 changes
Code cleanup and technical improvements
This update modernizes part of the Documents app so it remains compatible with the next version of the underlying interface framework. It preserves existing behavior for document selection and topbar actions, reducing the risk of stale or incorrect action buttons for users.
Original PR description
Replaced `useLayoutEffect` (from `@web/owl2/utils`) with `onMounted` + `onPatched` because `useLayoutEffect` is deprecated in OWL3. `useLayoutEffect`'s shim is literally `onMounted + onPatched` with…
Replaced `useLayoutEffect` (from `@web/owl2/utils`) with `onMounted` + `onPatched` because `useLayoutEffect` is deprecated in OWL3. `useLayoutEffect`'s shim is literally `onMounted + onPatched` with a deps-diff guard; a native reactive `useEffect` does NOT work here — it runs outside OWL's patch lifecycle and stops re-running once the first selection settles, leaving topbar actions stale. A manual diff of `[this.props.targetRecords, this.ui.isSmall]` inside `onPatched` reproduces the post-patch, gated recompute the original shim performed. The useLayoutEffect refactored in this PR had test coverage — below are some tests that failed when the effect was commented out, and are now passing: - @documents/kanban_view/Check actions with preview - @documents/kanban_view/Download button availability - @documents/list_view/only show common available actions see commented-out runbot build: https://runbot.odoo.com/runbot/batch/2593680/build/114734104 `useEffect` from `@odoo/owl` is NOT an equivalent replacement — despite both `this.props.targetRecords` and `this.ui.isSmall` being reactive signals, the effect stops firing after the first selection settles. Only patch-tied lifecycle hooks sustain the subscription.
The Documents module was updated to use a newer internal approach that aligns with the next version of Odoo's interface framework. This reduces maintenance risk and adds test coverage to help ensure document selection actions continue working correctly.
Original PR description
Replaced `useLayoutEffect` with `computed()` signals because `useLayoutEffect` is deprecated in OWL3. Both `recordsToDelete` and `recordsToArchive` are pure derived values from `this.selection`. Using `computed()` removes the effect entirely, making the reactive dependency explicit with no layout-effect overhead. When commenting out the useLayoutEffect there was no error, the code we refactored had NO TEST coverage. A test was written to ensure our fix was correct, and it was tested against the previous useLayoutEffect: - Passed with previous useLayoutEffect. - Failed with previous useLayoutEffect commented. - Passed with our OWL3 replacement.
Manufacturing work orders and VoIP calling screens were updated to use Odoo's newer overlay framework. This is an internal modernization that helps keep these interfaces compatible with the latest platform changes, with no expected functional change for users.
Original PR description
`overylayService` has been converted to an OWL3 Plugin, so existing useService("overlay") call sites need to be rewritten.
This commit is the result of the owl3-migration script.The Documents app’s drag-and-drop area was updated to use the current supported framework approach, reducing future maintenance risk. A new automated test was added to confirm the drop zone still reacts correctly while scrolling and dragging files.
Original PR description
Replaced the `useLayoutEffect` in `DocumentsDropZone` that registered dragover, dragleave, and scroll listeners on `props.parentRoot()` and tracked `scrollTop` for overlay positioning. Used…
Replaced the `useLayoutEffect` in `DocumentsDropZone` that registered dragover, dragleave, and scroll listeners on `props.parentRoot()` and tracked `scrollTop` for overlay positioning. Used `useListener` from `@odoo/owl` and a class-level `signal(0)` for the scroll offset. `useLayoutEffect` is deprecated in OWL3. `useListener` is the idiomatic OWL3 API for external listeners: it accepts the ref getter directly as its target, subscribes to it reactively, and handles add/remove lifecycle automatically — no manual cleanup or `onMounted`/`onUnmounted` pairing required. The `proxy` state property for `topOffset` was replaced with a `signal(0)` so the template reads `this.topOffset()` with fine-grained reactivity. When commenting out the useLayoutEffect there was no error, the code we refactored had NO TEST coverage. A test was written to ensure our fix was correct, and it was tested against the previous useLayoutEffect: - Passed with previous useLayoutEffect. - Failed with previous useLayoutEffect commented. - Passed with our OWL3 replacement.
Point of Sale orders now receive their required references before the order is created. This helps prevent initialization issues in localized invoicing, payment settlement, and connected POS flows, making order processing more reliable.
Original PR description
Before this commit: ==== - In the createNewOrder method, the pos.order was created first, and the references were set afterward using getNextOrderRefs. After this commit: ==== - References are now set before creating the pos.order instance, ensuring proper initialization. task-4677391 Community PR - https://github.com/odoo/odoo/pull/205859
The Luxembourg reporting test data has been moved into separate XML files, making the test suite easier to navigate and maintain. This is an internal cleanup that does not change product behavior for users.
Original PR description
Each expected FAIA content is around 700 lines long. It is cumbersome to navigate the file. This commit moves the expected FAIA content to their own files. This has the added bonus of adding xml syntax highlighting to the file if one uses VSCode or a similar program.