3e151bf30a2199c1bdcfef78666cbc0f86d1bbf9
By definition, views are useless without the web client. The web client is in the module `web`. Therefore, in a perfect world, the `get_views` model method and any related method should be within the `web` module, as without it they are useless. Let's imagine you would like to use fully in command-line, without web client, all those view related methods are useless. Maybe excepted for reports, as you might still like to be able to print reports while using odoo fully in command line. Views related method therefore shouldn't be in `odoo/models.py`. Also, when you think about it, `get_views` related methods do not make sense without the model `ir.ui.view`, which is loaded after the `get_views` related methods, which also doesn't make sense. However, moving these methods fully in the `web` module is an harder work. For instance, there are base models, such as res.partner, already overriding `get_view` in the `base` module, and therefore relying on these view related methods. As a first step, we move view related methods direcly in the `odoo/addons/base/models/ir_ui_view.py` file, where the `ir.ui.view` model is loaded. This is not only a design / cleaning change, but a required change to be able to use content of `odoo.tools.config`, which is loaded after `odoo/models.py`. For instance, if you want to configure a conditional decorator based on the config `odoo.tools.config['dev_mode']`, it is not possible to do so in `odoo/models.py` because the config is parsed/loaded after `odoo/models.py`. The config is loaded here: https://github.com/odoo/odoo/blob/31de2b0a7a0921cab3c6c54045d15da46c8e6d8a/odoo/cli/server.py#L127 While, within the same file, `odoo/models.py` gets loaded through the `import odoo` https://github.com/odoo/odoo/blob/31de2b0a7a0921cab3c6c54045d15da46c8e6d8a/odoo/cli/server.py#L26 And we would like to put such a decorator based on `odoo.tools.config['dev_mode']` on `_get_view_cache`, to not cache the back-end views when `--dev xml` is passed in the server arguments. X-original-commit: 0901adc38a724aec75676285977f1905a84ed8ee Part-of: odoo/odoo#102117
…
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%