[MERGE] from website-al
[odoo/odoo.git] / addons / website_google_map / controllers / main.py
1 # -*- coding: utf-8 -*-
2
3 import openerp
4 from openerp.addons.web import http
5 from openerp.addons.web.http import request
6 from openerp.addons.website import website
7 from datetime import datetime
8
9 class google_map(http.Controller):
10
11     @website.route(['/google_map/'], type='http', auth="admin")
12     def google_map(self, *arg, **post):
13         values = {
14             'partner_ids': post.get('partner_ids', ""),
15             'width': post.get('width', 900),
16             'height': post.get('height', 460),
17             'partner_url': post.get('partner_url'),
18         }
19         return request.webcontext.render("website_google_map.google_map", values)
20
21     @website.route(['/google_map/partners.json'], type='http', auth="admin")
22     def google_map_data(self, *arg, **post):
23         partner_obj = request.registry['res.partner']
24
25         domain = [("id", "in", [int(p) for p in post.get('partner_ids', "").split(",") if p])]
26         domain_public = domain + [('website_published', '=', True)]
27         partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID,
28                                          domain_public, context=request.context)
29         if not request.webcontext.is_public_user:
30             partner_ids += partner_obj.search(request.cr, request.uid, domain,
31                                               context=request.context)
32             partner_ids = list(set(partner_ids))
33
34         return partner_obj.google_map_json(request.cr, openerp.SUPERUSER_ID,
35                                            partner_ids, request.context)
36
37     @website.route(['/google_map/set_partner_position/'], type='http', auth="admin")
38     def google_map_set_partner_position(self, *arg, **post):
39         partner_obj = request.registry['res.partner']
40
41         partner_id = post.get('partner_id') and int(post['partner_id'])
42         latitude = post.get('latitude') and float(post['latitude'])
43         longitude = post.get('longitude') and float(post['longitude'])
44
45         if not request.webcontext.is_public_user and partner_id and (latitude or longitude):
46             values = {
47                 'partner_latitude': latitude,
48                 'partner_longitude': longitude,
49                 'date_localization': datetime.now().strftime('%Y-%m-%d'),
50             }
51             partner_obj.write(request.cr, request.uid, [partner_id], values,
52                               request.context)
53
54
55 # vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: