Wednesday, September 16, 2026
4 changes · 17.0
Enhancements to existing features
This update ensures that changes to related records made through background context commands follow the same permission rules as normal field updates. It prevents unauthorized actions from being silently skipped, making access behavior more consistent and predictable for users.
Original PR description
Some commands may perform a change on related records by using Commands. When passed through the context, unallowed actions are ignored instead of rising access errors. This check aligns the behaviour with normal writes of fields. A test in `project` module shows this behaviour. Backport of odoo/odoo#258845 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#288162
Resolved issues and error corrections
The accounting prediction logic now uses the most recent past entries instead of older records. This helps ensure suggested accounting values are based on relevant recent activity, improving reliability for users.
Original PR description
This commit: https://github.com/odoo/enterprise/pull/38830/changes#diff-6f6931855e0903ff0d3f2b39bd5703ceaef9bdf9a516862b83f38d2d5b21a232 change the order of the predictive queries, removing the sorting order by date. Based on the current docstring: https://github.com/odoo/enterprise/blob/66682012145e5116ebec0183102bc5e930c2c343/account_accountant/models/account_move.py#L676 this is not correct, as we expect to retrieve the previous 100 entries, rather than the oldest ones. Correcting the query order ensures that the most recent entries are considered for predictive purposes. opw-6558929
Theme updates now correctly remove website-specific copies and related inherited views when a theme view is deleted. This prevents update failures and helps keep website themes maintainable when theme data changes.
Original PR description
When a record disappears from a theme's data files, updating that theme deletes its per-website copies. The context built for `copy_ids` in `_process_end_unlink_record` used the literal `'MODULE_UNINSTALL_FLAG'` instead of the constant, and passed it as a positional dict, which replaces the whole context rather than extending it. `ir.ui.view.unlink` therefore did not cascade to the inheriting views and the `inherit_id` foreign key refused the deletion, aborting the theme update. Reported by: https://github.com/odoo/odoo/issues/286171
This fix ensures purchase order notification templates are updated properly during upgrades instead of being locked as non-updatable data. It helps prevent rendering errors when migrated databases process purchase order line changes, such as price-only updates.
Original PR description
In this commit: https://github.com/odoo/odoo/commit/eadf1270ed515424aeffcc713ca39d193b9ed6f1 the `track_po_line_template` template was added in a `noupdate` file. The commit specifies: “put their…
In this commit: https://github.com/odoo/odoo/commit/eadf1270ed515424aeffcc713ca39d193b9ed6f1 the `track_po_line_template` template was added in a `noupdate` file. The commit specifies: “put their declaration in no update when not done if template has no technical code or complex dependency on underlying code;” However, this is not actually the case for the two templates in this file. This did not cause any error in v17, but errors started appearing later because of https://github.com/odoo/odoo/pull/254602, which modified this code and the related Python code, leading to an error when no product quantity is changed. Steps to reproduce in a 19.3 database migrated from v19: - Create a purchase order with one product line and confirm it. - Only change the unit price of that line. - Error: "Error rendering template: ..." While this can also be considered a migration issue, I think the simpler and more logical solution is to remove the noupdate from this file. Also, this targets v17 to avoid the same potential error in this file in the future. opw-6518729