1744870d8de56d930c5dfae892a70b25098070b7
The master plan finally comes to an end. Thanks to: - odoo/odoo#87522 refactoring `load_views`, - odoo/odoo#94337 refactoring `common.Form` to prevent changing invisible fields in unit tests using `Form` instances, - odoo/odoo#95729 refactoring the behavior of `groups=` in views, - odoo/odoo#98551 removing the need of the `groups_id` many2many field on back-end views. The result returned by `get_view`/`get_views` can now finally be easily and efficiently cached, in order to cache back-end views. The goal of this revision is to cache the model views and fields already post-processed for the web client (with the modifiers, etc., already computed) without group restriction. Then, from this cached version, post-process group related features, such as removing nodes restricted with a `groups=` attribute, set the create/write button according to the user access rights to models, ... Not including the groups in the cache key allows: - to have less cached versions, (otherwise it would be one cached version per different group combination) - to not have to fetch the user groups to compute the key (with the current cache key, there is nothing to fetch from the database to compute the key) Besides, post-processing the groups features after taking the view from the cache of the view doesn't take a tremendous time: - parsing arch from/to string with etree is fast, - removing the `groups=` nodes using etree is fast, - adding the `create="False"`, `write="False"`, `delete="False"` on the view root node according to the access right of the user on the model is fast. This allows way faster calls to `get_views` by the web client, as the server no longer need, for each call, to fetch the views in database, combine the inherited views, post-process the modifiers attributes, etc. Timing tests are available on the pull request of this revision. Part-of: odoo/odoo#99417
…
…
…
…
…
…
…
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%