Tuesday, December 10, 2024
4 changes
2 changes
Enhancements to existing features
Australian TPAR taxes, fiscal positions, and reporting are moved out of the standard Australian accounting setup into an optional child chart of accounts. This keeps the default setup lighter for most Australian businesses while still allowing companies that need TPAR support to add it later.
Original PR description
The TPAR taxes, fiscal positions and report are not something that is used by most companies in Australia. As of now, 18 out of 35 taxes in the Australian package are TPAR taxes. This doesn't make much sense to install so much data for it to be useless by most users. So we will instead put the TPAR data into a child COA, that can be installed if needed. This PR also contains a commit that allows to install a child chart template when a company is using a parent one, in order to allow installing additional data later on if it becomes needed. Task id #4062853
Odoo Studio now uses the newer URL format so users keep a clearer navigation path and breadcrumb history while editing. This makes moving between screens more reliable, including cases where Studio opens from views without a saved underlying action.
Original PR description
Supports action stack in url, navigation is better, actions and breadcrumbs are btter handled and can be respawn. task-4356704
2 changes
Enhancements to existing features
Sales commission reporting now handles quarterly payment grouping more accurately and makes forecasts easier to review for future periods. Sales managers can better track expected commission performance by salesperson, even when no achievements have been recorded yet.
Original PR description
taskid: 4376927
Document access checks have been optimized to avoid overly complex database queries. This should make permission-related actions in Documents significantly faster, improving responsiveness for users working with document access rights.
Original PR description
## Description Most read `ir.rule` on documents are based around the searchable field `user_permission`. Both `documents.document` and `documents.access` rely on it, and its' implementation creates a…
## Description Most read `ir.rule` on documents are based around the searchable field `user_permission`. Both `documents.document` and `documents.access` rely on it, and its' implementation creates a recursive application of the ir.rule, as `documents.document` calls `_search_user_permission`, which reads on `documents.access`, whos `ir.rule` rely on `document_id.user_permission`, re-applying the same domain from `_search_user_permission`. This recursive-like behaviour creates excessively large queries with a lot of subquery, exploding the costs of it above the `jit_above_cost` threshold (500k by default), leading to slow execution, due to the JIT optimizer, which normally should be reserved for long analytical queries. ## Patch Adding `auto_join=True` on `documents.access.document_id` will transform some of the subqueries in joins, and is done in `sudo` context, avoiding re-application of the `ir.rule` while resolving itself. The simplification of the query leads to lower query cost that is bellow the `jit_above_cost` threshold, removing the slow optimisation step, leading to faster execution, as it was the main bottleneck. ## Benchmark On a db with a moderately sized `documents_document` table: | Timings | Before | After | Speed up | |-------------------------------|--------|-------|----------| | `action_update_access_rights` | 7s | 550ms | 12.7x | ## Reference task-4381572