Daily updates from Odoo
Wednesday, July 29, 2026
2 changes
Code cleanup and technical improvements
This update refreshes internal component wiring to align with the latest Owl framework behavior. It helps keep several Odoo Enterprise apps maintainable and compatible without changing user-facing features.
Original PR description
Follow-up of the community commit removing `useChildRef` and `useForwardRefToParent`: Owl 3 refs are signals, so a parent creates its ref with `signal.ref()`, hands it to the child (which binds it with `t-ref`) and reads the element by calling it instead of through `.el`.
Default values for certain records are now initialized per record instead of being shared globally, reducing the risk of confusing or unintended behavior. The WhatsApp composer patch was also cleaned up to avoid copying stray data onto the shared model definition.
Original PR description
A plain value on a model prototype, typically from patch(Model.prototype, { flag: false }), is shared data: every record of the model reads the same value, and nothing tells a reader whether it got a default or a value set on the record. Such defaults belong to the record, so they move into setup().
The whatsapp composer went through Object.assign with a stray name argument between the target and the values, so the characters of that name were copied onto the prototype as numeric keys. It uses patch() like every other model patch.
https://github.com/odoo/odoo/pull/279104