Daily updates from Odoo
Monday, July 7, 2025
5 changes · saas-18.3
Enhancements to existing features
IoT devices are now shown with a cleaner, formatted name where supported, such as in the Point of Sale configuration dropdown. This makes it easier for users to identify the device, its connection, and its IoT box at a glance.
Original PR description
Before this commit, IoT device names would dislplay in the format '[iotbox] Device Name'. After this commit, in environments with formatting enabled (such as the device dropdown when configuring in POS), we show the name with the following format: Device Name Connection IoT box Where Connection and IoT box are using muted text. task-4922608 
The IoT app now shows each device's connection status directly in the device list. This helps users quickly identify whether devices are online or disconnected without opening individual records.
Original PR description
This PR adds the connection status to the device list view in the iot app
The IoT device screens are cleaner and easier to scan. Devices are now shown with connected items first, then by name, and their connection status is visible directly in the IoT Box form.
Original PR description
We previously added an unnecessary `group by` IoT Box in the IoT device search view. It is now removed.
We also sorted devices by connection desc and name in the iot device list view in the iot box form view,
and displayed the connected/disconnected status.
Tasks: 4922609, 4922638, 4922623The dialog shown when an IoT Box is found has been updated to make the setup experience easier for users. This should help users understand the next steps more clearly when connecting IoT hardware.
Original PR description
We updated the IoT Box found dialog in order to ease user experience. Task: 4922620
Aged receivable and payable reports now avoid an unnecessary data lookup when preparing invoice date information. This improves report loading time on large accounting databases, potentially saving several minutes for businesses with very high transaction volumes.
Original PR description
The Aged Partner reports query in `_aged_partner_report_custom_engine_common` is joining on the `account_move` table solely to get the `invoice_date` column. As this `invoice_date` is aggregated in `ARRAY_AGG(DISTINCT invoice_date)` and there's already a denormalized field `invoice_date` on `account_move_line` that is a related stored field, we can drop the join and use this field instead. This saves us the need to scan the account.move table when running the reports query. In a database with 37M amls, 10M account.move (and a really bad correlation for account_move_line.move_id), this saves us around 10 minutes for the Aged Receivable report's query. Forward-Port-Of: odoo/enterprise#89325