Daily updates from Odoo
Sunday, July 26, 2026
3 changes · master
Enhancements to existing features
This update modernizes how internal web interface components reference page elements, using the current framework approach. It does not change business features or workflows, but helps keep the codebase safer and easier to maintain.
Original PR description
…ef() Component ref fields were declared as `someRef = signal(null)` and bound in templates via `t-ref="this.someRef"`. This predates the introduction of `signal.ref()` in owl 3, which is functionally identical but typed as `Signal<HTMLElement | null>` instead of `Signal<null>`. Convert all such ref fields to `signal.ref()`. Non-ref value signals are left untouched.
Resolved issues and error corrections
SMS messages in marketing automation are now marked as sent when delivery reports confirm they were sent. This improves campaign status tracking and helps teams rely on more accurate SMS delivery information.
Accounting reports now correctly recognize when no report section has been opened yet. This prevents the interface from relying on an incorrect empty-state check, helping report navigation behave as expected.
Original PR description
**Root Cause:**
At [1], the condition `this.lastOpenedSectionByReport === {}` always
return `false` because JavaScript compares objects by reference
rather than by value. As a result, the code never detects when
`lastOpenedSectionByReport` is empty.
**Fix:**
This commit ensures the code correctly detects an empty
`lastOpenedSectionByReport` object.
[1]:
https://github.com/odoo/enterprise/blob/ae4b461edb1d6b49c25d4e264380e7ae4b67f10c/account_reports/static/src/components/account_report/controller.js#L50
**No task ID**
Forward-Port-Of: odoo/enterprise#125325
Forward-Port-Of: odoo/enterprise#124223