diff --git a/addons/website/models/res_config_settings.py b/addons/website/models/res_config_settings.py index eaff3cd9434..36ca15c2e58 100644 --- a/addons/website/models/res_config_settings.py +++ b/addons/website/models/res_config_settings.py @@ -28,24 +28,26 @@ class ResConfigSettings(models.TransientModel): website_default_lang_code = fields.Char( 'Default language code', related='website_id.default_lang_code', oldname='default_lang_code') + specific_user_account = fields.Boolean('Specific User Account', config_parameter='website_id.specific_user_account', + help='Are newly created user accounts website specific') + google_analytics_key = fields.Char('Google Analytics Key', related='website_id.google_analytics_key') google_management_client_id = fields.Char('Google Client ID', related='website_id.google_management_client_id') google_management_client_secret = fields.Char('Google Client Secret', related='website_id.google_management_client_secret') - cdn_activated = fields.Boolean('Use a Content Delivery Network (CDN)', related='website_id.cdn_activated') + cdn_activated = fields.Boolean(related='website_id.cdn_activated') cdn_url = fields.Char(related='website_id.cdn_url') cdn_filters = fields.Text(related='website_id.cdn_filters') module_website_version = fields.Boolean("A/B Testing") - module_website_links = fields.Boolean(string="Link Trackers") - auth_signup_uninvited = fields.Selection(string="Customer Account", related='website_id.auth_signup_uninvited') + module_website_links = fields.Boolean("Link Trackers") + auth_signup_uninvited = fields.Selection("Customer Account", related='website_id.auth_signup_uninvited') favicon = fields.Binary('Favicon', related='website_id.favicon') - # Set as global config parameter since methods using it are not website-aware. To be changed - # when multi-website is implemented - google_maps_api_key = fields.Char(string='Google Maps API Key', config_parameter='google_maps_api_key', default='') - has_google_analytics = fields.Boolean("Google Analytics", config_parameter='website.has_google_analytics') - has_google_analytics_dashboard = fields.Boolean("Embedded Google Analytics", config_parameter='website.has_google_analytics_dashboard') - has_google_maps = fields.Boolean("Google Maps", config_parameter='website.has_google_maps') + + 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') social_twitter = fields.Char(related='website_id.social_twitter') social_facebook = fields.Char(related='website_id.social_facebook') diff --git a/addons/website/models/res_partner.py b/addons/website/models/res_partner.py index caa3f992335..247804c387b 100644 --- a/addons/website/models/res_partner.py +++ b/addons/website/models/res_partner.py @@ -18,7 +18,7 @@ class Partner(models.Model): @api.multi def google_map_img(self, zoom=8, width=298, height=298): - google_maps_api_key = self.env['ir.config_parameter'].sudo().get_param('google_maps_api_key') + google_maps_api_key = self.env['website'].get_current_website().google_maps_api_key if not google_maps_api_key: return False params = { diff --git a/addons/website/models/website.py b/addons/website/models/website.py index 8fee73ac109..3d2f379e322 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -74,7 +74,7 @@ class Website(models.Model): company_id = fields.Many2one('res.company', string="Company", default=lambda self: self.env.ref('base.main_company').id) language_ids = fields.Many2many('res.lang', 'website_lang_rel', 'website_id', 'lang_id', 'Languages', default=_active_languages) default_lang_id = fields.Many2one('res.lang', string="Default Language", default=_default_language, required=True) - default_lang_code = fields.Char(related='default_lang_id.code', string="Default language code", store=True) + default_lang_code = fields.Char("Default language code", related='default_lang_id.code', store=True) auto_redirect_lang = fields.Boolean('Autoredirect Language', default=True, help="Should users be redirected to their browser's language") social_twitter = fields.Char('Twitter Account', default=_default_social_twitter) @@ -88,8 +88,13 @@ class Website(models.Model): google_management_client_id = fields.Char('Google Client ID') 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('Activate CDN for assets') + cdn_activated = fields.Boolean('Content Delivery Network (CDN)') cdn_url = fields.Char('CDN Base URL', default='') cdn_filters = fields.Text('CDN Filters', default=lambda s: '\n'.join(DEFAULT_CDN_FILTERS), help="URL matching those filters will be rewritten using the CDN Base URL") partner_id = fields.Many2one(related='user_id.partner_id', relation='res.partner', string='Public Partner') @@ -799,7 +804,7 @@ class Page(models.Model): @api.multi def _is_most_specific_page(self, page_to_test): '''This will test if page_to_test is the most specific page in self.''' - pages_for_url = self.filtered(lambda page: page.url == page_to_test.url) + pages_for_url = self.sorted(key=lambda p: not p.website_id).filtered(lambda page: page.url == page_to_test.url) # this works because pages are _order'ed by website_id most_specific_page = pages_for_url[0] diff --git a/addons/website/static/src/scss/website.ui.scss b/addons/website/static/src/scss/website.ui.scss index f146b3de677..eb459ee1503 100644 --- a/addons/website/static/src/scss/website.ui.scss +++ b/addons/website/static/src/scss/website.ui.scss @@ -481,6 +481,6 @@ body .modal { } } .fa-check, .fa-eye-slash { - color: #00a09d; + color: $info; } } diff --git a/addons/website/static/src/xml/website.backend.xml b/addons/website/static/src/xml/website.backend.xml index 5508d4be9d9..b4f2b9c6029 100644 --- a/addons/website/static/src/xml/website.backend.xml +++ b/addons/website/static/src/xml/website.backend.xml @@ -53,12 +53,14 @@
@@ -72,7 +74,7 @@