Monday, July 7, 2025
3 changes · saas-18.3
Enhancements to existing features
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 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