From c7c2959449effdf0e26f2e2c8e2cdd232a27ca62 Mon Sep 17 00:00:00 2001 From: Jorge Pinna Puissant Date: Tue, 29 Nov 2022 17:12:32 +0000 Subject: [PATCH] [IMP] web, *: simplification and standardization of the settings arch The aim of this commit is to simplify and standardize the settings archs. To do this, a small DSL exclusively for the settings was created. This new DSL introduces 3 tags: `app`, `block` and `setting`. The `app` tag is used to declare the application on the settings view. It creates an entry with its logo on the sidebar of the view. It also acts as delimiter when searching. ```xml ... ``` - `string` : The "display" name of the application. - `name` : The technical name of the application (the name of the module). - `logo` *optional* : The relative path to the logo. If not set, the logo is created using the `name` parameter : `/{name}/static/description/icon.png`. The `block` tag is used to declare a group of settings. This group can have a title and a description/help. ```xml ... ``` - `title` *optional* : The title of the block of settings (the old h2), you can perform research on its text. - `help` *optional* : The description/help of the block of settings (the old h3), you can perform research on its text. The `setting` tag is used to declare the setting itself. The first field in the setting is used as the main field (optional). This field is placed on the left panel (if it's a boolean field) or on the top of the right panel (otherwise). The field is also used to create the setting label if a `string` is not defined. The `setting` tag can also contain more elements (e.g. html), all of these elements are rendered in the right panel. ```xml ...More elements ``` - `type` *optional* : By default, a setting is visually separated on two panels (left and right), and is used to edit a given field. By defining `type='header'`, a special kind of setting is rendered instead. This setting is used to modify the scope of the other settings. For example, on the website application, this setting is used to indicate to which website the other settings apply. The header setting is visually represented as a yellow banner on the top of the screen. - `string` *optional* : The text used as label of the setting. If it's not defined, the first field is used as label. - `title` *optional* : The text used as tooltip. - `help` *optional* : The help/description of the setting. This text is displayed just below the setting label (with classname `text-muted`). - `company_dependent` *optional* : If this attribute is set to "1" an icon is displayed next to the setting label to explicit that this setting is company-specific. - `documentation` *optional* : If this attribute is set, an icon is added next to the setting label, this icon is a link to the documentation. Note that you can use relative or absolute path. The relative path is relative to `https://www.odoo.com/documentation/server_version`, so it's not necessary to hard-code the server version on the arch anymore. closes odoo/odoo#106425 Task-id: 3081367 Related: odoo/enterprise#34337 Signed-off-by: Aaron Bohy (aab) Co-authored-by: "Michael Mattiello (mcm)" --- .../views/res_config_settings_views.xml | 903 +++++----------- .../views/res_config_settings_views.xml | 4 +- .../views/res_config_settings_views.xml | 31 +- .../views/res_config_settings_views.xml | 12 +- .../views/res_config_settings_views.xml | 38 +- .../views/res_config_settings_views.xml | 22 +- .../views/res_config_settings_views.xml | 456 +++------ .../views/res_config_settings_views.xml | 21 +- .../crm/views/res_config_settings_views.xml | 224 ++-- .../views/res_config_settings_views.xml | 4 +- .../views/res_config_settings_views.xml | 2 +- .../views/res_config_settings_views.xml | 34 +- .../event/views/res_config_settings_views.xml | 144 +-- .../fleet/views/res_config_settings_views.xml | 27 +- .../views/res_config_settings_view.xml | 4 +- addons/hr/views/res_config_settings_views.xml | 134 +-- .../views/res_config_settings_views.xml | 148 +-- .../views/res_config_settings_views.xml | 111 +- .../views/res_config_settings_views.xml | 92 +- .../views/res_config_setting_views.xml | 4 +- .../views/res_config_settings_views.xml | 154 +-- .../action_buttons_widget.js | 6 + addons/iap/views/res_config_settings.xml | 22 +- .../views/res_config_settings_view.xml | 7 +- .../views/res_config_settings_views.xml | 56 +- .../views/res_config_settings_view.xml | 9 +- .../views/res_config_settings_view.xml | 51 +- .../views/res_config_settings_views.xml | 75 +- .../views/res_config_settings_views.xml | 33 +- .../views/res_config_settings_views.xml | 21 +- .../views/res_config_settings_views.xml | 46 +- .../views/res_config_settings_views.xml | 73 +- .../views/res_config_settings_views.xml | 16 +- addons/lunch/views/res_config_settings.xml | 52 +- .../mail/views/res_config_settings_views.xml | 185 ++-- .../views/res_config_settings_views.xml | 83 +- .../mrp/views/res_config_settings_views.xml | 178 +--- .../views/res_config_settings_views.xml | 4 +- .../views/res_config_settings_views.xml | 964 ++++++------------ .../views/res_config_settings_views.xml | 11 +- .../views/res_config_settings_views.xml | 2 +- .../views/res_config_settings_view.xml | 2 +- .../views/res_config_settings_views.xml | 115 +-- .../views/res_config_settings_views.xml | 45 +- .../views/res_config_settings_views.xml | 67 +- .../views/res_config_settings_views.xml | 16 +- .../views/res_config_settings_views.xml | 166 +-- .../views/res_config_settings_views.xml | 2 +- .../views/res_config_settings_views.xml | 195 +--- .../views/res_config_settings_views.xml | 65 +- .../sale/views/res_config_settings_views.xml | 526 +++------- .../views/res_config_settings_views.xml | 54 +- .../views/res_config_settings_views.xml | 2 +- .../views/res_config_settings_views.xml | 66 +- .../views/res_config_settings_views.xml | 37 +- .../sms/views/res_config_settings_views.xml | 4 +- .../views/res_config_settings_views.xml | 4 +- .../stock/views/res_config_settings_views.xml | 575 +++-------- .../views/res_config_settings_views.xml | 44 +- .../views/res_config_settings_views.xml | 6 +- .../web/static/src/views/form/form_label.js | 3 +- .../form_label_highlight_text.js | 14 - .../highlight_text/settings_radio_field.js | 4 +- .../highlight_text/settings_radio_field.xml | 4 +- .../settings_form_view/settings/setting.js | 95 +- .../settings_form_view/settings/setting.xml | 29 +- .../settings/setting_header.js | 17 + .../settings/setting_header.xml | 20 + .../settings/settings_app.js | 7 + ...ettings_container.js => settings_block.js} | 14 +- ...tings_container.xml => settings_block.xml} | 4 +- .../settings/settings_page.js | 5 + .../settings/settings_page.xml | 44 +- .../settings_form_compiler.js | 184 ++-- .../settings_form_renderer.js | 6 +- .../widgets/res_config_dev_tool.js | 8 +- .../widgets/res_config_dev_tool.xml | 8 +- .../widgets/res_config_edition.js | 7 +- .../widgets/res_config_edition.xml | 6 +- .../widgets/res_config_invite_users.js | 7 +- .../webclient/settings_form_view_tests.js | 88 +- .../settings_form_view_tests.js | 664 +++++------- .../settings_upgrade_boolean_field_tests.js | 38 +- .../views/res_config_settings_views.xml | 387 +++---- .../views/res_config_settings_views.xml | 4 +- .../views/res_config_settings_views.xml | 18 +- .../views/res_config_settings_views.xml | 11 +- .../views/res_config_settings_view.xml | 26 +- .../views/res_config_settings_views.xml | 4 +- .../views/res_config_settings_views.xml | 61 +- .../views/res_config_settings_views.xml | 22 +- .../views/res_config_settings_views.xml | 4 +- .../views/res_config_settings_views.xml | 546 +++------- .../views/res_config_settings_views.xml | 2 +- .../views/res_config_settings_views.xml | 24 +- .../views/res_config_settings_views.xml | 4 +- .../views/res_config_settings_views.xml | 2 +- .../views/res_config_settings_views.xml | 2 +- .../views/res_config_settings_views.xml | 64 +- .../views/res_config_settings_views.xml | 105 +- .../views/res_config_settings_views.xml | 2 +- .../views/res_config_settings_views.xml | 2 +- .../views/res_config_settings_views.xml | 82 +- odoo/addons/base/tests/test_res_config.py | 28 +- .../base/views/res_config_settings_views.xml | 3 - 105 files changed, 2992 insertions(+), 6141 deletions(-) create mode 100644 addons/web/static/src/webclient/settings_form_view/settings/setting_header.js create mode 100644 addons/web/static/src/webclient/settings_form_view/settings/setting_header.xml rename addons/web/static/src/webclient/settings_form_view/settings/{settings_container.js => settings_block.js} (84%) rename addons/web/static/src/webclient/settings_form_view/settings/{settings_container.xml => settings_block.xml} (72%) diff --git a/addons/account/views/res_config_settings_views.xml b/addons/account/views/res_config_settings_views.xml index 1b4dc221831..b1dfbb43112 100644 --- a/addons/account/views/res_config_settings_views.xml +++ b/addons/account/views/res_config_settings_views.xml @@ -18,687 +18,312 @@ - + -
+ -

Fiscal Localization

-
-
-
-
- Fiscal Localization - -
- Taxes, fiscal positions, chart of accounts & legal statements for your country -
-
-
-
-
-
-
-
-
-
-

Taxes

-
-
-
-
- Default Taxes - -
- Default taxes applied to local transactions -
-
-
-
-
-
-
-
-
-
-
-
- Rounding Method - -
- How total tax amount is computed in orders and invoices -
-
- -
-
-
-
-
-
- Cash Discount Tax Reduction - -
- When will the tax be reduced when offering a cash discount -
-
- -
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
- Fiscal Country - -
- Domestic country of your accounting -
-
- -
-
-
-
-

Currencies

-
-
-
-
- Main Currency - -
- Main currency of your company -
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-

Customer Invoices

-
-
-
-
-
- Default Sending Options -
- Those options will be selected by default when clicking "Send & Print" on invoices -
-
-
-
- -
-
- -
-
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-