Tuesday, September 1, 2026
3 changes · saas-19.3
Enhancements to existing features
Shift planning now continues to suggest generic templates even when a shift is linked to a specific project or worksheet. This makes template suggestions more flexible and consistent with role-based suggestions, helping planners reuse standard templates more easily.
Original PR description
*_ = planning_field_service_worksheet - When a shift has a project or a worksheet, only templates matching that exact value were suggested. Roles already also include templates with an empty value. - Do the same for project and worksheet so generic templates remain available. task-6364228
The timesheet assistant now gives more importance to recent work patterns, so suggestions adapt faster when employees move to new projects or tasks. It also keeps stored history leaner and improves matching reliability, reducing outdated or irrelevant recommendations.
Original PR description
Previously, the timesheet assistant's local configuration matched activities to projects/tasks using a strict historical tally. A match made 6 months ago carried the exact same mathematical weight as a match made today. This caused old habits to stubbornly override new assignments. This commit introduces an exponential time-decay algorithm to the frequency computation: - Matches are now weighted based on their `datetime` stamp. - The weight drops by 50% every 5 days (half-life algorithm). - Recent timesheet entries quickly accumulate enough fractional votes to surpass the decayed votes of older, outdated projects. in this commit i updated the matching of local rules to be case sensitive for better matching (eg. "Meeting with client" is the same as "meeting with client") Task: 6267713 Forward-Port-Of: odoo/enterprise#124669
Settling sales orders in the Point of Sale is now faster, especially for large orders with many lines. The change reduces repeated server calls and screen refreshes, improving cashier responsiveness and reducing waiting time during checkout.
Original PR description
In `settleSO`, two per-line bottlenecks were addressed: 1. `has_valued_move_ids` was called once per order line via a separate RPC, causing N sequential HTTP round-trips. It is now computed server-side inside `read_converted`, which is already called once for all lines. 2. `addLineToCurrentOrder` was awaited per line, yielding to the event loop each iteration and triggering a full Owl re-render for every line. Lines are now created directly, batching all mutations into a single render. `recomputeOrderData()` is called once after the loop. `updatePrograms` is moved to a `pos_sale_loyalty` patch on `settleSO` so the loyalty concern belongs to the bridge module. opw-6319922 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#285452 Forward-Port-Of: odoo/odoo#271742