1# -*- coding: utf-8 -*- 2# Part of Odoo. See LICENSE file for full copyright and licensing details. 3 4import werkzeug.urls 5 6from odoo import models, fields 7 8class Partner(models.Model): 9 _name = 'res.partner' 10 _inherit = ['res.partner', 'website.published.multi.mixin'] 11 12 visitor_ids = fields.One2many('website.visitor', 'partner_id', string='Visitors') 13 14 def google_map_img(self, zoom=8, width=298, height=298): 15 google_maps_api_key = self.env['website'].get_current_website().google_maps_api_key 16 if not google_maps_api_key: 17 return False 18 params = { 19 'center': '%s, %s %s, %s' % (self.street or '', self.city or '', self.zip or '', self.country_id and self.country_id.display_name or ''), 20 'size': "%sx%s" % (width, height), 21 'zoom': zoom, 22 'sensor': 'false', 23 'key': google_maps_api_key, 24 } 25 return '//maps.googleapis.com/maps/api/staticmap?'+werkzeug.urls.url_encode(params) 26 27 def google_map_link(self, zoom=10): 28 params = { 29 'q': '%s, %s %s, %s' % (self.street or '', self.city or '', self.zip or '', self.country_id and self.country_id.display_name or ''), 30 'z': zoom, 31 } 32 return 'https://maps.google.com/maps?' + werkzeug.urls.url_encode(params) 33 34 def _get_name(self): 35 name = super(Partner, self)._get_name() 36 if self._context.get('display_website') and self.env.user.has_group('website.group_multi_website'): 37 if self.website_id: 38 name += ' [%s]' % self.website_id.name 39 return name 40 41 def _compute_display_name(self): 42 self2 = self.with_context(display_website=False) 43 super(Partner, self2)._compute_display_name() 44