diff --git a/addons/website_crm_partner_assign/controllers/main.py b/addons/website_crm_partner_assign/controllers/main.py index a52a9c5d799..da05075445a 100644 --- a/addons/website_crm_partner_assign/controllers/main.py +++ b/addons/website_crm_partner_assign/controllers/main.py @@ -31,13 +31,34 @@ class WebsiteCrmPartnerAssign(http.Controller): # format displayed membership lines domain base_partner_domain = [('is_company', '=', True), ('grade_id', '!=', False), ('website_published', '=', True)] partner_domain = list(base_partner_domain) + if post_name: + partner_domain += ['|', ('name', 'ilike', post_name), ('website_description', 'ilike', post_name)] if grade_id and grade_id != "all": partner_domain += [('grade_id', '=', int(grade_id))] # try/catch int + + # group by country + countries = partner_obj.read_group( + request.cr, openerp.SUPERUSER_ID, partner_domain, ["id", "country_id"], + groupby="country_id", orderby="country_id", context=request.context) + countries_partners = partner_obj.search( + request.cr, openerp.SUPERUSER_ID, partner_domain, + context=request.context, count=True) + if country_id: country = country_obj.browse(request.cr, request.uid, country_id, request.context) partner_domain += [('country_id', '=', country_id)] - if post_name: - partner_domain += ['|', ('name', 'ilike', post_name), ('website_description', 'ilike', post_name)] + if not any(x['country_id'][0] == country_id for x in countries): + countries.append({ + 'country_id_count': 0, + 'country_id': (country_id, country.name) + }) + countries.sort(key=lambda d: d['country_id'][1]) + + countries.insert(0, { + 'country_id_count': countries_partners, + 'country_id': (0, _("All Countries")) + }) + # format pager partner_ids = partner_obj.search( @@ -55,18 +76,6 @@ class WebsiteCrmPartnerAssign(http.Controller): context=request.context) google_map_partner_ids = ",".join([str(p['id']) for p in partners_data]) - # group by country - countries = partner_obj.read_group( - request.cr, openerp.SUPERUSER_ID, base_partner_domain, ["id", "country_id"], - groupby="country_id", orderby="country_id", context=request.context) - countries_partners = partner_obj.search( - request.cr, openerp.SUPERUSER_ID, base_partner_domain, - context=request.context, count=True) - countries.insert(0, { - 'country_id_count': countries_partners, - 'country_id': (0, _("All Countries")) - }) - # group by grade grades = partner_obj.read_group( request.cr, openerp.SUPERUSER_ID, base_partner_domain, ["id", "grade_id"], diff --git a/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml b/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml index a8b1c43e765..a0082fb929c 100644 --- a/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml +++ b/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml @@ -41,7 +41,7 @@
  • - + ()
  • @@ -55,9 +55,9 @@ pull-left -