# -*- coding: utf-8 -*- ############################################################################## # # Odoo, Open Source Management Solution # Copyright (C) 2016-TODAY Prime Consulting SA, Cape Verde (). # ############################################################################## import werkzeug from odoo import api, models, fields def urlplus(url, params): return werkzeug.Href(url)(params or None) class Partner(models.Model): _inherit = "res.partner" maps_url = fields.Char('Google Maps URL') maps_latitude = fields.Char('Latitude') maps_longitude = fields.Char('Longitude') @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, } if self.maps_url: params = { 'size': "%sx%s" % (width, height), 'zoom': 17, 'sensor': 'false', 'key': google_maps_api_key, 'q': self.maps_url, } if self.maps_latitude and self.maps_longitude: params['center'] = '%s, %s'%(self.maps_latitude, self.maps_longitude), return urlplus('//maps.googleapis.com/maps/api/staticmap', params) @api.multi def google_map_link(self, zoom=10): params = { 'q': '%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 ''), 'z': zoom, } if self.maps_url: return urlplus(self.maps_url, {}) return urlplus('https://maps.google.com/maps', params)