diff options
| author | Christophe Matthieu <chm@openerp.com> | 2013-12-05 16:08:01 +0100 |
|---|---|---|
| committer | Christophe Matthieu <chm@openerp.com> | 2013-12-05 16:08:01 +0100 |
| commit | b777fddb3045e5ed9b2eb7eed6f8730349568f1c (patch) | |
| tree | d1232b1ebf839721e205508f306e0ac2c1f21b47 /addons/website_customer/controllers/main.py | |
| parent | 2db8e3579234b81537f8dd6f375eedee35784150 (diff) | |
[FIX] website_partner, website_crm_partner_assign, website_membership, website_customer: display partner without break access right
bzr revid: chm@openerp.com-20131205150801-tquspeo351to77o4
Diffstat (limited to 'addons/website_customer/controllers/main.py')
| -rw-r--r-- | addons/website_customer/controllers/main.py | 46 |
1 files changed, 31 insertions, 15 deletions
diff --git a/addons/website_customer/controllers/main.py b/addons/website_customer/controllers/main.py index 91f0023a521..1f2d3e593ab 100644 --- a/addons/website_customer/controllers/main.py +++ b/addons/website_customer/controllers/main.py @@ -5,6 +5,7 @@ from openerp.addons.web import http from openerp.tools.translate import _ from openerp.addons.web.http import request from openerp.addons.website.models import website +from openerp.addons.website_partner.controllers import main as website_partner import urllib @@ -12,8 +13,10 @@ class WebsiteCustomer(http.Controller): _references_per_page = 20 @website.route([ - '/customers/', '/customers/page/<int:page>/', - '/customers/country/<int:country_id>', '/customers/country/<int:country_id>/page/<int:page>/' + '/customers/', + '/customers/page/<int:page>/', + '/customers/country/<int:country_id>', + '/customers/country/<int:country_id>/page/<int:page>/' ], type='http', auth="public", multilang=True) def customers(self, country_id=None, page=0, **post): cr, uid, context = request.cr, request.uid, request.context @@ -33,17 +36,17 @@ class WebsiteCustomer(http.Controller): # group by country, based on all customers (base domain) countries = partner_obj.read_group( - cr, uid, base_domain, ["id", "country_id"], + cr, openerp.SUPERUSER_ID, base_domain, ["id", "country_id"], groupby="country_id", orderby="country_id", context=request.context) country_count = partner_obj.search( - cr, uid, base_domain, count=True, context=request.context) + cr, openerp.SUPERUSER_ID, base_domain, count=True, context=request.context) countries.insert(0, { 'country_id_count': country_count, 'country_id': (0, _("All Countries")) }) # search customers to display - partner_ids = partner_obj.search(cr, uid, domain, context=request.context) + partner_ids = partner_obj.search(cr, openerp.SUPERUSER_ID, domain, context=request.context) google_map_partner_ids = ",".join([str(p) for p in partner_ids]) # pager @@ -54,15 +57,14 @@ class WebsiteCustomer(http.Controller): # browse page of customers to display partner_ids = partner_obj.search( - cr, uid, domain, + cr, openerp.SUPERUSER_ID, domain, limit=self._references_per_page, offset=pager['offset'], context=context) - partners = partner_obj.browse(request.cr, request.uid, - partner_ids, request.context) - + partners_data = partner_obj.read( + request.cr, openerp.SUPERUSER_ID, partner_ids, website_partner.white_list, context=request.context) values = { 'countries': countries, 'current_country_id': country_id or 0, - 'partner_ids': partners, + 'partners_data': partners_data, 'google_map_partner_ids': google_map_partner_ids, 'pager': pager, 'post': post, @@ -71,9 +73,23 @@ class WebsiteCustomer(http.Controller): return request.website.render("website_customer.index", values) @website.route(['/customers/<model("res.partner"):partner>/'], type='http', auth="public", multilang=True) - def customer(self, partner=None, **post): - """ Route for displaying a single partner / customer. """ - values = { - 'partner': partner - } + def customer(self, partner, **post): + values = website_partner.get_partner_template_value(partner, ["commercial_partner_id", "assigned_partner_id", "implemented_partner_ids"]) + if not values: + return self.customers(**post) + + partner_obj = request.registry['res.partner'] + if values['partner_data']['assigned_partner_id']: + values['assigned_partner_data'] = partner_obj.read( + request.cr, openerp.SUPERUSER_ID, [values['partner_data']['assigned_partner_id'][0]], + website_partner.white_list, context=request.context)[0] + if values['partner_data']['implemented_partner_ids']: + implemented_partners_data = partner_obj.read( + request.cr, openerp.SUPERUSER_ID, values['partner_data']['implemented_partner_ids'], + website_partner.white_list, context=request.context) + values['implemented_partners_data'] = [] + for data in implemented_partners_data: + if data.get('website_published'): + values['implemented_partners_data'].append(data) + return request.website.render("website_customer.details", values) |
