[IMP] website_google_map: add helper google_map_json on res.partner

bzr revid: chm@openerp.com-20130830142504-ecogcw4l7r70zidz
This commit is contained in:
Christophe Matthieu 2013-08-30 16:25:04 +02:00
parent 5b83f20086
commit 65e7948132
2 changed files with 22 additions and 19 deletions

View File

@ -3,8 +3,6 @@
import openerp import openerp
from openerp.addons.web import http from openerp.addons.web import http
from openerp.addons.web.http import request from openerp.addons.web.http import request
import simplejson
import werkzeug.wrappers
from datetime import datetime from datetime import datetime
class google_map(http.Controller): 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 += partner_obj.search(request.cr, request.uid, domain)
partner_ids = list(set(partner_ids)) partner_ids = list(set(partner_ids))
data = { return partner_obj.google_map_json(request.cr, openerp.SUPERUSER_ID, partner_ids)
"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))])
@http.route(['/google_map/set_partner_position/'], type='http', auth="admin") @http.route(['/google_map/set_partner_position/'], type='http', auth="admin")
def google_map_set_partner_position(self, *arg, **post): def google_map_set_partner_position(self, *arg, **post):

View File

@ -1,9 +1,30 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from openerp.osv import osv, fields from openerp.osv import osv, fields
import simplejson
import werkzeug.wrappers
class res_partner(osv.osv): class res_partner(osv.osv):
_inherit = 'res.partner' _inherit = 'res.partner'
_columns = { _columns = {
'website_published': fields.boolean('Available in the website'), '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))])