summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorParth Choksi <pch@odoo.com>2019-07-30 09:42:17 +0000
committerYannick Tivisse <yti@odoo.com>2019-08-21 12:12:33 +0000
commitebaa132d5d1e93e122a645bcf9a8eeff1b478b0a (patch)
treee2fe0b22a6089a06fa0daa9526b7c591b048a6f9
parent1576c91c9a3f0e56fcb1c953c396eac22b4d9754 (diff)
[IMP] various: Clean settings UX (back2basics)
TaskID: 2028958 closes odoo/odoo#35551 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
-rw-r--r--addons/account/views/res_config_settings_views.xml12
-rw-r--r--addons/account_analytic_default/views/res_config_settings_views.xml2
-rw-r--r--addons/auth_ldap/views/res_config_settings_views.xml2
-rw-r--r--addons/auth_oauth/views/res_config_settings_views.xml2
-rw-r--r--addons/auth_signup/views/res_config_settings_views.xml2
-rw-r--r--addons/base_setup/views/res_config_settings_views.xml12
-rw-r--r--addons/crm/models/crm_lead.py2
-rw-r--r--addons/crm/models/res_config_settings.py1
-rw-r--r--addons/crm/views/res_config_settings_views.xml44
-rw-r--r--addons/delivery/views/res_config_settings_views.xml2
-rw-r--r--addons/digest/views/res_config_settings_views.xml2
-rw-r--r--addons/fetchmail/views/res_config_settings_views.xml4
-rw-r--r--addons/google_drive/views/res_config_settings_views.xml10
-rw-r--r--addons/hr/models/res_config_settings.py12
-rw-r--r--addons/hr/views/res_config_settings_views.xml30
-rw-r--r--addons/hr_expense/views/res_config_settings_views.xml15
-rw-r--r--addons/hr_recruitment_survey/views/res_config_setting_views.xml2
-rw-r--r--addons/hr_timesheet/models/res_config_settings.py2
-rw-r--r--addons/hr_timesheet/views/res_config_settings_views.xml4
-rw-r--r--addons/iap/views/res_config_settings.xml6
-rw-r--r--addons/l10n_eu_service/views/res_config_settings_views.xml2
-rw-r--r--addons/lunch/views/res_config_settings.xml1
-rw-r--r--addons/mail/views/res_config_settings_views.xml2
-rw-r--r--addons/mass_mailing/models/res_config_settings.py6
-rw-r--r--addons/mass_mailing/views/res_config_settings_views.xml16
-rw-r--r--addons/mrp/views/res_config_settings_views.xml20
-rw-r--r--addons/phone_validation/models/__init__.py1
-rw-r--r--addons/phone_validation/models/phone_validation_mixin.py8
-rw-r--r--addons/phone_validation/models/res_company.py17
-rw-r--r--addons/point_of_sale/views/res_config_settings_views.xml8
-rw-r--r--addons/project/views/res_config_settings_views.xml2
-rw-r--r--addons/purchase/models/purchase.py4
-rw-r--r--addons/purchase/models/res_config_settings.py2
-rw-r--r--addons/purchase/security/purchase_security.xml5
-rw-r--r--addons/purchase/views/purchase_views.xml2
-rw-r--r--addons/purchase/views/res_config_settings_views.xml23
-rw-r--r--addons/purchase_requisition/views/res_config_settings_views.xml2
-rw-r--r--addons/sale/views/res_config_settings_views.xml14
-rw-r--r--addons/sale_coupon/views/res_config_settings_views.xml4
-rw-r--r--addons/sale_management/views/res_config_settings_views.xml2
-rw-r--r--addons/sale_stock/views/res_config_settings_views.xml2
-rw-r--r--addons/sale_timesheet/views/product_views.xml20
-rw-r--r--addons/sale_timesheet/views/res_config_settings_views.xml10
-rw-r--r--addons/stock/views/res_config_settings_views.xml12
-rw-r--r--addons/web/static/src/scss/form_view.scss2
-rw-r--r--addons/website/views/res_config_settings_views.xml8
-rw-r--r--addons/website_sale/views/res_config_settings_views.xml6
-rw-r--r--addons/website_sale_coupon/views/res_config_settings_views.xml4
-rw-r--r--addons/website_sale_delivery/views/res_config_settings_views.xml10
49 files changed, 147 insertions, 236 deletions
diff --git a/addons/account/views/res_config_settings_views.xml b/addons/account/views/res_config_settings_views.xml
index 411696d151f..f371a96adef 100644
--- a/addons/account/views/res_config_settings_views.xml
+++ b/addons/account/views/res_config_settings_views.xml
@@ -34,7 +34,7 @@
<label for="chart_template_id" string="Package" class="col-lg-3 o_light_label"/>
<field name="chart_template_id" widget="selection"/>
</div>
- <div>
+ <div class="mt8">
<button name="%(account.open_account_charts_modules)d" icon="fa-arrow-right" type="action" string="Install More Packages" class="btn-link"/>
</div>
</div>
@@ -145,7 +145,7 @@
Record transactions in foreign currencies
</div>
<div class="content-group" attrs="{'invisible': [('group_multi_currency', '=', False)]}">
- <div class="mt16">
+ <div class="mt8">
<button name="%(base.action_currency_all_form)d" icon="fa-arrow-right" type="action" string="Activate Other Currencies" class="btn-link"/>
</div>
<div class="row mt16">
@@ -256,7 +256,7 @@
<div class="text-muted">
Define the smallest coinage of the currency used to pay by cash.
</div>
- <div class="mt16">
+ <div class="mt8">
<button name="%(account.rounding_list_action)d" icon="fa-arrow-right"
type="action" string="Cash Roundings" class="btn-link"
attrs="{'invisible': [('group_cash_rounding', '=', False)]}"/>
@@ -504,10 +504,10 @@
Track costs &amp; revenues by project, department, etc.
</div>
<div class="content-group" attrs="{'invisible': [('group_analytic_accounting', '=', False)]}">
- <div class="mt16" id="analytic_account_link">
+ <div class="mt8" id="analytic_account_link">
<button name="%(analytic.action_analytic_account_form)d" icon="fa-arrow-right" type="action" string="Analytic Accounts" class="btn-link"/>
</div>
- <div id="analytic_account_groups_link">
+ <div class="mt8" id="analytic_account_groups_link">
<button name="%(analytic.account_analytic_group_action)d" icon="fa-arrow-right" type="action" string="Analytic Account Groups" class="btn-link"/>
</div>
</div>
@@ -523,7 +523,7 @@
Allows to tag analytic entries and to manage analytic distributions
</div>
<div class="content-group" attrs="{'invisible': [('group_analytic_tags', '=', False)]}">
- <div class="mt16">
+ <div class="mt8">
<button name="%(analytic.account_analytic_tag_action)d" icon="fa-arrow-right" type="action" string="Analytic Tags" class="btn-link"/>
</div>
</div>
diff --git a/addons/account_analytic_default/views/res_config_settings_views.xml b/addons/account_analytic_default/views/res_config_settings_views.xml
index 9e204e69686..1052396259f 100644
--- a/addons/account_analytic_default/views/res_config_settings_views.xml
+++ b/addons/account_analytic_default/views/res_config_settings_views.xml
@@ -7,7 +7,7 @@
<field name="inherit_id" ref="account.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@id='analytic_account_link']" position="after">
- <div>
+ <div class="mt8">
<button name="%(account_analytic_default.action_analytic_default_list)d" icon="fa-arrow-right" type="action" string="Default Analytic Values" class="btn-link"/>
</div>
</xpath>
diff --git a/addons/auth_ldap/views/res_config_settings_views.xml b/addons/auth_ldap/views/res_config_settings_views.xml
index a426a755699..4536b0153df 100644
--- a/addons/auth_ldap/views/res_config_settings_views.xml
+++ b/addons/auth_ldap/views/res_config_settings_views.xml
@@ -6,7 +6,7 @@
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
<field name="arch" type="xml">
<div name='auth_ldap_right_pane' position="inside">
- <div attrs="{'invisible': [('module_auth_ldap','=',False)]}">
+ <div class="mt8" attrs="{'invisible': [('module_auth_ldap','=',False)]}">
<button type="action" name="%(auth_ldap.action_ldap_installer)d" string="LDAP Server" icon="fa-arrow-right" class="btn-link"/>
</div>
</div>
diff --git a/addons/auth_oauth/views/res_config_settings_views.xml b/addons/auth_oauth/views/res_config_settings_views.xml
index b70574be8ca..adc1c0ffee9 100644
--- a/addons/auth_oauth/views/res_config_settings_views.xml
+++ b/addons/auth_oauth/views/res_config_settings_views.xml
@@ -7,7 +7,7 @@
<field name="arch" type="xml">
<div id="msg_module_auth_oauth" position="replace">
<div class="content-group" attrs="{'invisible': [('module_auth_oauth','=',False)]}">
- <div class="mt16">
+ <div class="mt8">
<button type="action" name="%(auth_oauth.action_oauth_provider)d" string="OAuth Providers" icon="fa-arrow-right" class="btn-link"/>
</div>
</div>
diff --git a/addons/auth_signup/views/res_config_settings_views.xml b/addons/auth_signup/views/res_config_settings_views.xml
index a885b1e00f2..85e24976882 100644
--- a/addons/auth_signup/views/res_config_settings_views.xml
+++ b/addons/auth_signup/views/res_config_settings_views.xml
@@ -19,7 +19,7 @@
<field name="auth_signup_uninvited" class="o_light_label" widget="radio" required="True"/>
</div>
<div class="content-group" attrs="{'invisible': [('auth_signup_uninvited','=','b2b')]}">
- <div class="mt16">
+ <div class="mt8">
<button type="object" name="open_template_user" string="Default Access Rights" icon="fa-arrow-right" class="btn-link"/>
</div>
</div>
diff --git a/addons/base_setup/views/res_config_settings_views.xml b/addons/base_setup/views/res_config_settings_views.xml
index c38f92d59b9..5938cab733e 100644
--- a/addons/base_setup/views/res_config_settings_views.xml
+++ b/addons/base_setup/views/res_config_settings_views.xml
@@ -55,7 +55,9 @@
Companies
</span>
<br/>
- <button name="%(base.action_res_company_form)d" icon="fa-arrow-right" type="action" string="Manage Companies" class="btn-link"/>
+ <div class="mt8">
+ <button name="%(base.action_res_company_form)d" icon="fa-arrow-right" type="action" string="Manage Companies" class="btn-link"/>
+ </div>
</div>
</div>
</div>
@@ -73,7 +75,9 @@
Languages
</span>
</div>
- <button name="%(base.res_lang_act_window)d" icon="fa-arrow-right" type="action" string="Manage Languages" class="btn-link"/>
+ <div class="mt8">
+ <button name="%(base.res_lang_act_window)d" icon="fa-arrow-right" type="action" string="Manage Languages" class="btn-link"/>
+ </div>
</div>
</div>
</div>
@@ -109,7 +113,7 @@
<label for="external_report_layout_id" string="Layout" class="col-3 col-lg-3 o_light_label"/>
<field name="external_report_layout_id" domain="[('type','=', 'qweb')]" class="oe_inline"/>
</div>
- <div class="mt16">
+ <div class="mt8">
<button name="%(base.action_base_document_layout_configurator)d" string="Configure Document Layout" type="action" class="oe_link" icon="fa-arrow-right"/>
<button name="edit_external_header" string="Edit Layout" type="object" class="oe_link" groups="base.group_no_one"/>
<button name="%(web.action_report_externalpreview)d" string="Preview Document" type="action" class="oe_link" groups="base.group_no_one"/>
@@ -166,7 +170,7 @@
Set custom access rights for new users
</div>
<div class="content-group" attrs="{'invisible': [('user_default_rights','=',False)]}">
- <div class="mt16">
+ <div class="mt8">
<button type="object" name="open_default_user" string="Default Access Rights" icon="fa-arrow-right" class="btn-link"/>
</div>
</div>
diff --git a/addons/crm/models/crm_lead.py b/addons/crm/models/crm_lead.py
index fb008d1471f..c22fdba7f50 100644
--- a/addons/crm/models/crm_lead.py
+++ b/addons/crm/models/crm_lead.py
@@ -115,7 +115,7 @@ class Lead(models.Model):
email_state = fields.Selection([
('correct', 'Correct'),
('incorrect', 'Incorrect'),
- ('empty', 'Empty')], string='Email quality', default="empty", compute="_compute_email_state", store=True)
+ ('empty', 'Empty')], string='Email Quality', default="empty", compute="_compute_email_state", store=True)
# Only used for type opportunity
planned_revenue = fields.Monetary('Expected Revenue', currency_field='company_currency', tracking=True)
diff --git a/addons/crm/models/res_config_settings.py b/addons/crm/models/res_config_settings.py
index 55c3503fadd..ca92e024dee 100644
--- a/addons/crm/models/res_config_settings.py
+++ b/addons/crm/models/res_config_settings.py
@@ -14,7 +14,6 @@ class ResConfigSettings(models.TransientModel):
module_crm_iap_lead = fields.Boolean("Generate new leads based on their country, industries, size, etc.")
module_crm_iap_lead_website = fields.Boolean("Create Leads/Opportunities from your website's traffic")
lead_mining_in_pipeline = fields.Boolean("Create a lead mining request directly from the opportunity pipeline.", config_parameter='crm.lead_mining_in_pipeline')
- crm_phone_valid_method = fields.Selection(related="company_id.phone_international_format", required=True, readonly=False)
predictive_lead_scoring_start_date = fields.Date(string='Lead Scoring Starting Date', compute="_compute_pls_start_date", inverse="_inverse_pls_start_date_str")
predictive_lead_scoring_start_date_str = fields.Char(string='Lead Scoring Starting Date in String', default=date.today().strftime('%Y-%m-%d'), config_parameter='crm.pls_start_date')
predictive_lead_scoring_fields = fields.Many2many('crm.lead.scoring.frequency.field', string='Lead Scoring Frequency Fields', compute="_compute_pls_fields", inverse="_inverse_pls_fields_str")
diff --git a/addons/crm/views/res_config_settings_views.xml b/addons/crm/views/res_config_settings_views.xml
index 35901dff185..9b2f4938011 100644
--- a/addons/crm/views/res_config_settings_views.xml
+++ b/addons/crm/views/res_config_settings_views.xml
@@ -19,7 +19,7 @@
<div class="o_setting_right_pane">
<label for="group_use_lead"/>
<div class="text-muted">
- Add a qualification step before creating an opportunity
+ Add a qualification step before the creation of an opportunity
</div>
</div>
</div>
@@ -30,9 +30,9 @@
<field name="generate_lead_from_alias"/>
</div>
<div class="o_setting_right_pane">
- <label for="generate_lead_from_alias" string="Email Alias"/>
+ <label for="generate_lead_from_alias" string="Incoming Emails"/>
<div class="text-muted">
- Incoming emails create leads
+ Create leads from incoming emails
</div>
<div class="content-group" attrs="{'invisible': [('generate_lead_from_alias','=',False)]}">
<div class="mt16">
@@ -49,6 +49,8 @@
</div>
</div>
</div>
+ </div>
+ <div class="row mt16 o_settings_container">
<div class="col-12 col-lg-6 o_setting_box" title="This can be used to compute statistical probability to close a lead">
<div class="o_setting_left_pane"></div>
<div class="o_setting_right_pane">
@@ -56,16 +58,16 @@
<div class="text-muted">
Let statistical analysis determine the probability to close a lead
</div>
- <div>
+ <div class="mt16">
+ Fields used in probability computation:
+ <field name="predictive_lead_scoring_fields" class="oe_inline" widget="many2many_tags"/>
+ <field name="predictive_lead_scoring_fields_str" invisible="1"/>
+ </div>
+ <div class="mt16">
Consider leads created as of the
<field name="predictive_lead_scoring_start_date_str" invisible="1"/>
<field name="predictive_lead_scoring_start_date"/>
</div>
- <div>
- Consider following fields in computation
- <field name="predictive_lead_scoring_fields" widget="many2many_checkboxes"/>
- <field name="predictive_lead_scoring_fields_str" invisible="1"/>
- </div>
</div>
</div>
</div>
@@ -77,14 +79,12 @@
</div>
<div class="o_setting_right_pane" id="crm_iap_lead_website_settings">
- <label string="Website Lead Generation" for="module_crm_iap_lead_website"/>
+ <label string="Visits to Leads" for="module_crm_iap_lead_website"/>
<div class="text-muted">
- Convert visitors of your website into leads and perform data enrichment based on their IP address.
+ Convert visitors of your website into leads and perform data enrichment based on their IP address
</div>
</div>
</div>
- </div>
- <div class="row mt16 o_settings_container">
<div class="col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="module_crm_iap_lead"/>
@@ -93,23 +93,7 @@
<div class="o_setting_right_pane" id="crm_iap_lead_settings">
<label string="Lead Mining" for="module_crm_iap_lead"/>
<div class="text-muted">
- Generate new leads based on their country, industries, size, etc.
- </div>
- </div>
- </div>
- </div>
- <h2>Contacts</h2>
- <div class="row mt16 o_settings_container">
- <div class="col-lg-6 o_setting_box">
- <div class="o_setting_right_pane" title="Always encode phone numbers using international format. Otherwise numbers coming from the company's country are nationally formatted. International numbers are always using international format.">
- <b>Phone Formatting</b>
- <div class="text-muted">
- Format phone numbers based on national conventions
- </div>
- <div class="content-group">
- <div class="mt16">
- <field name="crm_phone_valid_method" widget="radio" class="o_light_label"/>
- </div>
+ Generate new leads based on their country, industry, size, etc.
</div>
</div>
</div>
diff --git a/addons/delivery/views/res_config_settings_views.xml b/addons/delivery/views/res_config_settings_views.xml
index a6b2abc2f05..b7cb00355df 100644
--- a/addons/delivery/views/res_config_settings_views.xml
+++ b/addons/delivery/views/res_config_settings_views.xml
@@ -8,7 +8,7 @@
<field name="arch" type="xml">
<xpath expr="//div[@id='delivery_carrier']" position="after">
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('module_delivery','=',False)]}">
+ <div class="mt8" attrs="{'invisible': [('module_delivery','=',False)]}">
<button name="%(delivery.action_delivery_carrier_form)d" icon="fa-arrow-right" type="action" string="Shipping Methods" class="btn-link"/>
</div>
</div>
diff --git a/addons/digest/views/res_config_settings_views.xml b/addons/digest/views/res_config_settings_views.xml
index 6e8bc27239b..adabe9e70cb 100644
--- a/addons/digest/views/res_config_settings_views.xml
+++ b/addons/digest/views/res_config_settings_views.xml
@@ -20,7 +20,7 @@
<label for="digest_id" class="o_light_label"/>
<field name="digest_id" class="oe_inline"/>
</div>
- <div>
+ <div class="mt8">
<button type="action" name="%(digest.digest_digest_action)d" string="Configure Digest Emails" icon="fa-arrow-right" class="btn-link"/>
</div>
</div>
diff --git a/addons/fetchmail/views/res_config_settings_views.xml b/addons/fetchmail/views/res_config_settings_views.xml
index f8a9c19acdf..141dcce8ad2 100644
--- a/addons/fetchmail/views/res_config_settings_views.xml
+++ b/addons/fetchmail/views/res_config_settings_views.xml
@@ -6,12 +6,12 @@
<field name="inherit_id" ref="mail.res_config_settings_view_form"/>
<field name="arch" type="xml">
<div id="mail_alias_domain" position="after">
- <div>
+ <div class="mt8">
<button type="action"
name="%(action_email_server_tree)d"
string="Incoming Email Servers" icon="fa-arrow-right" class="btn-link"/>
</div>
- <div>
+ <div class="mt8">
<button type="action"
name="%(base.action_ir_mail_server_list)d"
string="Outgoing Email Servers" icon="fa-arrow-right" class="btn-link"/>
diff --git a/addons/google_drive/views/res_config_settings_views.xml b/addons/google_drive/views/res_config_settings_views.xml
index 22a05e6be55..42965daabe2 100644
--- a/addons/google_drive/views/res_config_settings_views.xml
+++ b/addons/google_drive/views/res_config_settings_views.xml
@@ -9,7 +9,7 @@
<div id="msg_module_google_drive" position="replace">
<div class="content-group"
attrs="{'invisible': [('module_google_drive','=',False)]}">
- <div class="mt-2 row">
+ <div class="mt8 row">
<div class="col-sm">
<field name="is_google_drive_token_generated" invisible="1"/>
<div role="alert"
@@ -23,23 +23,23 @@
</div>
<div class="col-sm text-center"
attrs="{'invisible': [('is_google_drive_token_generated', '=', True)]}">
- <button class="btn btn-link pt-0"
+ <button class="btn btn-link"
name="action_setup_token"
type="object"><i class="fa fa-arrow-right"></i> Set up token</button>
</div>
<div class="col-sm text-center"
attrs="{'invisible': [('is_google_drive_token_generated', '=', False)]}">
- <button class="btn btn-link pt-0"
+ <button class="btn btn-link"
name="action_setup_token"
type="object"><i class="fa fa-arrow-right"></i> Reset token</button>
</div>
</div>
- <div>
+ <div class="mt8">
<button type="action"
name="%(action_google_drive_users_config)d"
string="Google Drive Templates"
icon="fa-arrow-right"
- class="btn-link"/>
+ class="btn-link pl-0"/>
</div>
</div>
</div>
diff --git a/addons/hr/models/res_config_settings.py b/addons/hr/models/res_config_settings.py
index 76831c694eb..e6d209afb58 100644
--- a/addons/hr/models/res_config_settings.py
+++ b/addons/hr/models/res_config_settings.py
@@ -10,12 +10,12 @@ class ResConfigSettings(models.TransientModel):
'resource.calendar', 'Company Working Hours',
related='company_id.resource_calendar_id', readonly=False)
module_hr_org_chart = fields.Boolean(string="Organizational Chart")
- module_hr_presence = fields.Boolean(string="Advanced Employees Presence Check Based on")
- module_hr_skills = fields.Boolean(string="Employee Skills and Resumé")
- hr_presence_control_login = fields.Boolean(string="The system login (User status on chat)", config_parameter='hr.hr_presence_control_login')
- hr_presence_control_email = fields.Boolean(string="The amount of sent emails", config_parameter='hr_presence.hr_presence_control_email')
- hr_presence_control_ip = fields.Boolean(string="The IP address", config_parameter='hr_presence.hr_presence_control_ip')
- module_hr_attendance = fields.Boolean(string="The Attendance module.")
+ module_hr_presence = fields.Boolean(string="Advanced Presence Control")
+ module_hr_skills = fields.Boolean(string="Skills Management")
+ hr_presence_control_login = fields.Boolean(string="Based on user status in system", config_parameter='hr.hr_presence_control_login')
+ hr_presence_control_email = fields.Boolean(string="Based on number of emails sent", config_parameter='hr_presence.hr_presence_control_email')
+ hr_presence_control_ip = fields.Boolean(string="Based on IP Address", config_parameter='hr_presence.hr_presence_control_ip')
+ module_hr_attendance = fields.Boolean(string="Based on attendances")
hr_presence_control_email_amount = fields.Integer(related="company_id.hr_presence_control_email_amount", readonly=False)
hr_presence_control_ip_list = fields.Char(related="company_id.hr_presence_control_ip_list", readonly=False)
hr_employee_self_edit = fields.Boolean(string="Employee Edition", config_parameter='hr.hr_employee_self_edit')
diff --git a/addons/hr/views/res_config_settings_views.xml b/addons/hr/views/res_config_settings_views.xml
index 38fc226d86c..20299dc2d6f 100644
--- a/addons/hr/views/res_config_settings_views.xml
+++ b/addons/hr/views/res_config_settings_views.xml
@@ -8,6 +8,7 @@
<field name="arch" type="xml">
<xpath expr="//div[hasclass('settings')]" position="inside">
<div class="app_settings_block" data-string="Employees" string="Employees" data-key="hr" groups="hr.group_hr_manager">
+ <h2>Employees</h2>
<div class="row mt16 o_settings_container">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
@@ -16,22 +17,22 @@
<div class="o_setting_right_pane">
<label for="module_hr_skills"/>
<div class="text-muted">
- Enrich Employees Profiles with Resume, Skills and knowledge
+ Enrich employee profiles with skills and resumes
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box" title="Presence of employees">
<div class="o_setting_right_pane">
- <span class="o_form_label">Control presence of employees</span>
+ <span class="o_form_label">Presence Control</span>
<div class="content-group" name="hr_presence_options">
<div class="row">
<field name="module_hr_attendance" class="col-lg-1 ml16"/>
- <label for="module_hr_attendance" class="col-lg-10 o_light_label"/>
+ <label for="module_hr_attendance" class="o_light_label"/>
</div>
<div class="row">
<field name="hr_presence_control_login" class="col-lg-1 ml16"/>
- <label for="hr_presence_control_login" class="col-lg-10 o_light_label"/>
+ <label for="hr_presence_control_login" class="o_light_label"/>
</div>
</div>
</div>
@@ -47,20 +48,19 @@
</div>
<div class="row mt-1" attrs="{'invisible': [('module_hr_presence', '=', False)]}">
<field name="hr_presence_control_email" class="col-lg-1 ml16"/>
- <label for="hr_presence_control_email" class="col-lg-10 o_light_label"/>
+ <label for="hr_presence_control_email" class="o_light_label"/>
</div>
- <div class="row ml-4" attrs="{'invisible': ['|', ('module_hr_presence', '=', False), ('hr_presence_control_email', '=', False)]}">
- <span class="mr-2">At least </span>
- <field name="hr_presence_control_email_amount"/>
- <span> sent emails</span>
+ <div class="row ml32" attrs="{'invisible': ['|', ('module_hr_presence', '=', False), ('hr_presence_control_email', '=', False)]}">
+ <span class="ml8 mr-2">Minimum number of emails to sent </span>
+ <field name="hr_presence_control_email_amount" class="ml-2 oe_inline"/>
</div>
<div class="row" attrs="{'invisible': [('module_hr_presence', '=', False)]}">
<field name="hr_presence_control_ip" class="col-lg-1 ml16"/>
- <label for="hr_presence_control_ip" class="col-lg-10 o_light_label"/>
+ <label for="hr_presence_control_ip" class="o_light_label"/>
</div>
- <div class="row ml-4" attrs="{'invisible': ['|', ('module_hr_presence', '=', False), ('hr_presence_control_ip', '=', False)]}">
- <span class="mr-2">IP List (comma separated):</span>
- <field name="hr_presence_control_ip_list"/>
+ <div class="row ml32" attrs="{'invisible': ['|', ('module_hr_presence', '=', False), ('hr_presence_control_ip', '=', False)]}">
+ <span class="ml8 mr-2">IP Addresses (comma-separated)</span>
+ <field name="hr_presence_control_ip_list" class="ml-2 oe_inline"/>
</div>
</div>
</div>
@@ -94,7 +94,7 @@
<div class="o_setting_right_pane">
<label for="module_hr_org_chart"/>
<div class="text-muted">
- Show organizational chart on employee form.
+ Show organizational chart on employee form
</div>
</div>
</div>
@@ -108,7 +108,7 @@
<div class="o_setting_right_pane">
<label for="hr_employee_self_edit"/>
<div class="text-muted">
- Allow employees to update their own data.
+ Allow employees to update their own data
</div>
</div>
</div>
diff --git a/addons/hr_expense/views/res_config_settings_views.xml b/addons/hr_expense/views/res_config_settings_views.xml
index b1d4a576888..a3219d725ee 100644
--- a/addons/hr_expense/views/res_config_settings_views.xml
+++ b/addons/hr_expense/views/res_config_settings_views.xml
@@ -9,20 +9,20 @@
<field name="arch" type="xml">
<xpath expr="//div[hasclass('settings')]" position="inside">
<div class="app_settings_block" data-string="Expenses" string="Expenses" data-key="hr_expense" groups="hr_expense.group_hr_expense_manager">
- <h2>Recording</h2>
+ <h2>Expenses</h2>
<div class="row mt16 o_settings_container">
<div class="col-xs-12 col-md-6 o_setting_box" title="Send an email to this email alias with the receipt in attachment to create an expense in one click. If the first word of the mail subject contains the product's internal reference or the product name, the corresponding product will automatically be set. Type the expense amount in the mail subject to set it on the expense too.">
<div class="o_setting_left_pane">
<field name="use_mailgateway"/>
</div>
<div class="o_setting_right_pane">
- <label string="Emails" for="use_mailgateway"/>
+ <label string="Incoming Emails" for="use_mailgateway"/>
<div class="text-muted">
- Let your employees record expenses by email
+ Create expenses from incoming emails
</div>
<div class="content-group" attrs="{'invisible': ['|', ('use_mailgateway', '=', False), ('alias_domain', 'in', ['localhost', '', False])]}">
<div class="mt16">
- <label for="expense_alias_prefix" string="Email Alias" class="o_light_label"/>
+ <label for="expense_alias_prefix" string="Alias" class="o_light_label"/>
<field name="expense_alias_prefix" class="oe_inline"/>
<span>@</span>
<field name="alias_domain" class="oe_inline" readonly="1" force_save="1"/>
@@ -35,15 +35,12 @@
</div>
</div>
</div>
- </div>
- <h2>Reimbursement</h2>
- <div class="row mt16 o_settings_container" id="hr_payroll_accountant">
- <div class="col-lg-6 col-12 o_setting_box">
+ <div class="col-lg-6 col-12 o_setting_box" id="hr_payroll_accountant">
<div class="o_setting_left_pane">
<field name="module_hr_payroll_expense" widget="upgrade_boolean"/>
</div>
<div class="o_setting_right_pane">
- <label for="module_hr_payroll_expense" string="Reimburse Expenses in Payslip"/>
+ <label for="module_hr_payroll_expense" string="Reimburse in Payslip"/>
<div class="text-muted">
Expenses can be reimbursed in payslips.
</div>
diff --git a/addons/hr_recruitment_survey/views/res_config_setting_views.xml b/addons/hr_recruitment_survey/views/res_config_setting_views.xml
index 135d85adcb2..c39bc42a7b5 100644
--- a/addons/hr_recruitment_survey/views/res_config_setting_views.xml
+++ b/addons/hr_recruitment_survey/views/res_config_setting_views.xml
@@ -7,7 +7,7 @@
<field name="arch" type="xml">
<div id="interview_forms" position="replace">
<div class="content-group">
- <div class="mt16">
+ <div class="mt8">
<button name="%(survey.action_survey_form)d" icon="fa-arrow-right" type="action" string="Interview Forms" class="btn-link"/>
</div>
</div>
diff --git a/addons/hr_timesheet/models/res_config_settings.py b/addons/hr_timesheet/models/res_config_settings.py
index f8e7cfbe252..2dc6c852589 100644
--- a/addons/hr_timesheet/models/res_config_settings.py
+++ b/addons/hr_timesheet/models/res_config_settings.py
@@ -8,7 +8,7 @@ class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
module_project_timesheet_synchro = fields.Boolean("Awesome Timesheet")
- module_project_timesheet_holidays = fields.Boolean("Time Off")
+ module_project_timesheet_holidays = fields.Boolean("Record Time Off")
project_time_mode_id = fields.Many2one(
'uom.uom', related='company_id.project_time_mode_id', string='Project Time Unit', readonly=False,
help="This will set the unit of measure used in projects and tasks.\n"
diff --git a/addons/hr_timesheet/views/res_config_settings_views.xml b/addons/hr_timesheet/views/res_config_settings_views.xml
index a7934d9bb1c..4cdfc1e0270 100644
--- a/addons/hr_timesheet/views/res_config_settings_views.xml
+++ b/addons/hr_timesheet/views/res_config_settings_views.xml
@@ -35,7 +35,7 @@
</div>
<div class="content-group">
<div class="mt16">
- <field name="timesheet_encode_uom_id" options="{'no_create': True}" required="1" class="col-lg-5"/>
+ <field name="timesheet_encode_uom_id" options="{'no_create': True, 'no_open': True}" required="1" class="col-lg-5"/>
</div>
</div>
</div>
@@ -81,7 +81,7 @@
<div class="o_setting_right_pane">
<label for="module_project_timesheet_holidays"/>
<div class="text-muted">
- Validated time off create timesheets automatically.
+ Create timesheets upon time off validation
</div>
<div class="content-group">
<div id="module_project_timesheet_holidays"/>
diff --git a/addons/iap/views/res_config_settings.xml b/addons/iap/views/res_config_settings.xml
index 03b9b370992..29c9359ab29 100644
--- a/addons/iap/views/res_config_settings.xml
+++ b/addons/iap/views/res_config_settings.xml
@@ -26,9 +26,9 @@ if records:
<div class="text-muted">
View your IAP Services and recharge your credits
</div>
- </div>
- <div class='o_setting_right_pane'>
- <button name="%(iap.open_iap_account)d" icon="fa-arrow-right" type="action" string="View My Services" class="btn-link"/>
+ <div class='mt8'>
+ <button name="%(iap.open_iap_account)d" icon="fa-arrow-right" type="action" string="View My Services" class="btn-link"/>
+ </div>
</div>
</div>
</div>
diff --git a/addons/l10n_eu_service/views/res_config_settings_views.xml b/addons/l10n_eu_service/views/res_config_settings_views.xml
index 480f7f20522..d839084fcc9 100644
--- a/addons/l10n_eu_service/views/res_config_settings_views.xml
+++ b/addons/l10n_eu_service/views/res_config_settings_views.xml
@@ -8,7 +8,7 @@
<field name="arch" type="xml">
<div name="l10n_eu_service_right_pane" position="inside">
<div class="content-group" attrs="{'invisible': [('module_l10n_eu_service', '=', False)]}">
- <div class="mt16">
+ <div class="mt8">
<button name="%(l10n_eu_service.action_eu_service)d" icon="fa-arrow-right" type="action" string="Add new countries" class="btn-link"/>
</div>
</div>
diff --git a/addons/lunch/views/res_config_settings.xml b/addons/lunch/views/res_config_settings.xml
index fc73ba99151..661ace02d4c 100644
--- a/addons/lunch/views/res_config_settings.xml
+++ b/addons/lunch/views/res_config_settings.xml
@@ -3,6 +3,7 @@
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.lunch</field>
<field name="model">res.config.settings</field>
+ <field name="priority" eval="90"/>
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[hasclass('settings')]" position="inside">
diff --git a/addons/mail/views/res_config_settings_views.xml b/addons/mail/views/res_config_settings_views.xml
index 157f6264812..27da9b00acc 100644
--- a/addons/mail/views/res_config_settings_views.xml
+++ b/addons/mail/views/res_config_settings_views.xml
@@ -17,7 +17,7 @@
Configure your activity types
</div>
<div class="content-group">
- <div class="mt16">
+ <div class="mt8">
<button name="%(mail.mail_activity_type_action)d" string="Activity Types" type="action" class="oe_link" icon="fa-arrow-right"/>
</div>
</div>
diff --git a/addons/mass_mailing/models/res_config_settings.py b/addons/mass_mailing/models/res_config_settings.py
index 467d6560686..b915057da5c 100644
--- a/addons/mass_mailing/models/res_config_settings.py
+++ b/addons/mass_mailing/models/res_config_settings.py
@@ -7,11 +7,11 @@ from odoo import api, fields, models
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
- group_mass_mailing_campaign = fields.Boolean(string="Mass Mailing Campaigns", implied_group='mass_mailing.group_mass_mailing_campaign', help="""This is useful if your marketing campaigns are composed of several emails""")
- mass_mailing_outgoing_mail_server = fields.Boolean(string="Specific Mail Server", config_parameter='mass_mailing.outgoing_mail_server',
+ group_mass_mailing_campaign = fields.Boolean(string="Mailing Campaigns", implied_group='mass_mailing.group_mass_mailing_campaign', help="""This is useful if your marketing campaigns are composed of several emails""")
+ mass_mailing_outgoing_mail_server = fields.Boolean(string="Dedicated Server", config_parameter='mass_mailing.outgoing_mail_server',
help='Use a specific mail server in priority. Otherwise Odoo relies on the first outgoing mail server available (based on their sequencing) as it does for normal mails.')
mass_mailing_mail_server_id = fields.Many2one('ir.mail_server', string='Mail Server', config_parameter='mass_mailing.mail_server_id')
- show_blacklist_buttons = fields.Boolean(string="Show blacklist buttons on unsubscribe page",
+ show_blacklist_buttons = fields.Boolean(string="Blacklist Option when Unsubscribing",
config_parameter='mass_mailing.show_blacklist_buttons',
help="""Allow the recipient to manage himself his state in the blacklist via the unsubscription page.""")
diff --git a/addons/mass_mailing/views/res_config_settings_views.xml b/addons/mass_mailing/views/res_config_settings_views.xml
index 00781978dbc..0883681723c 100644
--- a/addons/mass_mailing/views/res_config_settings_views.xml
+++ b/addons/mass_mailing/views/res_config_settings_views.xml
@@ -17,14 +17,7 @@
<div class="o_setting_right_pane">
<label for="group_mass_mailing_campaign"/>
<div class="text-muted">
- Manage campaigns of mass emails with process stages
- </div>
- <div class="content-group" attrs="{'invisible': [('group_mass_mailing_campaign', '=', False)]}">
- <div class="mt16">
- <button name="%(utm.action_view_utm_stage)d"
- icon="fa-arrow-right" type="action" string="Campaign Stages"
- class="btn-link"/>
- </div>
+ Manage mass mailing campaigns
</div>
</div>
</div>
@@ -35,12 +28,15 @@
<div class="o_setting_right_pane">
<label for="mass_mailing_outgoing_mail_server"/>
<div class="text-muted">
- Use a specific mail server for mailings
+ Use a dedicated server for mailings
</div>
<div class="content-group" attrs="{'invisible': [('mass_mailing_outgoing_mail_server', '=', False)]}">
<div class="mt16">
<field name="mass_mailing_mail_server_id" options="{'no_create': True, 'no_open': True}"/>
</div>
+ <div class="mt8">
+ <button type="action" name="base.action_ir_mail_server_list" string="Configure Email Server" icon="fa-arrow-right" class="oe_link"/>
+ </div>
</div>
</div>
</div>
@@ -53,7 +49,7 @@
<div class="o_setting_right_pane">
<label for="show_blacklist_buttons"/>
<div class="text-muted">
- Allow the recipient to manage himself his state in the blacklist via the unsubscription page.
+ Allow recipients to blacklist themselves
</div>
</div>
</div>
diff --git a/addons/mrp/views/res_config_settings_views.xml b/addons/mrp/views/res_config_settings_views.xml
index a40a1d150ee..ced612f47d2 100644
--- a/addons/mrp/views/res_config_settings_views.xml
+++ b/addons/mrp/views/res_config_settings_views.xml
@@ -22,7 +22,7 @@
Process operations at specific work centers based on the routing
</div>
<div class="content-group" attrs="{'invisible': [('group_mrp_routings','=',False)]}">
- <div class="mt16">
+ <div class="mt8">
<div>
<button name="%(mrp.mrp_routing_action)d" icon="fa-arrow-right" type="action" string="Routings" class="btn-link"/>
</div>
@@ -33,30 +33,29 @@
</div>
</div>
</div>
- <div class="col-lg-6 col-12 o_setting_box" attrs="{'invisible': [('group_mrp_routings', '=', False)]}" id="quality_control">
+ <div class="col-lg-6 col-12 o_setting_box">
<div class="o_setting_left_pane">
- <field name="module_quality_control" widget="upgrade_boolean"/>
+ <field name="module_mrp_subcontracting"/>
</div>
<div class="o_setting_right_pane">
- <label for="module_quality_control"/>
+ <label for="module_mrp_subcontracting"/>
<div class="text-muted">
- Add quality checks to your work orders
+ Subcontract the production of some products
</div>
</div>
</div>
- <div class="col-lg-6 col-12 o_setting_box">
+ <div class="col-lg-6 col-12 o_setting_box" attrs="{'invisible': [('group_mrp_routings', '=', False)]}" id="quality_control">
<div class="o_setting_left_pane">
- <field name="module_mrp_subcontracting"/>
+ <field name="module_quality_control" widget="upgrade_boolean"/>
</div>
<div class="o_setting_right_pane">
- <label for="module_mrp_subcontracting"/>
+ <label for="module_quality_control"/>
<div class="text-muted">
- Subcontract the production of some products
+ Add quality checks to your work orders
</div>
</div>
</div>
</div>
- <h2>Products</h2>
<div class="row mt16 o_settings_container">
<div class="col-lg-6 col-12 o_setting_box" id="mrp_byproduct" title="Add by-products to bills of materials. This can be used to get several finished products as well. Without this option you only do: A + B = C. With the option: A + B = C + D.">
<div class="o_setting_left_pane">
@@ -96,7 +95,6 @@
</div>
<div class="content-group" attrs="{'invisible': [('use_manufacturing_lead','=',False)]}">
<div class="mt16" >
- Move forward deadline start dates by
<field name="manufacturing_lead" class="oe_inline"/> days
</div>
</div>
diff --git a/addons/phone_validation/models/__init__.py b/addons/phone_validation/models/__init__.py
index dfe42e557e3..ba75abd0ddb 100644
--- a/addons/phone_validation/models/__init__.py
+++ b/addons/phone_validation/models/__init__.py
@@ -4,4 +4,3 @@
from . import phone_blacklist
from . import phone_validation_mixin
from . import mail_thread_phone
-from . import res_company
diff --git a/addons/phone_validation/models/phone_validation_mixin.py b/addons/phone_validation/models/phone_validation_mixin.py
index 0e7ab1c2aaa..10eccb9b307 100644
--- a/addons/phone_validation/models/phone_validation_mixin.py
+++ b/addons/phone_validation/models/phone_validation_mixin.py
@@ -19,21 +19,15 @@ class PhoneValidationMixin(models.AbstractModel):
return self.country_id
return self.env.company.country_id
- def _phone_get_always_international(self):
- if 'company_id' in self and self.company_id:
- return self.company_id.phone_international_format == 'prefix'
- return self.env.company.phone_international_format == 'prefix'
-
def phone_format(self, number, country=None, company=None):
country = country or self._phone_get_country()
if not country:
return number
- always_international = company.phone_international_format == 'prefix' if company else self._phone_get_always_international()
return phone_validation.phone_format(
number,
country.code if country else None,
country.phone_code if country else None,
- force_format='INTERNATIONAL' if always_international else 'NATIONAL',
+ force_format='INTERNATIONAL',
raise_exception=False
)
diff --git a/addons/phone_validation/models/res_company.py b/addons/phone_validation/models/res_company.py
deleted file mode 100644
index df53ca6196b..00000000000
--- a/addons/phone_validation/models/res_company.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-from odoo import fields, models
-
-
-class ResCompany(models.Model):
- _inherit = 'res.company'
-
- phone_international_format = fields.Selection([
- ('no_prefix', 'No prefix'),
- ('prefix', 'Add international prefix'),
- ], string="Local Numbers", default="prefix",
- help="Always encode phone numbers using international format. Otherwise "
- "numbers coming from the company's country are nationally formatted. "
- "International numbers are always using international format."
- )
diff --git a/addons/point_of_sale/views/res_config_settings_views.xml b/addons/point_of_sale/views/res_config_settings_views.xml
index e943c95dbb9..35477705722 100644
--- a/addons/point_of_sale/views/res_config_settings_views.xml
+++ b/addons/point_of_sale/views/res_config_settings_views.xml
@@ -21,7 +21,7 @@
<field name="sale_tax_id" colspan="4" nolabel="1" domain="[('type_tax_use', 'in', ('sale', 'all')), ('company_id', '=', company_id)]"/>
</div>
</div>
- <div>
+ <div class="mt8">
<button name="%(account.action_tax_form)d" icon="fa-arrow-right" type="action" string="Taxes" class="btn-link"/>
</div>
</div>
@@ -43,7 +43,9 @@
<field name="group_sale_pricelist" invisible="1"/>
<field name="product_pricelist_setting" widget="radio" class="o_light_label"/>
</div>
- <button name="%(product.product_pricelist_action2)d" icon="fa-arrow-right" type="action" string="Pricelists" groups="product.group_sale_pricelist" class="btn-link"/>
+ <div class="mt8">
+ <button name="%(product.product_pricelist_action2)d" icon="fa-arrow-right" type="action" string="Pricelists" groups="product.group_sale_pricelist" class="btn-link"/>
+ </div>
</div>
</div>
</div>
@@ -57,7 +59,7 @@
Record transactions in foreign currencies
</div>
<div class="content-group" attrs="{'invisible': [('group_multi_currency', '=', False)]}">
- <div class="mt16">
+ <div class="mt8">
<button type="action" name="%(base.action_currency_form)d" string="Currencies" class="btn-link" icon="fa-arrow-right"/>
</div>
</div>
diff --git a/addons/project/views/res_config_settings_views.xml b/addons/project/views/res_config_settings_views.xml
index c2177fbdc30..fbc24208ec2 100644
--- a/addons/project/views/res_config_settings_views.xml
+++ b/addons/project/views/res_config_settings_views.xml
@@ -42,7 +42,7 @@
Track customer satisfaction on tasks
</div>
<div class="content-group" attrs="{'invisible': [('group_project_rating', '=', False)]}">
- <div class="mt16">
+ <div class="mt8">
<button name="%(project.open_task_type_form)d" icon="fa-arrow-right" type="action" string="Set Email Template to Stages" class="btn-link"/>
</div>
</div>
diff --git a/addons/purchase/models/purchase.py b/addons/purchase/models/purchase.py
index 3f5beb0ff1f..d5b2df84fcc 100644
--- a/addons/purchase/models/purchase.py
+++ b/addons/purchase/models/purchase.py
@@ -213,7 +213,7 @@ class PurchaseOrder(models.Model):
@api.onchange('partner_id')
def onchange_partner_id_warning(self):
- if not self.partner_id:
+ if not self.partner_id or not self.env.user.has_group('purchase.group_warning_purchase'):
return
warning = {}
title = False
@@ -626,7 +626,7 @@ class PurchaseOrderLine(models.Model):
@api.onchange('product_id')
def onchange_product_id_warning(self):
- if not self.product_id:
+ if not self.product_id or not self.env.user.has_group('purchase.group_warning_purchase'):
return
warning = {}
title = False
diff --git a/addons/purchase/models/res_config_settings.py b/addons/purchase/models/res_config_settings.py
index e948eecde18..7b2469c5559 100644
--- a/addons/purchase/models/res_config_settings.py
+++ b/addons/purchase/models/res_config_settings.py
@@ -21,8 +21,6 @@ class ResConfigSettings(models.TransientModel):
help="This default value is applied to any new product created. "
"This can be changed in the product detail form.", default="receive")
group_warning_purchase = fields.Boolean("Purchase Warnings", implied_group='purchase.group_warning_purchase')
- group_manage_vendor_price = fields.Boolean("Vendor Pricelists",
- implied_group="purchase.group_manage_vendor_price")
module_account_3way_match = fields.Boolean("3-way matching: purchases, receptions and bills")
module_purchase_requisition = fields.Boolean("Purchase Agreements")
module_purchase_product_matrix = fields.Boolean("Variants Grid Entry")
diff --git a/addons/purchase/security/purchase_security.xml b/addons/purchase/security/purchase_security.xml
index ebc26ae2041..ab383edbfc0 100644
--- a/addons/purchase/security/purchase_security.xml
+++ b/addons/purchase/security/purchase_security.xml
@@ -20,11 +20,6 @@
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
- <record id="group_manage_vendor_price" model="res.groups">
- <field name="name">Manage Vendor Price</field>
- <field name="category_id" ref="base.module_category_hidden"/>
- </record>
-
<record id="group_warning_purchase" model="res.groups">
<field name="name">A warning can be set on a product or a customer (Purchase)</field>
<field name="category_id" ref="base.module_category_hidden"/>
diff --git a/addons/purchase/views/purchase_views.xml b/addons/purchase/views/purchase_views.xml
index f42b85bf063..ce1057ed9f2 100644
--- a/addons/purchase/views/purchase_views.xml
+++ b/addons/purchase/views/purchase_views.xml
@@ -20,7 +20,7 @@
<menuitem
action="product.product_supplierinfo_type_action" id="menu_product_pricelist_action2_purchase"
- parent="menu_procurement_management" sequence="16" groups="purchase.group_manage_vendor_price"/>
+ parent="menu_purchase_config" sequence="1"/>
<menuitem
id="menu_product_in_config_purchase" name="Products"
diff --git a/addons/purchase/views/res_config_settings_views.xml b/addons/purchase/views/res_config_settings_views.xml
index 373f1b91f20..3c28d723eee 100644
--- a/addons/purchase/views/res_config_settings_views.xml
+++ b/addons/purchase/views/res_config_settings_views.xml
@@ -22,7 +22,7 @@
<label for="po_order_approval"/>
<span class="fa fa-lg fa-building-o" title="Values set here are company-specific." aria-label="Values set here are company-specific." groups="base.group_multi_company" role="img"/>
<div class="text-muted">
- Managers must approve orders
+ Request managers to approve orders above a minimum amount
</div>
<div class="content-group" attrs="{'invisible': [('po_order_approval', '=', False)]}">
<div class="row mt16">
@@ -39,7 +39,7 @@
<div class="o_setting_right_pane">
<label for="lock_confirmed_po"/>
<div class="text-muted">
- No longer edit orders once confirmed
+ Automatically lock confirmed orders to prevent edition
</div>
</div>
</div>
@@ -99,25 +99,6 @@
</div>
<h2>Products</h2>
<div class="row mt16 o_settings_container">
- <div class="col-12 col-lg-6 o_setting_box" title="By default, vendor prices can be set manually in the product detail form. If your vendors provide you with pricelist files, this option allows you to easily import them into the system from ‘Purchase > Vendor Pricelists’ menu.">
- <div class="o_setting_left_pane">
- <field name="group_manage_vendor_price"/>
- </div>
- <div class="o_setting_right_pane">
- <label for="group_manage_vendor_price"/>
- <div class="text-muted">
- Import vendor pricelists
- </div>
- <div class="content-group" attrs="{'invisible': [('group_manage_vendor_price', '=', False)]}">
- <div class="mt16">
- <a role="button" class="btn-link" target="_blank" href="https://www.odoo.com/documentation/user/12.0/general/base_import/import_faq.html">
- <i class="fa fa-arrow-right"/>
- How to import
- </a>
- </div>
- </div>
- </div>
- </div>
<div class="col-12 col-lg-6 o_setting_box" title="If installed, the product variants will be added to purchase orders through a grid entry.">
<div class="o_setting_left_pane">
<field name="module_purchase_product_matrix"/>
diff --git a/addons/purchase_requisition/views/res_config_settings_views.xml b/addons/purchase_requisition/views/res_config_settings_views.xml
index ba0e177460c..88cdebb21e1 100644
--- a/addons/purchase_requisition/views/res_config_settings_views.xml
+++ b/addons/purchase_requisition/views/res_config_settings_views.xml
@@ -6,7 +6,7 @@
<field name="inherit_id" ref="purchase.res_config_settings_view_form_purchase"/>
<field name="arch" type="xml">
<div id="use_purchase_requisition" position="replace">
- <div class="mt16">
+ <div class="mt8">
<button name="%(purchase_requisition.tender_type_action)d" icon="fa-arrow-right" type="action" string="Agreement Types" class="btn-link"/>
</div>
</div>
diff --git a/addons/sale/views/res_config_settings_views.xml b/addons/sale/views/res_config_settings_views.xml
index 1d8add8e6f6..0df9f85af37 100644
--- a/addons/sale/views/res_config_settings_views.xml
+++ b/addons/sale/views/res_config_settings_views.xml
@@ -21,7 +21,7 @@
Sell variants of a product using attributes (size, color, etc.)
</div>
<div class="content-group" attrs="{'invisible': [('group_product_variant','=',False)]}">
- <div class="mt16">
+ <div class="mt8">
<button name="%(product.attribute_action)d" icon="fa-arrow-right" type="action" string="Attributes" class="btn-link"/>
</div>
</div>
@@ -59,7 +59,7 @@
Sell and purchase products in different units of measure
</div>
<div class="content-group" attrs="{'invisible': [('group_uom','=',False)]}">
- <div class="mt16">
+ <div class="mt8">
<button name="%(uom.product_uom_form_action)d" icon="fa-arrow-right" type="action" string="Units of Measure" class="btn-link"/>
</div>
</div>
@@ -126,7 +126,9 @@
<field name="group_sale_pricelist" invisible="1"/>
<field name="product_pricelist_setting" widget="radio" class="o_light_label"/>
</div>
- <button name="%(product.product_pricelist_action2)d" icon="fa-arrow-right" type="action" string="Pricelists" groups="product.group_product_pricelist" class="btn-link"/>
+ <div class="mt8">
+ <button name="%(product.product_pricelist_action2)d" icon="fa-arrow-right" type="action" string="Pricelists" groups="product.group_product_pricelist" class="btn-link"/>
+ </div>
</div>
</div>
</div>
@@ -179,12 +181,12 @@
<div class="text-muted">
Request an online payment to confirm orders
</div>
- <div attrs="{'invisible': [('portal_confirmation_pay', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('portal_confirmation_pay', '=', False)]}">
<button name='%(payment.action_payment_acquirer)d' icon="fa-arrow-right" type="action" string="Payment Acquirers" class="btn-link"/>
</div>
</div>
</div>
- <div class="col-12 col-lg-6 o_setting_box" id="confirmation_email_setting" attrs="{'invisible': [('portal_confirmation_pay', '=', False) , ('portal_confirmation_sign', '=', False)]}">
+ <div class="col-12 col-lg-6 o_setting_box" id="confirmation_email_setting" attrs="{'invisible': [('portal_confirmation_pay', '=', False) , ('portal_confirmation_sign', '=', False)]}" groups="base.group_no_one">
<div class="o_setting_right_pane">
<span class="o_form_label">Confirmation Email</span>
<div class="text-muted">
@@ -394,7 +396,7 @@
<div class="text-muted">
Generate the invoice automatically when the online payment is confirmed
</div>
- <div attrs="{'invisible': [('automatic_invoice','=',False)]}">
+ <div attrs="{'invisible': [('automatic_invoice','=',False)]}" groups="base.group_no_one">
<label for="template_id" class="o_light_label"/>
<field name="template_id" class="oe_inline" options="{'no_create': True}"/>
</div>
diff --git a/addons/sale_coupon/views/res_config_settings_views.xml b/addons/sale_coupon/views/res_config_settings_views.xml
index 3bfaed7a548..74a01de868a 100644
--- a/addons/sale_coupon/views/res_config_settings_views.xml
+++ b/addons/sale_coupon/views/res_config_settings_views.xml
@@ -8,10 +8,10 @@
<field name="arch" type="xml">
<xpath expr="//div[@id='sale_coupon']" position="after">
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('module_sale_coupon', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('module_sale_coupon', '=', False)]}">
<button name="%(sale_coupon.sale_coupon_program_action_promo_program)d" icon="fa-arrow-right" type="action" string="Promotion Programs" class="btn-link"/>
</div>
- <div attrs="{'invisible': [('module_sale_coupon', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('module_sale_coupon', '=', False)]}">
<button name="%(sale_coupon.sale_coupon_program_action_coupon_program)d" icon="fa-arrow-right" type="action" string="Coupon Programs" class="btn-link"/>
</div>
</div>
diff --git a/addons/sale_management/views/res_config_settings_views.xml b/addons/sale_management/views/res_config_settings_views.xml
index 1b9cc3f8b00..e741e456f10 100644
--- a/addons/sale_management/views/res_config_settings_views.xml
+++ b/addons/sale_management/views/res_config_settings_views.xml
@@ -22,7 +22,7 @@
<label for="default_sale_order_template_id" class="o_light_label"/>
<field name="default_sale_order_template_id" class="oe_inline"/>
</div>
- <div>
+ <div class="mt8">
<button name="%(sale_management.sale_order_template_action)d" icon="fa-arrow-right" type="action" string="Quotation Templates" class="btn-link"/>
</div>
</div>
diff --git a/addons/sale_stock/views/res_config_settings_views.xml b/addons/sale_stock/views/res_config_settings_views.xml
index 62dff847c00..af5ffed16fe 100644
--- a/addons/sale_stock/views/res_config_settings_views.xml
+++ b/addons/sale_stock/views/res_config_settings_views.xml
@@ -17,7 +17,7 @@
Display incoterms on orders &amp; invoices
</div>
<div class="content-group" attrs="{'invisible': [('group_display_incoterm','=',False)]}">
- <div class="mt16">
+ <div class="mt8">
<button name="%(account.action_incoterms_tree)d" icon="fa-arrow-right" type="action" string="Incoterms" class="btn-link"/>
</div>
</div>
diff --git a/addons/sale_timesheet/views/product_views.xml b/addons/sale_timesheet/views/product_views.xml
index d28e404de9e..042f6bbf423 100644
--- a/addons/sale_timesheet/views/product_views.xml
+++ b/addons/sale_timesheet/views/product_views.xml
@@ -33,28 +33,12 @@
</field>
</record>
- <record id="product_template_action_time_based" model="ir.actions.act_window">
+ <record id="product_template_action_default_services" model="ir.actions.act_window">
<field name="name">Products</field>
<field name="res_model">product.template</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="sale_timesheet.product_template_view_search_sale_timesheet"/>
- <field name="context">{'search_default_product_time_based':1, 'default_type': 'service', 'default_invoice_policy': 'delivery', 'default_service_type': 'timesheet', 'default_service_policy': 'delivered_timesheet'}</field>
- </record>
-
- <record id="product_template_action_fixed" model="ir.actions.act_window">
- <field name="name">Products</field>
- <field name="res_model">product.template</field>
- <field name="view_mode">tree,form</field>
- <field name="search_view_id" ref="sale_timesheet.product_template_view_search_sale_timesheet"/>
- <field name="context">{'search_default_product_service_fixed':1, 'default_type': 'service', 'default_invoice_policy': 'order', 'default_service_type': 'timesheet', 'default_service_policy': 'ordered_timesheet'}</field>
- </record>
-
- <record id="product_template_action_milestone" model="ir.actions.act_window">
- <field name="name">Products</field>
- <field name="res_model">product.template</field>
- <field name="view_mode">tree,form</field>
- <field name="search_view_id" ref="sale_timesheet.product_template_view_search_sale_timesheet"/>
- <field name="context">{'search_default_product_service_milestone':1, 'default_type': 'service', 'default_invoice_policy': 'delivery', 'default_service_type': 'manual', 'default_service_policy': 'delivered_manual'}</field>
+ <field name="context">{'search_default_services': 1, 'default_type': 'service'}</field>
</record>
</odoo>
diff --git a/addons/sale_timesheet/views/res_config_settings_views.xml b/addons/sale_timesheet/views/res_config_settings_views.xml
index e849e944a28..4b6ca4e5476 100644
--- a/addons/sale_timesheet/views/res_config_settings_views.xml
+++ b/addons/sale_timesheet/views/res_config_settings_views.xml
@@ -17,15 +17,9 @@
Sell services and invoice time spent
</div>
<div class="content-group" name="msg_module_sale_timesheet">
- <div class="pt-2">
+ <div class="mt8">
<div>
- <button name="%(sale_timesheet.product_template_action_fixed)d" string="Configure your fixed price services" type="action" class="btn-link" icon="fa-arrow-right"/>
- </div>
- <div>
- <button name="%(sale_timesheet.product_template_action_time_based)d" string="Configure your time-based services" type="action" class="btn-link" icon="fa-arrow-right"/>
- </div>
- <div>
- <button name="%(sale_timesheet.product_template_action_milestone)d" string="Configure your milestone services" type="action" class="btn-link" icon="fa-arrow-right"/>
+ <button name="%(sale_timesheet.product_template_action_default_services)d" string="Configure your services" type="action" class="btn-link" icon="fa-arrow-right"/>
</div>
</div>
</div>
diff --git a/addons/stock/views/res_config_settings_views.xml b/addons/stock/views/res_config_settings_views.xml
index b783cc58bfb..d3c9f605fff 100644
--- a/addons/stock/views/res_config_settings_views.xml
+++ b/addons/stock/views/res_config_settings_views.xml
@@ -202,7 +202,7 @@
Set product attributes (e.g. color, size) to manage variants
</div>
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('group_product_variant', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('group_product_variant', '=', False)]}">
<button name="%(product.attribute_action)d" icon="fa-arrow-right" type="action" string="Attributes" class="btn-link"/>
</div>
</div>
@@ -218,7 +218,7 @@
Sell and purchase products in different units of measure
</div>
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('group_uom', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('group_uom', '=', False)]}">
<button name="%(uom.product_uom_form_action)d" icon="fa-arrow-right" type="action" string="Units Of Measure" class="btn-link"/>
</div>
</div>
@@ -234,7 +234,7 @@
Manage product packagings (e.g. pack of 6 bottles, box of 10 pieces)
</div>
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('group_stock_packaging', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('group_stock_packaging', '=', False)]}">
<button name="%(product.action_packaging_view)d" icon="fa-arrow-right" type="action" string="Product Packagings" class="btn-link"/>
</div>
</div>
@@ -300,7 +300,7 @@
Track product location in your warehouse
</div>
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('group_stock_multi_locations', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('group_stock_multi_locations', '=', False)]}">
<button name="%(stock.action_location_form)d" icon="fa-arrow-right" type="action" string="Locations" class="btn-link"/><br/>
<button name="stock.action_putaway_tree" icon="fa-arrow-right" type="action" string="Putaway Rules" class="btn-link"/>
</div>
@@ -317,7 +317,7 @@
Manage several warehouses
</div>
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('group_stock_multi_warehouses', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('group_stock_multi_warehouses', '=', False)]}">
<button name="%(stock.action_warehouse_form)d" icon="fa-arrow-right" type="action" string="Warehouses" class="btn-link"/>
</div>
</div>
@@ -333,7 +333,7 @@
Use your own routes
</div>
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('group_stock_adv_location', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('group_stock_adv_location', '=', False)]}">
<button name="%(stock.action_warehouse_form)d" icon="fa-arrow-right" type="action" string="Set Warehouse Routes" class="btn-link"/>
</div>
</div>
diff --git a/addons/web/static/src/scss/form_view.scss b/addons/web/static/src/scss/form_view.scss
index f01fedbbab1..532d3ab3de4 100644
--- a/addons/web/static/src/scss/form_view.scss
+++ b/addons/web/static/src/scss/form_view.scss
@@ -924,7 +924,7 @@
}
}
button.btn-link:first-child {
- padding-left: 0;
+ padding: 0;
}
a.oe-link {
font-size: 12px;
diff --git a/addons/website/views/res_config_settings_views.xml b/addons/website/views/res_config_settings_views.xml
index 73db6be76d1..ff0ac73f2b5 100644
--- a/addons/website/views/res_config_settings_views.xml
+++ b/addons/website/views/res_config_settings_views.xml
@@ -89,7 +89,7 @@
<field name="website_default_lang_id" widget="selection" attrs="{'required': [('website_id', '!=', False)]}"/>
</div>
</div>
- <div>
+ <div class="mt8">
<button type="action" name="%(base.action_view_base_language_install)d" string="Install new language" class="btn-link" icon="fa-arrow-right"/>
</div>
</div>
@@ -125,7 +125,7 @@
<div class="mt8">
<field name="auth_signup_uninvited" class="o_light_label" widget="radio" required="True"/>
</div>
- <div class="content-group">
+ <div class="mt8 content-group">
<button type="object" name="open_template_user" string="Default Access Rights" icon="fa-arrow-right" class="btn-link"/>
</div>
</div>
@@ -295,7 +295,7 @@
<field name="group_multi_website"/>
</div>
<div class="o_setting_right_pane">
- <label string="Multi-Websites" for="group_multi_website"/>
+ <label string="Multi-Website" for="group_multi_website"/>
<div class="text-muted">
Manage multiple websites
</div>
@@ -317,7 +317,7 @@
<field name="google_maps_api_key" attrs="{'required': [('has_google_maps', '=', True)]}" />
</div>
</div>
- <div attrs="{'invisible': [('has_google_maps', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('has_google_maps', '=', False)]}">
<a role="button" class="btn-link" target="_blank"
href="https://console.developers.google.com/flows/enableapi?apiid=maps_backend,static_maps_backend&amp;keyType=CLIENT_SIDE&amp;reusekey=true">
<i class="fa fa-arrow-right"/>
diff --git a/addons/website_sale/views/res_config_settings_views.xml b/addons/website_sale/views/res_config_settings_views.xml
index 787b830bfca..09264dbcf3a 100644
--- a/addons/website_sale/views/res_config_settings_views.xml
+++ b/addons/website_sale/views/res_config_settings_views.xml
@@ -19,7 +19,7 @@
Sell variants of a product using attributes (size, color, etc.)
</div>
<div class="content-group" attrs="{'invisible': [('group_product_variant', '=', False)]}">
- <div class="mt16">
+ <div class="mt8">
<button type="action" name="%(product.attribute_action)d" string="Attributes" class="btn-link" icon="fa-arrow-right"/>
</div>
</div>
@@ -114,7 +114,7 @@
<field name="group_product_pricelist" invisible="1"/>
<field name="product_pricelist_setting" class="o_light_label" widget="radio"/>
</div>
- <div attrs="{'invisible': [('group_product_pricelist', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('group_product_pricelist', '=', False)]}">
<button type="action" name="%(product.product_pricelist_action2)d" string="Pricelists" class="btn-link" icon="fa-arrow-right"/>
</div>
</div>
@@ -140,7 +140,7 @@
Sell in several currencies
</div>
<div class="content-group" attrs="{'invisible': [('group_multi_currency', '=', False)]}">
- <div class="mt16">
+ <div class="mt8">
<button type="action" name="%(base.action_currency_form)d" string="Currencies" class="btn-link" icon="fa-arrow-right"/>
</div>
</div>
diff --git a/addons/website_sale_coupon/views/res_config_settings_views.xml b/addons/website_sale_coupon/views/res_config_settings_views.xml
index af2f1beb791..da9e35f92ac 100644
--- a/addons/website_sale_coupon/views/res_config_settings_views.xml
+++ b/addons/website_sale_coupon/views/res_config_settings_views.xml
@@ -8,10 +8,10 @@
<field name="arch" type="xml">
<xpath expr="//div[@id='website_sale_coupon']" position="after">
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('module_sale_coupon', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('module_sale_coupon', '=', False)]}">
<button name="%(sale_coupon.sale_coupon_program_action_promo_program)d" icon="fa-arrow-right" type="action" string="Promotion Programs" class="btn-link"/>
</div>
- <div attrs="{'invisible': [('module_sale_coupon', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('module_sale_coupon', '=', False)]}">
<button name="%(sale_coupon.sale_coupon_program_action_coupon_program)d" icon="fa-arrow-right" type="action" string="Coupon Programs" class="btn-link"/>
</div>
</div>
diff --git a/addons/website_sale_delivery/views/res_config_settings_views.xml b/addons/website_sale_delivery/views/res_config_settings_views.xml
index da5aaef3e4e..97a521566fb 100644
--- a/addons/website_sale_delivery/views/res_config_settings_views.xml
+++ b/addons/website_sale_delivery/views/res_config_settings_views.xml
@@ -14,35 +14,35 @@
</div>
<div id="website_delivery_dhl" position="after">
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('module_delivery_dhl', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('module_delivery_dhl', '=', False)]}">
<button name="%(delivery.action_delivery_carrier_form)d" icon="fa-arrow-right" type="action" string="DHL Shipping Methods" class="btn-link" context="{'search_default_delivery_type': 'dhl'}"/>
</div>
</div>
</div>
<div id="website_delivery_fedex" position="after">
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('module_delivery_fedex', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('module_delivery_fedex', '=', False)]}">
<button name="%(delivery.action_delivery_carrier_form)d" icon="fa-arrow-right" type="action" string="FedEx Shipping Methods" class="btn-link" context="{'search_default_delivery_type': 'fedex'}"/>
</div>
</div>
</div>
<div id="website_delivery_usps" position="after">
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('module_delivery_usps', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('module_delivery_usps', '=', False)]}">
<button name="%(delivery.action_delivery_carrier_form)d" icon="fa-arrow-right" type="action" string="USPS Shipping Methods" class="btn-link" context="{'search_default_delivery_type': 'usps'}"/>
</div>
</div>
</div>
<div id="website_delivery_bpost" position="after">
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('module_delivery_bpost', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('module_delivery_bpost', '=', False)]}">
<button name="%(delivery.action_delivery_carrier_form)d" icon="fa-arrow-right" type="action" string="bpost Shipping Methods" class="btn-link" context="{'search_default_delivery_type': 'bpost'}"/>
</div>
</div>
</div>
<div id="website_delivery_easypost" position="after">
<div class="content-group">
- <div class="mt16" attrs="{'invisible': [('module_delivery_easypost', '=', False)]}">
+ <div class="mt8" attrs="{'invisible': [('module_delivery_easypost', '=', False)]}">
<button name="%(delivery.action_delivery_carrier_form)d" icon="fa-arrow-right" type="action" string="Easypost Shipping Methods" class="btn-link" context="{'search_default_delivery_type': 'easypost'}"/>
</div>
</div>