From c82b65c8552a2ddccb9ac9990366c03199ff9d29 Mon Sep 17 00:00:00 2001 From: Nicolas Martinelli Date: Thu, 25 Aug 2016 14:04:32 +0200 Subject: [PATCH] [IMP] website, website_{*}: Google Maps API Key As of June 22 2016, the use of API key is required to access the following: - Google Maps JavaScript API - Google Static Maps API - Google Street View Image API https://developers.google.com/maps/pricing-and-plans/standard-plan-2016-update For domains accessing the API before June 22, it will still work without an API key. Since Google advises to use the API key, we hide the Maps if no API key is defined. --- addons/website/models/res_config.py | 14 ++++++++ addons/website/models/res_partner.py | 4 +++ addons/website/views/res_config_views.xml | 20 +++++++++++ addons/website/views/website_templates.xml | 11 ++++-- .../controllers/main.py | 2 ++ .../website_crm_partner_assign_templates.xml | 36 ++++++++++--------- addons/website_customer/controllers/main.py | 2 ++ .../views/website_customer_templates.xml | 36 ++++++++++--------- .../views/website_event_templates.xml | 11 ++++-- addons/website_google_map/controllers/main.py | 4 ++- .../views/google_map_templates.xml | 7 +++- addons/website_membership/controllers/main.py | 4 ++- .../views/website_membership_templates.xml | 36 ++++++++++--------- 13 files changed, 127 insertions(+), 60 deletions(-) diff --git a/addons/website/models/res_config.py b/addons/website/models/res_config.py index 518ace8b699..1d3c9d0fd38 100644 --- a/addons/website/models/res_config.py +++ b/addons/website/models/res_config.py @@ -33,3 +33,17 @@ class WebsiteConfigSettings(models.TransientModel): module_website_form_editor = fields.Boolean("Form builde = create and customize forms") module_website_version = fields.Boolean("A/B testing and versioning") favicon = fields.Binary('Favicon', related='website_id.favicon') + + +class BaseConfigSettings(models.TransientModel): + _inherit = 'base.config.settings' + + google_maps_api_key = fields.Char(string='Google Maps API Key') + + def set_google_maps_api_key(self): + self.env['ir.config_parameter'].set_param( + 'google_maps_api_key', (self.google_maps_api_key or '').strip(), groups=['base.group_system']) + + def get_default_google_maps_api_key(self, fields): + google_maps_api_key = self.env['ir.config_parameter'].get_param('google_maps_api_key', default='') + return dict(google_maps_api_key=google_maps_api_key) diff --git a/addons/website/models/res_partner.py b/addons/website/models/res_partner.py index 973ad736d90..d0f4a76b199 100644 --- a/addons/website/models/res_partner.py +++ b/addons/website/models/res_partner.py @@ -16,11 +16,15 @@ 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') + if not google_maps_api_key: + return False params = { 'center': '%s, %s %s, %s' % (self.street or '', self.city or '', self.zip or '', self.country_id and self.country_id.name_get()[0][1] or ''), 'size': "%sx%s" % (height, width), 'zoom': zoom, 'sensor': 'false', + 'key': google_maps_api_key, } return urlplus('//maps.googleapis.com/maps/api/staticmap', params) diff --git a/addons/website/views/res_config_views.xml b/addons/website/views/res_config_views.xml index 72a2823bba4..5cf5b5f9752 100644 --- a/addons/website/views/res_config_views.xml +++ b/addons/website/views/res_config_views.xml @@ -1,6 +1,26 @@ + + general.configuration.inherit.form + base.config.settings + + + + + + + Website settings website.config.settings diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml index f1096472d5c..c58057eec12 100644 --- a/addons/website/views/website_templates.xml +++ b/addons/website/views/website_templates.xml @@ -910,9 +910,14 @@ Sitemap: sitemap.xml "widget": "contact", "fields": ["name", "address", "phone", "mobile", "fax", "email"]}'/> - - - + + + + + + + Visualize on Google Maps +