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