Daily updates from Odoo
Friday, December 19, 2025
4 changes · master
Code cleanup and technical improvements
To align with the removal of IoT Box support in the community version, we've consolidated all related functionality into the Enterprise module. This ensures that future IoT Box integrations and support are handled exclusively within the Enterprise offering, streamlining our product development efforts.
Original PR description
As we decided to remove support for IoT Boxes in community, we have to move all community-IoT logic to Enterprise. This commit moves everything related to IoT from `point_of_sale` to `pos_iot`. Community PR: odoo/odoo#219256 Task: 4394403
This update removes the outdated 'company_type' field from the contact model, streamlining the way we identify companies and individuals. The system now automatically determines if a contact is a company based on factors like VAT and identification types, tailored for each country's specific requirements. This simplifies the contact data structure and improves overall system efficiency.
Original PR description
This PR removes the 'company_type' field, which was previously used to distinguish between 'Person' and 'Company' contacts. The goal is to simplify the contact form and model by eliminating this distinction, as part of an effort to streamline and simplify the contact information structure. This change is in line with the broader initiative to remove legacy fields and make the model more straightforward as possible. is_company becomes a computed stored field, allowing each l10n to specify how a company is defined in a specific country. By default we will now rely on VAT and commercial entity to compute `is_company`. --- `l10n_br*` : Now considers a partner a company if their identification type is CNPJ --- `l10n_co*` : Now considers a partner a company if their identification type is RUT --- `l10n_*` : general : removed `is_company` / `company_type` from demo/tests Task-4714892
This update streamlines the customer display functionality by removing specialized code for IoT devices. Now, the display operates using the same standard mechanism as other devices, reducing complexity and maintenance needs. This change improves efficiency and reduces potential technical issues.
Original PR description
Before this commit, when the customer display was used normally, the data was sent via the websocket to any connected clients. When it was used on the IoT box however, a different system using IoT actions was used to update the display. This commit removes the special logic for the IoT case, instead just opening using the same mechanism as any other device. The display still works the same as before, but less requests are needed and there is less code to maintain.
This update simplifies the way documents are searched within Odoo Enterprise by removing a complex and unnecessary search operator. This change improves search performance and stability while addressing a technical issue related to the previous implementation. The update also aligns with best practices for document organization.
Original PR description
`child_of` `char` is weird, fragile, and not necessary. Note that we discourage the use of `user_root` for anything but searching. The compute method is only implemented to not break `filtered_domain` and should likely not be used to add the field in a view. Task-5207995