diff --git a/addons/website_crm_partner_assign/controllers/main.py b/addons/website_crm_partner_assign/controllers/main.py index 62f64f99187..3ab0c3bc010 100644 --- a/addons/website_crm_partner_assign/controllers/main.py +++ b/addons/website_crm_partner_assign/controllers/main.py @@ -49,8 +49,23 @@ class WebsiteCrmPartnerAssign(http.Controller): limit=self._references_per_page, offset=pager['offset'], order="grade_id ASC,partner_weight DESC") google_map_partner_ids = ",".join([str(p) for p in partner_ids]) + + where = 'r.is_company = True' + if request.context['is_public_user']: + where += ' and r.website_published = True' + if grade_id and grade_id != "all": + where += ' and r.grade_id = '+str(grade_id) # try/catch int + if country_id: + country = country_obj.browse(request.cr, request.uid, country_id, request.context) + where += ' and r.country_id = '+str(country_id) + if post_name: + where += " or r.name ilike '"+post_name+"' or r.website_description ilike '"+post_name+"'" + query = 'select r.id from res_partner r, res_partner_grade g where r.grade_id=g.id and '+ where + ' order by g.sequence DESC limit %s offset %s' + request.cr.execute(query, (self._references_per_page, pager['offset'])) + search_partner_ids = [x[0] for x in request.cr.fetchall()] + partners = partner_obj.browse( - request.cr, openerp.SUPERUSER_ID, partner_ids, request.context) + request.cr, openerp.SUPERUSER_ID, search_partner_ids, request.context) # group by country countries = partner_obj.read_group( diff --git a/addons/website_membership/controllers/main.py b/addons/website_membership/controllers/main.py index 4d1a52f5451..11d8e36f92d 100644 --- a/addons/website_membership/controllers/main.py +++ b/addons/website_membership/controllers/main.py @@ -39,6 +39,21 @@ class WebsiteMembership(http.Controller): if post_name: base_line_domain += ['|', ('partner.name', 'ilike', "%%%s%%" % post_name), ('partner.website_description', 'ilike', "%%%s%%" % post_name)] + if request.context['is_public_user']: + where = 'partner.website_published = True' + else: + where = '1 = 1' + if membership_id: + where += ' and membership_id = '+ membership_id + membership = product_obj.browse(cr, openerp.SUPERUSER_ID, membership_id, context=context) + else: + membership = '' + if post_name: + where += " or partner.name ilike '" + post_name + "' partner.website_description ilike '" + post_name +"'" + query = 'select m.id, p.name_template, m.membership_id, m.partner, r.name, r.parent_id, r.website_short_description, r.image_small from membership_membership_line m, product_product p, res_partner r where m.membership_id=p.id and m.partner=r.id and '+ where + ' order by m.membership_id, m.member_price DESC' + cr.execute(query) + search_membership_ids = [x[0] for x in cr.fetchall()] + # group by country, based on all customers (base domain) membership_line_ids = membership_line_obj.search(cr, uid, base_line_domain, context=context) countries = partner_obj.read_group( @@ -56,7 +71,7 @@ class WebsiteMembership(http.Controller): line_domain += [('partner.country_id', '=', post_country_id)] membership_line_ids = membership_line_obj.search(cr, uid, line_domain, order='membership_id', context=context) - membership_lines = membership_line_obj.browse(cr, uid, membership_line_ids, context=context) + membership_lines = membership_line_obj.browse(cr, uid, search_membership_ids, context=context) partner_ids = [m.partner and m.partner.id for m in membership_lines] google_map_partner_ids = ",".join([str(pid) for pid in partner_ids])