summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/website/controllers/backend.py19
-rw-r--r--addons/website/models/res_config_settings.py57
-rw-r--r--addons/website/models/website.py13
-rw-r--r--addons/website/views/ir_attachment_views.xml2
-rw-r--r--addons/website/views/res_config_settings_views.xml161
-rw-r--r--addons/website/views/res_partner_views.xml2
-rw-r--r--addons/website/views/website_views.xml39
-rw-r--r--addons/website_blog/views/website_blog_views.xml2
-rw-r--r--addons/website_crm/views/res_config_settings_views.xml2
-rw-r--r--addons/website_event/views/event_views.xml2
-rw-r--r--addons/website_form/models/models.py4
-rw-r--r--addons/website_form/views/res_config_view.xml5
-rw-r--r--addons/website_forum/views/forum.xml2
-rw-r--r--addons/website_payment/__manifest__.py2
-rw-r--r--addons/website_payment/views/res_config_settings_views.xml29
-rw-r--r--addons/website_payment/views/website_payment_view.xml22
-rw-r--r--addons/website_sale/views/product_views.xml7
-rw-r--r--addons/website_sale/views/res_config_settings_views.xml57
-rw-r--r--addons/website_sale_stock/views/res_config_settings_views.xml2
-rw-r--r--addons/website_slides/views/res_config_settings_views.xml1
-rw-r--r--addons/website_slides/views/website_slides_backend.xml2
-rw-r--r--addons/website_theme_install/models/website.py8
-rw-r--r--addons/website_theme_install/views/res_config_settings_views.xml6
-rw-r--r--addons/website_theme_install/views/views.xml12
-rw-r--r--addons/website_twitter/views/res_config_settings_views.xml4
25 files changed, 233 insertions, 229 deletions
diff --git a/addons/website/controllers/backend.py b/addons/website/controllers/backend.py
index d9ca7981612..1ff710d6494 100644
--- a/addons/website/controllers/backend.py
+++ b/addons/website/controllers/backend.py
@@ -3,6 +3,7 @@
from odoo import http
from odoo.http import request
+from odoo.tools.translate import _
class WebsiteBackend(http.Controller):
@@ -30,12 +31,10 @@ class WebsiteBackend(http.Controller):
website['selected'] = True
if has_group_designer:
- config = request.env['res.config.settings'].sudo().create({})
- config.website_id = current_website
- if config.has_google_analytics_dashboard:
+ if current_website.google_management_client_id and current_website.google_analytics_key:
dashboard_data['dashboards']['visits'] = dict(
- ga_client_id=config.google_management_client_id or '', # void string instead of stringified False
- ga_analytics_key=config.google_analytics_key or '', # void string instead of stringified False
+ ga_client_id=current_website.google_management_client_id or '',
+ ga_analytics_key=current_website.google_analytics_key or '',
)
return dashboard_data
@@ -44,23 +43,21 @@ class WebsiteBackend(http.Controller):
if not request.env.user.has_group('base.group_system'):
return {
'error': {
- 'title': 'Access Error',
- 'message': 'You do not have sufficient rights to perform that action.',
+ 'title': _('Access Error'),
+ 'message': _('You do not have sufficient rights to perform that action.'),
}
}
if not ga_analytics_key or not ga_client_id.endswith('.apps.googleusercontent.com'):
return {
'error': {
- 'title': 'Incorrect Client ID / Key',
- 'message': 'The Google Analytics Client ID or Key you entered seems incorrect.',
+ 'title': _('Incorrect Client ID / Key'),
+ 'message': _('The Google Analytics Client ID or Key you entered seems incorrect.'),
}
}
Website = request.env['website']
current_website = website_id and Website.browse(website_id) or Website.get_current_website()
request.env['res.config.settings'].create({
- 'has_google_analytics': True,
- 'has_google_analytics_dashboard': True,
'google_management_client_id': ga_client_id,
'google_analytics_key': ga_analytics_key,
'website_id': current_website,
diff --git a/addons/website/models/res_config_settings.py b/addons/website/models/res_config_settings.py
index 00ba6057875..6ccc989883f 100644
--- a/addons/website/models/res_config_settings.py
+++ b/addons/website/models/res_config_settings.py
@@ -45,32 +45,38 @@ class ResConfigSettings(models.TransientModel):
favicon = fields.Binary('Favicon', related='website_id.favicon')
google_maps_api_key = fields.Char(related='website_id.google_maps_api_key')
- has_google_analytics = fields.Boolean(related='website_id.has_google_analytics')
- has_google_analytics_dashboard = fields.Boolean(related='website_id.has_google_analytics_dashboard')
- has_google_maps = fields.Boolean(related='website_id.has_google_maps')
+ group_multi_website = fields.Boolean("Multi-website", implied_group="website.group_multi_website")
- social_twitter = fields.Char(related='website_id.social_twitter')
- social_facebook = fields.Char(related='website_id.social_facebook')
- social_github = fields.Char(related='website_id.social_github')
- social_linkedin = fields.Char(related='website_id.social_linkedin')
- social_youtube = fields.Char(related='website_id.social_youtube')
- social_googleplus = fields.Char(related='website_id.social_googleplus')
+ @api.depends('website_id')
+ def has_google_analytics(self):
+ self.has_google_analytics = bool(self.google_analytics_key)
- group_multi_website = fields.Boolean("Multi-website", implied_group="website.group_multi_website")
+ @api.depends('website_id')
+ def has_google_analytics_dashboard(self):
+ self.has_google_analytics_dashboard = bool(self.google_management_client_id)
+
+ @api.depends('website_id')
+ def has_google_maps(self):
+ self.has_google_maps = bool(self.google_maps_api_key)
- @api.onchange('has_google_analytics')
- def onchange_has_google_analytics(self):
+ def inverse_has_google_analytics(self):
if not self.has_google_analytics:
self.has_google_analytics_dashboard = False
- if not self.has_google_analytics:
self.google_analytics_key = False
- @api.onchange('has_google_analytics_dashboard')
- def onchange_has_google_analytics_dashboard(self):
+ def inverse_has_google_maps(self):
+ if not self.inverse_has_google_maps:
+ self._has_google_maps = False
+
+ def inverse_has_google_analytics_dashboard(self):
if not self.has_google_analytics_dashboard:
self.google_management_client_id = False
self.google_management_client_secret = False
+ has_google_analytics = fields.Boolean("Google Analytics", compute=has_google_analytics, inverse=inverse_has_google_analytics)
+ has_google_analytics_dashboard = fields.Boolean("Google Analytics Dashboard", compute=has_google_analytics_dashboard, inverse=inverse_has_google_analytics_dashboard)
+ has_google_maps = fields.Boolean("Google Maps", compute=has_google_maps, inverse=inverse_has_google_maps)
+
@api.onchange('language_ids')
def _onchange_language_ids(self):
# If current default language is removed from language_ids
@@ -102,3 +108,24 @@ class ResConfigSettings(models.TransientModel):
'url': '/',
'target': 'self',
}
+
+ def company_go_to(self):
+ return {
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'res.company',
+ 'type': 'ir.actions.act_window',
+ 'target': 'current',
+ 'res_id': self.website_id.company_id.id,
+ }
+
+ def action_website_create_new(self):
+ return {
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'view_id': self.env.ref('website.view_website_form').id,
+ 'res_model': 'website',
+ 'type': 'ir.actions.act_window',
+ 'target': 'current',
+ 'res_id': False,
+ }
diff --git a/addons/website/models/website.py b/addons/website/models/website.py
index ac6c1fa8142..90aba4b7438 100644
--- a/addons/website/models/website.py
+++ b/addons/website/models/website.py
@@ -67,7 +67,7 @@ class Website(models.Model):
def _default_social_googleplus(self):
return self.env.ref('base.main_company').social_googleplus
- name = fields.Char('Website Name')
+ name = fields.Char('Website Name', required=True)
domain = fields.Char('Website Domain')
country_group_ids = fields.Many2many('res.country.group', 'website_country_group_rel', 'website_id', 'country_group_id',
string='Country Groups', help='Used when multiple websites have the same domain.')
@@ -89,9 +89,6 @@ class Website(models.Model):
google_management_client_secret = fields.Char('Google Client Secret')
google_maps_api_key = fields.Char('Google Maps API Key')
- has_google_analytics = fields.Boolean("Google Analytics")
- has_google_analytics_dashboard = fields.Boolean("Embedded Google Analytics")
- has_google_maps = fields.Boolean("Google Maps")
user_id = fields.Many2one('res.users', string='Public User', required=True)
cdn_activated = fields.Boolean('Content Delivery Network (CDN)')
@@ -683,6 +680,14 @@ class Website(models.Model):
return self.env.ref('website.backend_dashboard').read()[0]
return self.env.ref('website.action_website').read()[0]
+ def button_go_website(self):
+ self._force()
+ return {
+ 'type': 'ir.actions.act_url',
+ 'url': '/',
+ 'target': 'self',
+ }
+
class SeoMetadata(models.AbstractModel):
diff --git a/addons/website/views/ir_attachment_views.xml b/addons/website/views/ir_attachment_views.xml
index 7be322eaa65..3fbb6e441d3 100644
--- a/addons/website/views/ir_attachment_views.xml
+++ b/addons/website/views/ir_attachment_views.xml
@@ -6,7 +6,7 @@
<field name="inherit_id" ref="base.view_attachment_form"/>
<field name="arch" type="xml">
<field name="mimetype" position="after">
- <field name="website_id" groups="base.group_multi_website"/>
+ <field name="website_id" options="{'no_create': True}" groups="base.group_multi_website"/>
</field>
</field>
</record>
diff --git a/addons/website/views/res_config_settings_views.xml b/addons/website/views/res_config_settings_views.xml
index b4cb5158b59..436e3f16877 100644
--- a/addons/website/views/res_config_settings_views.xml
+++ b/addons/website/views/res_config_settings_views.xml
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
-
+ <record id="action_website_add_features" model="ir.actions.act_window">
+ <field name="name">Apps</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">ir.module.module</field>
+ <field name="view_mode">kanban,tree,form</field>
+ <field name="context" eval="{'search_default_category_id': ref('base.module_category_website')}"/>
+ </record>
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.website</field>
@@ -21,11 +27,18 @@
<div class="mt16">
<field name="website_id" options="{'no_open': True, 'no_create_edit': True}"/>
</div>
+ <div>
+ <button name="action_website_create_new" type="object" string="Create a New Website" class="btn-secondary" icon="fa-arrow-right"/>
+ </div>
</div>
</div>
</div>
<h2>Website</h2>
<div class="row mt16 o_settings_container" id="webmaster_settings">
+ <div class="col-12 o_setting_box" id="website_action_setting">
+ <button name="website_go_to" type="object" string="Go to Website" class="btn btn-primary" icon="fa-globe"/>
+ <button name="%(website.action_website_add_features)d" type="action" string="Add features" class="ml-2 btn btn-secondary" icon="fa-plus"/>
+ </div>
<div class="col-12 col-lg-6 o_setting_box" id="domain_setting">
<div class="o_setting_right_pane">
<label for="website_name" string="Website Title"/>
@@ -55,33 +68,6 @@
<field name="website_company_id"/>
</div>
</div>
- <div class="col-12 col-lg-6 o_setting_box" id="domain_settings" groups="website.group_multi_website">
- <div class="o_setting_right_pane">
- <label string="Domain" for="website_domain"/>
- <span class="fa fa-lg fa-globe" title="Values set here are website-specific." groups="website.group_multi_website"/>
- <div class="text-muted">
- Display this website when users visit this domain
- </div>
- <div class="mt16">
- <field name="website_domain"/>
- </div>
- <div>
- <button name="website_go_to" type="object" string="Go to website" class="btn-link" icon="fa-arrow-right"/>
- </div>
- </div>
- </div>
- <div class="col-12 col-lg-6 o_setting_box" id="website_geoip_settings" groups="website.group_multi_website">
- <div class="o_setting_right_pane">
- <label string="Country Groups" for="website_country_group_ids"/>
- <span class="fa fa-lg fa-globe" title="Values set here are website-specific." groups="website.group_multi_website"/>
- <div class="text-muted">
- Display this website for users from these country groups
- </div>
- <div class="mt16">
- <field name="website_country_group_ids" widget="many2many_tags"/>
- </div>
- </div>
- </div>
<div class="col-12 col-lg-6 o_setting_box" id="languages_setting">
<div class="o_setting_right_pane">
<label for="language_ids"/>
@@ -104,14 +90,38 @@
</div>
</div>
</div>
- <div id="multi_website" class="col-xs-12 col-md-6 o_setting_box">
+ <div class="col-12 col-lg-6 o_setting_box" id="domain_settings" groups="website.group_multi_website">
+ <div class="o_setting_right_pane">
+ <label string="Domain" for="website_domain"/>
+ <span class="fa fa-lg fa-globe" title="Values set here are website-specific." groups="website.group_multi_website"/>
+ <div class="text-muted">
+ Display this website when users visit this domain
+ </div>
+ <div class="mt8">
+ <field name="website_domain"/>
+ </div>
+ <div class="mt8 text-muted" title="You can have 2 websites with same domain AND a condition on country group to select wich website use.">
+ Once the selection of available website by domain is done, you can filter by country group.
+ </div>
+ <div class="mt8">
+ <field name="website_country_group_ids" widget="many2many_tags"/>
+ </div>
+ </div>
+ </div>
+ <div class="col-12 col-lg-6 o_setting_box" id="auth_signup_uninvited_setting">
<div class="o_setting_left_pane">
- <field name="group_multi_website"/>
</div>
<div class="o_setting_right_pane">
- <label string="Multi-Websites" for="group_multi_website"/>
+ <label for="auth_signup_uninvited"/>
+ <span class="fa fa-lg fa-globe" title="Values set here are website-specific." groups="website.group_multi_website"/>
<div class="text-muted">
- Manage multiple websites
+ Let your customers log in to see their documents
+ </div>
+ <div class="mt8">
+ <field name="auth_signup_uninvited" class="o_light_label" widget="radio" required="True"/>
+ </div>
+ <div class="content-group">
+ <button type="object" name="open_template_user" string="Default Access Rights" icon="fa-arrow-right" class="btn-link"/>
</div>
</div>
</div>
@@ -195,78 +205,29 @@
</div>
</div>
</div>
- <div class="col-12 col-lg-6 o_setting_box" id="utm_tracker_settings" title="Analyze the efficiency of your marketing campaigns by using trackable UTM trackers (campaigns, medium, sources). Create trackers and follow clicks from the Promote menu of your website. Those trackers can be used in Google Analytics or in Odoo reports where you can see the opportunities and sales revenue generated thanks to your links.">
- <div class="o_setting_left_pane">
- <field name="module_website_links"/>
- </div>
- <div class="o_setting_right_pane">
- <label for="module_website_links"/>
- <div class="text-muted">
- Track clicks on UTM links
- </div>
- </div>
- </div>
<div class="col-12 col-lg-6 o_setting_box" groups="website.group_multi_website">
<div class="o_setting_left_pane">
<field name="specific_user_account"/>
</div>
<div class="o_setting_right_pane">
<label for="specific_user_account"/>
- <div class="text-muted">
- Force your user to create an account per website
- </div>
- </div>
- </div>
- <div class="col-12 col-lg-6 o_setting_box" id="auth_signup_uninvited_setting">
- <div class="o_setting_left_pane">
- </div>
- <div class="o_setting_right_pane">
- <label for="auth_signup_uninvited"/>
<span class="fa fa-lg fa-globe" title="Values set here are website-specific." groups="website.group_multi_website"/>
<div class="text-muted">
- Let your customers log in to see their documents
- </div>
- <div class="mt8">
- <field name="auth_signup_uninvited" class="o_light_label" widget="radio" required="True"/>
- </div>
- <div class="content-group">
- <button type="object" name="open_template_user" string="Default Access Rights" icon="fa-arrow-right" class="btn-link"/>
+ Force your user to create an account per website
</div>
</div>
</div>
+
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane"/>
<div class="o_setting_right_pane">
<label string="Social Media" for="social_twitter"/>
- <span class="fa fa-lg fa-globe" title="Values set here are website-specific." groups="website.group_multi_website"/>
+ <span class="fa fa-lg fa-building" title="Values set here are company specific." groups="website.group_multi_website"/>
<div class="text-muted">
Add links to social media on your website
</div>
<div class="content-group">
- <div class="row mt16">
- <label for="social_twitter" class="col-md-4 o_light_label"/>
- <field name="social_twitter"/>
- </div>
- <div class="row">
- <label for="social_facebook" class="col-md-4 o_light_label"/>
- <field name="social_facebook"/>
- </div>
- <div class="row">
- <label for="social_github" class="col-md-4 o_light_label"/>
- <field name="social_github"/>
- </div>
- <div class="row">
- <label for="social_linkedin" class="col-md-4 o_light_label"/>
- <field name="social_linkedin"/>
- </div>
- <div class="row">
- <label for="social_youtube" class="col-md-4 o_light_label"/>
- <field name="social_youtube"/>
- </div>
- <div class="row">
- <label for="social_googleplus" class="col-md-4 o_light_label"/>
- <field name="social_googleplus"/>
- </div>
+ <button type="object" name="company_go_to" string="Configure my social media links" icon="fa-arrow-right" class="btn-link"/>
</div>
</div>
</div>
@@ -296,20 +257,34 @@
</div>
</div>
</div>
+ <div class="col-12 col-lg-6 o_setting_box" id="utm_tracker_settings" title="Analyze the efficiency of your marketing campaigns by using trackable UTM trackers (campaigns, medium, sources). Create trackers and follow clicks from the Promote menu of your website. Those trackers can be used in Google Analytics or in Odoo reports where you can see the opportunities and sales revenue generated thanks to your links.">
+ <div class="o_setting_left_pane">
+ <field name="module_website_links"/>
+ </div>
+ <div class="o_setting_right_pane">
+ <label for="module_website_links"/>
+ <div class="text-muted">
+ Track clicks on UTM links
+ </div>
+ </div>
+ </div>
+ <div id="multi_website" class="col-xs-12 col-md-6 o_setting_box">
+ <div class="o_setting_left_pane">
+ <field name="group_multi_website"/>
+ </div>
+ <div class="o_setting_right_pane">
+ <label string="Multi-Websites" for="group_multi_website"/>
+ <div class="text-muted">
+ Manage multiple websites
+ </div>
+ </div>
+ </div>
</div>
</div>
</xpath>
</field>
</record>
- <record id="action_website_add_features" model="ir.actions.act_window">
- <field name="name">Apps</field>
- <field name="type">ir.actions.act_window</field>
- <field name="res_model">ir.module.module</field>
- <field name="view_mode">kanban,tree,form</field>
- <field name="context" eval="{'search_default_category_id': ref('base.module_category_website')}"/>
- </record>
-
<record id="action_website_configuration" model="ir.actions.act_window">
<field name="name">Settings</field>
<field name="type">ir.actions.act_window</field>
diff --git a/addons/website/views/res_partner_views.xml b/addons/website/views/res_partner_views.xml
index 51bc3590725..bf405086b4e 100644
--- a/addons/website/views/res_partner_views.xml
+++ b/addons/website/views/res_partner_views.xml
@@ -6,7 +6,7 @@
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="company_id" position="after" options="{'no_create': True}">
- <field name="website_id" groups="website.group_multi_website"/>
+ <field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
</field>
</field>
</record>
diff --git a/addons/website/views/website_views.xml b/addons/website/views/website_views.xml
index 0153704be49..f83d9940520 100644
--- a/addons/website/views/website_views.xml
+++ b/addons/website/views/website_views.xml
@@ -15,22 +15,27 @@
<field name="arch" type="xml">
<form string="Website Settings">
<div name="domain">
- <separator name="domain" string="Domain"/>
<group name="domain">
- <field name="name"/>
- <field name="domain"/>
- <field name="country_group_ids" widget="many2many_tags"/>
- <field name="google_analytics_key" placeholder="UA-XXXXXXXX-Y"/>
+ <group>
+ <field name="name"/>
+ <field name="domain"/>
+ <field name="country_group_ids" widget="many2many_tags"/>
+ </group>
</group>
</div>
<div name="other">
- <separator string="Other Info"/>
<group name="other">
- <field name="company_id" groups="base.group_multi_company"/>
- <field name="language_ids" widget="many2many_checkboxes"/>
- <field name="default_lang_id" widget="selection"/>
+ <group>
+ <field name="company_id" groups="base.group_multi_company"/>
+ <field name="language_ids" widget="many2many_tags"/>
+ <field name="default_lang_id" widget="selection"/>
+ </group>
</group>
</div>
+ <div name="buttons">
+ <button type="object" name="button_go_website" class="btn btn-primary" icon="fa-globe">Go to website</button>
+ <button name="%(website.action_website_add_features)d" type="action" class="btn btn-secondary ml-2" icon="fa-plus">Add Features</button>
+ </div>
</form>
</field>
</record>
@@ -89,7 +94,7 @@
<field name="url_to"/>
</group>
<group>
- <field name="website_id" groups="website.group_multi_website"/>
+ <field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
<field name="active"/>
</group>
</group>
@@ -106,7 +111,7 @@
<field name="type"/>
<field name="url_from"/>
<field name="url_to"/>
- <field name="website_id" groups="website.group_multi_website"/>
+ <field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
<field name="active"/>
<field name="sequence" widget="handle" />
</tree>
@@ -135,8 +140,8 @@
<field name="name"/>
<field name="url"/>
<field name="view_id"/>
- <field groups="base.group_no_one" name="is_published"/>
- <field groups="website.group_multi_website" name="website_id"/>
+ <field name="is_published" groups="base.group_no_one"/>
+ <field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
</group>
<group>
<field name="website_indexed"/>
@@ -193,7 +198,7 @@
<group>
<field name="new_window"/>
<field name="sequence"/>
- <field name="website_id" groups="website.group_multi_website"/>
+ <field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
</group>
<group>
<field name="parent_id"/>
@@ -235,8 +240,7 @@
<search string="Search Menus">
<field name="name"/>
<field name="url"/>
- <field name="website_id"/>
-
+ <field name="website_id" groups="website.group_multi_website"/>
<group string="Group By">
<filter string="name" name="group_by_name" domain="[]" context="{'group_by':'name'}"/>
<filter string="url" name="group_by_url" domain="[]" context="{'group_by':'url'}"/>
@@ -263,7 +267,7 @@
<field name="inherit_id" ref="base.view_view_form"/>
<field name="arch" type="xml">
<field name="name" position="after">
- <field name="website_id" groups="website.group_multi_website"/>
+ <field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
<field name="key" readonly="1"/>
<field name="page_ids" invisible="1" />
<field name="first_page_id" attrs="{'invisible': [('page_ids', '=', [])]}" />
@@ -309,5 +313,6 @@
<menuitem id="menu_website_google_analytics" parent="menu_dashboard"
sequence="20" name="Analytics"
action="website.ir_actions_server_website_google_analytics"/>
+
</data>
</odoo>
diff --git a/addons/website_blog/views/website_blog_views.xml b/addons/website_blog/views/website_blog_views.xml
index e9adbde891b..85386651ec1 100644
--- a/addons/website_blog/views/website_blog_views.xml
+++ b/addons/website_blog/views/website_blog_views.xml
@@ -27,7 +27,7 @@
<group>
<field name="name"/>
<field name="subtitle"/>
- <field name="website_id" groups="website.group_multi_website"/>
+ <field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
</group>
</sheet>
<div class="oe_chatter">
diff --git a/addons/website_crm/views/res_config_settings_views.xml b/addons/website_crm/views/res_config_settings_views.xml
index e8f9f023fd0..ee99fe898d5 100644
--- a/addons/website_crm/views/res_config_settings_views.xml
+++ b/addons/website_crm/views/res_config_settings_views.xml
@@ -5,7 +5,7 @@
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="website.res_config_settings_view_form"/>
<field name="arch" type="xml">
- <div id="multi_website" position="after">
+ <div id="webmaster_settings" position="after">
<h2>Communication</h2>
<div class="row mt16 o_settings_container" id="communication_settings">
<div class="col-12 col-lg-6 o_setting_box" id="contact_form_install_setting" title="New messages are managed as leads or opportunities in your CRM app.">
diff --git a/addons/website_event/views/event_views.xml b/addons/website_event/views/event_views.xml
index 3c533e9e2ec..6b1f1dc8456 100644
--- a/addons/website_event/views/event_views.xml
+++ b/addons/website_event/views/event_views.xml
@@ -31,7 +31,7 @@
<field name="inherit_id" ref="event.view_event_form"/>
<field name="arch" type="xml">
<field name="organizer_id" position="before">
- <field name="website_id" groups="website.group_multi_website"/>
+ <field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
</field>
<button name="toggle_active" position="before">
<field name="website_url" invisible="1"/>
diff --git a/addons/website_form/models/models.py b/addons/website_form/models/models.py
index 32b2d82d807..fb51dacc570 100644
--- a/addons/website_form/models/models.py
+++ b/addons/website_form/models/models.py
@@ -1,8 +1,6 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
-import itertools
-
from odoo import models, fields, api
from odoo.http import request
@@ -10,7 +8,7 @@ from odoo.http import request
class website_form_config(models.Model):
_inherit = 'website'
- website_form_enable_metadata = fields.Boolean('Write metadata', help="Enable writing metadata on form submit.")
+ website_form_enable_metadata = fields.Boolean('Technical data on contact form', help="You can choose to log technical data like IP, User Agent ,...")
def _website_form_last_record(self):
if request and request.session.form_builder_model_model:
diff --git a/addons/website_form/views/res_config_view.xml b/addons/website_form/views/res_config_view.xml
index 5f68c0c5c0c..b5ce3e72c0d 100644
--- a/addons/website_form/views/res_config_view.xml
+++ b/addons/website_form/views/res_config_view.xml
@@ -4,13 +4,14 @@
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="website.res_config_settings_view_form"/>
<field name="arch" type="xml">
- <xpath expr="//div[@id='google_analytics_dashboard_setting']" position="after">
- <div class="col-12 col-lg-6 o_setting_box">
+ <xpath expr="//div[@id='google_analytics_dashboard_setting']" position="before">
+ <div class="col-12 col-lg-6 o_setting_box" groups="base.group_no_one">
<div class="o_setting_left_pane">
<field name="website_form_enable_metadata"/>
</div>
<div class="o_setting_right_pane">
<label for="website_form_enable_metadata"/>
+ <span class="fa fa-lg fa-globe" title="Values set here are website-specific." groups="website.group_multi_website"/>
<div class="text-muted">
Track metadata (IP, User Agent, ...) on your Website Forms
</div>
diff --git a/addons/website_forum/views/forum.xml b/addons/website_forum/views/forum.xml
index cbff462ce45..f6305f3cdb2 100644
--- a/addons/website_forum/views/forum.xml
+++ b/addons/website_forum/views/forum.xml
@@ -41,7 +41,7 @@
</h1>
<field name="description"/>
<group>
- <field name="website_id" groups="website.group_multi_website"/>
+ <field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
</group>
<notebook>
<page string="Options">
diff --git a/addons/website_payment/__manifest__.py b/addons/website_payment/__manifest__.py
index 67ac6d46974..c71a0967d94 100644
--- a/addons/website_payment/__manifest__.py
+++ b/addons/website_payment/__manifest__.py
@@ -14,7 +14,7 @@ This is a bridge module which integrates payment acquirers with Website app.
'portal',
],
'data': [
- 'views/website_payment_view.xml',
+ 'views/res_config_settings_views.xml',
],
'auto_install': False,
}
diff --git a/addons/website_payment/views/res_config_settings_views.xml b/addons/website_payment/views/res_config_settings_views.xml
new file mode 100644
index 00000000000..d0d73203ae2
--- /dev/null
+++ b/addons/website_payment/views/res_config_settings_views.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data>
+ <record id="res_config_settings_view_form" model="ir.ui.view">
+ <field name="name">res.config.settings.view.form.inherit.website.payment</field>
+ <field name="model">res.config.settings</field>
+ <field name="inherit_id" ref="website.res_config_settings_view_form"/>
+ <field name="arch" type="xml">
+ <xpath expr="//div[@id='webmaster_settings']" position='inside'>
+ <div class="col-12 col-lg-6 o_setting_box" id="payment_settings">
+ <div class="o_setting_left_pane"/>
+ <div class="o_setting_right_pane">
+ <span class="o_form_label">Payment Acquirers</span>
+ <div class="text-muted">
+ Add payment methods on your website
+ </div>
+ <div>
+ <button type="action"
+ name="%(payment.action_payment_acquirer)d"
+ string="Configure payment acquirers"
+ class="btn-link" icon="fa-arrow-right"/>
+ </div>
+ </div>
+ </div>
+ </xpath>
+ </field>
+ </record>
+ </data>
+</odoo>
diff --git a/addons/website_payment/views/website_payment_view.xml b/addons/website_payment/views/website_payment_view.xml
deleted file mode 100644
index fda8ad6386b..00000000000
--- a/addons/website_payment/views/website_payment_view.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<odoo>
- <data>
- <record id="website_settings_payment" model="ir.ui.view">
- <field name="name">website.form</field>
- <field name="model">website</field>
- <field name="inherit_id" ref="website.view_website_form"/>
- <field name="arch" type="xml">
- <xpath expr="//div[@name='other']" position='before'>
- <div name="shop">
- <separator string="E-Commerce"/>
- <group name="shop">
- <button type="action"
- name="%(payment.action_payment_acquirer)d"
- string="Configure payment acquirers" class="oe_link"/>
- </group>
- </div>
- </xpath>
- </field>
- </record>
- </data>
-</odoo>
diff --git a/addons/website_sale/views/product_views.xml b/addons/website_sale/views/product_views.xml
index 5661df3840c..13c77ff81c0 100644
--- a/addons/website_sale/views/product_views.xml
+++ b/addons/website_sale/views/product_views.xml
@@ -107,7 +107,7 @@
<group name="shop">
<group string="Shop">
<field name="website_url" invisible="1"/>
- <field name="website_id" groups="website.group_multi_website"/>
+ <field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
<field name="public_categ_ids" widget="many2many_tags" string="Categories"/>
<field name="alternative_product_ids" widget="many2many_tags"/>
<field name="accessory_product_ids" widget="many2many_tags"/>
@@ -199,7 +199,7 @@
<group>
<field name="name"/>
<field name="parent_id"/>
- <field name="website_id" groups="website.group_multi_website"/>
+ <field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
<field name="sequence"/>
</group>
</div>
@@ -243,7 +243,7 @@
<field name="arch" type="xml">
<field name='currency_id' position='after'>
<field name="selectable"/>
- <field name="website_id" string="Allow to use on " placeholder="None website"/>
+ <field name="website_id" options="{'no_create': True}" string="Allow to use on " placeholder="None website"/>
</field>
</field>
</record>
@@ -255,6 +255,7 @@
<field name="arch" type="xml">
<field name="currency_id" position="after">
<field name="selectable" />
+ <field name="website_id" groups="website.group_multi_website"/>
</field>
</field>
</record>
diff --git a/addons/website_sale/views/res_config_settings_views.xml b/addons/website_sale/views/res_config_settings_views.xml
index ed55df21e5b..bcb93d56802 100644
--- a/addons/website_sale/views/res_config_settings_views.xml
+++ b/addons/website_sale/views/res_config_settings_views.xml
@@ -26,7 +26,7 @@
</xpath>
<div id="webmaster_settings" position="after">
- <h2>Product Catalog</h2>
+ <h2>Products</h2>
<div class="row mt16 o_settings_container" id="sale_product_catalog_settings">
<div class="col-12 col-lg-6 o_setting_box" id="product_attributes_setting">
<div class="o_setting_left_pane">
@@ -55,18 +55,15 @@
</div>
</div>
</div>
- </div>
- <h2>Customer Experience</h2>
- <div class="row mt16 o_settings_container" id="sale_customer_experience_settings">
- <div class="col-12 col-lg-6 o_setting_box" id="whishlist_option_setting">
+ <div class="col-12 col-lg-6 o_setting_box" id="wishlist_option_setting">
<div class="o_setting_left_pane">
<field name="module_website_sale_wishlist"/>
</div>
<div class="o_setting_right_pane">
<label for="module_website_sale_wishlist"/>
<div class="text-muted">
- Let returning shoppers save products in a whishlist
+ Let returning shoppers save products in a wishlist
</div>
</div>
</div>
@@ -309,32 +306,12 @@
</div>
</div>
- <h2>Orders</h2>
+ <h2>Orders Followup</h2>
<div class="row mt16 o_settings_container" id="sale_checkout_settings">
- <div class="col-xs-12 col-lg-6 o_setting_box" id="abandoned_carts_setting" title="Abandoned carts are all carts for which no transaction has been confirmed while the customer has filled in their address. You can find them in *Website > Orders > Abandoned Carts*. From there you can send a recovery email to stimulate the customers to resume their order.">
- <div class="o_setting_left_pane"/>
- <div class="o_setting_right_pane">
- <span class="o_form_label">Abandoned Carts</span>
- <div class="text-muted">
- Send a recovery email when a cart is abandoned
- </div>
- <div class="content-group" title="This email template is suggested by default when you send a recovery email.">
- <div class="row mt16">
- <label for="cart_recovery_mail_template" string="Email Template" class="col-lg-3 o_light_label"/>
- <field name="cart_recovery_mail_template" class="oe_inline"/>
- </div>
- </div>
- <div class="content-group" title="Carts are flagged as abandoned after this delay.">
- <div class="row mt16">
- <label for="cart_abandoned_delay" string="Cart is abandoned after" class="col-lg-6 o_light_label"/>
- <span class="col-lg-3"><field name="cart_abandoned_delay"/>hour(s).</span>
- </div>
- </div>
- </div>
- </div>
<div class="col-12 col-lg-6 o_setting_box" id="checkout_assignation_setting">
<div class="o_setting_right_pane">
<span class="o_form_label">Assignation</span>
+ <span class="fa fa-lg fa-globe" title="Values set here are website-specific." groups="website.group_multi_website"/>
<div class="text-muted">
Assignation of online orders
</div>
@@ -350,6 +327,30 @@
</div>
</div>
</div>
+ <div class="col-xs-12 col-lg-6 o_setting_box" id="abandoned_carts_setting" title="Abandoned carts are all carts for which no transaction has been confirmed while the customer has filled in their address. You can find them in *Website > Orders > Abandoned Carts*. From there you can send a recovery email to stimulate the customers to resume their order.">
+ <div class="o_setting_left_pane"/>
+ <div class="o_setting_right_pane">
+ <span class="o_form_label">Abandoned Carts</span>
+ <span class="fa fa-lg fa-globe" title="Values set here are website-specific." groups="website.group_multi_website"/>
+ <div class="text-muted">
+ Send a recovery email when a cart is abandoned
+ </div>
+ <div class="content-group" title="This email template is suggested by default when you send a recovery email.">
+ <div class="row mt16">
+ <label for="cart_recovery_mail_template" string="Email Template" class="col-lg-4 o_light_label"/>
+ <field name="cart_recovery_mail_template" class="oe_inline"/>
+ </div>
+ </div>
+ <div class="content-group" title="Carts are flagged as abandoned after this delay.">
+ <div class="row mt16">
+ <div class="col-12">
+ <label for="cart_abandoned_delay" string="Cart is abandoned after" class="o_light_label"/>
+ <field class="col-2" name="cart_abandoned_delay"/> hour(s).
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
</div>
</div>
</field>
diff --git a/addons/website_sale_stock/views/res_config_settings_views.xml b/addons/website_sale_stock/views/res_config_settings_views.xml
index 2f41856a038..1bbd33ef454 100644
--- a/addons/website_sale_stock/views/res_config_settings_views.xml
+++ b/addons/website_sale_stock/views/res_config_settings_views.xml
@@ -13,7 +13,7 @@
<xpath expr="//div[@name='stock_inventory_availability']" position="inside">
<div class="content-group">
<div class="row mt16" title="Default availability mode set on newly created storable products. This can be changed at the product level.">
- <label for="inventory_availability" string="Default Availability Mode" class="col-lg-3 o_light_label" />
+ <label for="inventory_availability" string="Default Mode" class="col-lg-3 o_light_label" />
<field name="inventory_availability" string="Inventory"/>
</div><br/>
<div class="row" attrs="{'invisible': [('inventory_availability', '!=', 'threshold')]}">
diff --git a/addons/website_slides/views/res_config_settings_views.xml b/addons/website_slides/views/res_config_settings_views.xml
index 8eb95f74fce..1d702e1ec28 100644
--- a/addons/website_slides/views/res_config_settings_views.xml
+++ b/addons/website_slides/views/res_config_settings_views.xml
@@ -9,6 +9,7 @@
<div class="col-12 col-lg-6 o_setting_box" id="slides_install_setting">
<div class="o_setting_right_pane">
<span class="o_form_label">Slides</span>
+ <span class="fa fa-lg fa-globe" title="Values set here are website-specific." groups="website.group_multi_website"/>
<div class="text-muted">
Google Drive API Key
</div>
diff --git a/addons/website_slides/views/website_slides_backend.xml b/addons/website_slides/views/website_slides_backend.xml
index b3f4ade55ba..cf496a3d24b 100644
--- a/addons/website_slides/views/website_slides_backend.xml
+++ b/addons/website_slides/views/website_slides_backend.xml
@@ -231,7 +231,7 @@
<page string="General">
<group>
<group>
- <field name="website_id" groups="website.group_multi_website"/>
+ <field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
<field name="promote_strategy" widget="radio"/>
<field name="custom_slide_id" class="oe_edit_only" attrs="{'invisible': [('promote_strategy', '!=', 'custom')]}" domain="[('channel_id','=',id), ('website_published','=',True)]"/>
<field name="promoted_slide_id" attrs="{'invisible': [('promote_strategy', '!=', 'custom')]}"/>
diff --git a/addons/website_theme_install/models/website.py b/addons/website_theme_install/models/website.py
index 46ee9df91e2..6bf339362b5 100644
--- a/addons/website_theme_install/models/website.py
+++ b/addons/website_theme_install/models/website.py
@@ -15,11 +15,3 @@ class Website(models.Model):
'url': '/web#action=website_theme_install.theme_install_kanban_action',
'target': 'self',
}
-
- def button_go_website(self):
- self._force()
- return {
- 'type': 'ir.actions.act_url',
- 'url': '/',
- 'target': 'self',
- }
diff --git a/addons/website_theme_install/views/res_config_settings_views.xml b/addons/website_theme_install/views/res_config_settings_views.xml
index b7c3598569c..82176970aeb 100644
--- a/addons/website_theme_install/views/res_config_settings_views.xml
+++ b/addons/website_theme_install/views/res_config_settings_views.xml
@@ -5,10 +5,8 @@
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="website.res_config_settings_view_form"/>
<field name="arch" type="xml">
- <xpath expr="//div[@id='domain_setting']/div[hasclass('o_setting_right_pane')]" position="inside">
- <div>
- <button name="install_theme_on_current_website" type="object" string="Change theme" class="btn-link" icon="fa-arrow-right"/>
- </div>
+ <xpath expr="//button[@name='website_go_to']" position="after">
+ <button name="install_theme_on_current_website" type="object" string="Choose a theme" class="ml-2 btn btn-primary" icon="fa-paint-brush"/>
</xpath>
</field>
</record>
diff --git a/addons/website_theme_install/views/views.xml b/addons/website_theme_install/views/views.xml
index 7ad568c4def..36de43db959 100644
--- a/addons/website_theme_install/views/views.xml
+++ b/addons/website_theme_install/views/views.xml
@@ -111,19 +111,13 @@ action = {
</xpath>
</template>
- <!-- Add link to theme install in default customize modal -->
- <record id="website_settings_payment" model="ir.ui.view">
+ <record id="view_website_form_inherit_view_themes" model="ir.ui.view">
<field name="name">website.form</field>
<field name="model">website</field>
<field name="inherit_id" ref="website.view_website_form"/>
<field name="arch" type="xml">
- <xpath expr="//div[@name='other']" position='before'>
- <div name="theme">
- <separator string="Theme"/>
- <group name="Theme">
- <button type="object" name="button_view_theme" class="btn btn-primary">View themes</button>
- </group>
- </div>
+ <xpath expr="//button[@name='button_go_website']" position='after'>
+ <button type="object" name="button_view_theme" class="btn btn-primary ml-2" icon="fa-paint-brush">Choose a theme</button>
</xpath>
</field>
</record>
diff --git a/addons/website_twitter/views/res_config_settings_views.xml b/addons/website_twitter/views/res_config_settings_views.xml
index 61f9bb7a069..47096a973db 100644
--- a/addons/website_twitter/views/res_config_settings_views.xml
+++ b/addons/website_twitter/views/res_config_settings_views.xml
@@ -9,6 +9,7 @@
<div class="col-12 col-lg-6 o_setting_box" id="twitter_roller_install_setting">
<div class="o_setting_right_pane">
<span class="o_form_label">Twitter Roller</span>
+ <span class="fa fa-lg fa-globe" title="Values set here are website-specific." groups="website.group_multi_website"/>
<div class="text-muted">
Twitter API Credentials
</div>
@@ -21,7 +22,8 @@
<label class="col-lg-3 o_light_label" string="API secret" for="twitter_api_secret"/>
<field name="twitter_api_secret" class="oe_inline"/>
</div>
- <a data-toggle="collapse" class="fa fa-arrow-right" href="#" data-target="#twitter_tutorial" aria-label="Twitter tutorial">
+ <a data-toggle="collapse" href="#" data-target="#twitter_tutorial" aria-label="Twitter tutorial">
+ <i class="fa fa-arrow-right"/>
Show me how to obtain the Twitter API key and Twitter API secret
</a>
<div class="row mt16 collapse" id="twitter_tutorial">