diff --git a/addons/website_google_map/controllers/main.py b/addons/website_google_map/controllers/main.py index f2f42c41651..fc2055032d8 100644 --- a/addons/website_google_map/controllers/main.py +++ b/addons/website_google_map/controllers/main.py @@ -3,8 +3,6 @@ import openerp from openerp.addons.web import http from openerp.addons.web.http import request -import simplejson -import werkzeug.wrappers from datetime import datetime class google_map(http.Controller): @@ -30,23 +28,7 @@ class google_map(http.Controller): partner_ids += partner_obj.search(request.cr, request.uid, domain) partner_ids = list(set(partner_ids)) - data = { - "counter": len(partner_ids), - "partners": [] - } - for partner in partner_obj.browse(request.cr, openerp.SUPERUSER_ID, partner_ids, context={'show_address': True}): - data["partners"].append({ - 'id': partner.id, - 'name': partner.name, - 'address': '\n'.join(partner.name_get()[0][1].split('\n')[1:]), - 'type': partner.grade_id.name, - 'latitude': partner.partner_latitude, - 'longitude': partner.partner_longitude, - }) - - mime = 'application/json' - body = "var data = " + "}, \n{".join(simplejson.dumps(data).split("}, {")) - return werkzeug.wrappers.Response(body, headers=[('Content-Type', mime), ('Content-Length', len(body))]) + return partner_obj.google_map_json(request.cr, openerp.SUPERUSER_ID, partner_ids) @http.route(['/google_map/set_partner_position/'], type='http', auth="admin") def google_map_set_partner_position(self, *arg, **post): diff --git a/addons/website_google_map/website_google_map.py b/addons/website_google_map/website_google_map.py index 82d5390ec71..ad6e34d1c4f 100644 --- a/addons/website_google_map/website_google_map.py +++ b/addons/website_google_map/website_google_map.py @@ -1,9 +1,30 @@ # -*- coding: utf-8 -*- from openerp.osv import osv, fields +import simplejson +import werkzeug.wrappers class res_partner(osv.osv): _inherit = 'res.partner' _columns = { 'website_published': fields.boolean('Available in the website'), } + + def google_map_json(self, cr, uid, ids, context=None): + data = { + "counter": len(ids), + "partners": [] + } + for partner in self.pool.get('res.partner').browse(cr, uid, ids, context={'show_address': True}): + data["partners"].append({ + 'id': partner.id, + 'name': partner.name, + 'address': '\n'.join(partner.name_get()[0][1].split('\n')[1:]), + 'type': partner.grade_id.name, + 'latitude': partner.partner_latitude, + 'longitude': partner.partner_longitude, + }) + + mime = 'application/json' + body = "var data = " + "}, \n{".join(simplejson.dumps(data).split("}, {")) + return werkzeug.wrappers.Response(body, headers=[('Content-Type', mime), ('Content-Length', len(body))])