Daily updates from Odoo
Wednesday, October 1, 2025
6 changes · master
Enhancements to existing features
Employee version records now track changes to most business-relevant HR fields across payroll, contracts, salary, holidays, attendance, signing, accounting, and country-specific payroll areas. This improves transparency by making it easier to review when important employee-related information was changed and supports stronger auditability.
Original PR description
Most fields in hr.version represent business-relevant employee data that should be tracked to ensure a complete audit trail. This commit adds `tracking=True` by default on hr.version fields across community and enterprise modules. task-5022109 Forward-Port-Of: odoo/enterprise#95625 Forward-Port-Of: odoo/enterprise#92601
The bank reconciliation kanban quick-create process has been simplified so entries are saved as soon as the required information is available. This should make reconciliation workflows smoother for accounting users while reducing custom maintenance behind the scenes.
Original PR description
Task~5072955
The website generator now accounts for changes introduced in Odoo 19.0 eCommerce building blocks. This helps ensure generated websites use the right scraper behavior for the Odoo version, reducing compatibility issues when creating or updating online stores.
Original PR description
Corresponding IAP PR: https://github.com/odoo/iap-apps/pull/1196 Forward-Port-Of: odoo/enterprise#94389
This update introduces a dedicated form view for VoIP calls, making call details easier to review and manage. It also includes several related improvements and fixes across accounting, AI, point of sale, spreadsheets, and subscriptions to improve daily workflows and reliability.
VoIP calls can now be recorded directly in the user's browser as an early proof of concept. This helps explore easier call capture without server-side storage, with recordings downloaded locally after the call ends.
Creating repair orders is now much faster when the system has a very large number of quality rules. The process uses the database more efficiently and avoids overly large queries, reducing delays for businesses with heavy quality control data.
Original PR description
Description ----------- Creating a repair creates new `quality.check` based on `quality. point`s. When you have many matching points to explore, the `filtered_domain` can be pretty slow when…
Description ----------- Creating a repair creates new `quality.check` based on `quality. point`s. When you have many matching points to explore, the `filtered_domain` can be pretty slow when processing linear the records to compute the intersection between the all points and the points that should be associated with the repair. This commit rewrites `_create_quality_checks_for_repair` to use a `search` instead if necessary, to offload the intersection search in the database. We also split the ids to not inject a large list of ids in the query. Benchmark --------- For a database that will have 500k `quality.point` that satisfies the domain of `quality.point._get_domain`, the invocation of `_create_quality_checks_for_repair` for creating a Repair takes (excluding the `create` call time): | | Before | After | |---------|------------------|-------| | Timings | Timeout (15+min) | 1 min | Reference --------- opw-4980036 Forward-Port-Of: odoo/enterprise#95700 Forward-Port-Of: odoo/enterprise#91729