diff options
| author | Denis Ledoux <dle@openerp.com> | 2014-01-30 21:57:13 +0100 |
|---|---|---|
| committer | Denis Ledoux <dle@openerp.com> | 2014-01-30 21:57:13 +0100 |
| commit | 320b840341838864d9a2a481b183610baf9b04a8 (patch) | |
| tree | bc36fa28cc5528f28814bba75eee27e2b6b8deb3 | |
| parent | fc979b9a7a23bbfc8ea4367ecb6b00607eb13b72 (diff) | |
[FIX] website_membership, website_customer: keep search, country and assocations when jumping from each other of these filters + count fix between partners displayed and group by country count + fix country orders in website_customer
bzr revid: dle@openerp.com-20140130205713-09cbldm9r9pm6r1i
| -rw-r--r-- | addons/website_customer/controllers/main.py | 9 | ||||
| -rw-r--r-- | addons/website_membership/controllers/main.py | 22 | ||||
| -rw-r--r-- | addons/website_membership/views/website_membership.xml | 8 |
3 files changed, 26 insertions, 13 deletions
diff --git a/addons/website_customer/controllers/main.py b/addons/website_customer/controllers/main.py index 2ee5e446c5d..173b0871dbe 100644 --- a/addons/website_customer/controllers/main.py +++ b/addons/website_customer/controllers/main.py @@ -40,10 +40,6 @@ class WebsiteCustomer(http.Controller): groupby="country_id", orderby="country_id", context=request.context) country_count = partner_obj.search( cr, openerp.SUPERUSER_ID, domain, count=True, context=request.context) - countries.insert(0, { - 'country_id_count': country_count, - 'country_id': (0, _("All Countries")) - }) if country_id: domain += [('country_id', '=', country_id)] @@ -55,6 +51,11 @@ class WebsiteCustomer(http.Controller): }) countries.sort(key=lambda d: d['country_id'][1]) + countries.insert(0, { + 'country_id_count': country_count, + 'country_id': (0, _("All Countries")) + }) + # search customers to display 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]) diff --git a/addons/website_membership/controllers/main.py b/addons/website_membership/controllers/main.py index 5b760370447..a4932c1b46c 100644 --- a/addons/website_membership/controllers/main.py +++ b/addons/website_membership/controllers/main.py @@ -32,12 +32,14 @@ class WebsiteMembership(http.Controller): def members(self, membership_id=None, country_name=None, country_id=0, page=0, **post): cr, uid, context = request.cr, request.uid, request.context product_obj = request.registry['product.product'] + country_obj = request.registry['res.country'] membership_line_obj = request.registry['membership.membership_line'] partner_obj = request.registry['res.partner'] post_name = post.get('name', '') + current_country = None # base domain for groupby / searches - base_line_domain = [('state', 'in', ['free', 'paid'])] + base_line_domain = [("partner.website_published", "=", True),('state', 'in', ['free', 'paid'])] if membership_id: base_line_domain.append(('membership_id', '=', membership_id)) membership = product_obj.browse(cr, uid, membership_id, context=context) @@ -53,16 +55,24 @@ class WebsiteMembership(http.Controller): cr, uid, [('member_lines', 'in', membership_line_ids), ("website_published", "=", True)], ["id", "country_id"], groupby="country_id", orderby="country_id", context=request.context) countries_total = sum(country_dict['country_id_count'] for country_dict in countries) + + line_domain = list(base_line_domain) + if country_id: + line_domain.append(('partner.country_id', '=', country_id)) + current_country = country_obj.read(cr, uid, country_id, ['id', 'name'], context) + if not any(x['country_id'][0] == country_id for x in countries): + countries.append({ + 'country_id_count': 0, + 'country_id': (country_id, current_country["name"]) + }) + countries.sort(key=lambda d: d['country_id'][1]) + countries.insert(0, { 'country_id_count': countries_total, 'country_id': (0, _("All Countries")) }) # displayed membership lines - line_domain = list(base_line_domain) - if country_id: - line_domain.append(('partner.country_id', '=', country_id)) - membership_line_ids = membership_line_obj.search(cr, uid, line_domain, context=context) membership_lines = membership_line_obj.browse(cr, uid, membership_line_ids, context=context) membership_lines.sort(key=lambda x: x.membership_id.website_sequence) @@ -86,6 +96,8 @@ class WebsiteMembership(http.Controller): 'memberships': memberships, 'membership': membership, 'countries': countries, + 'current_country': current_country and [current_country['id'], current_country['name']] or None, + 'current_country_id': current_country and current_country['id'] or 0, 'google_map_partner_ids': google_map_partner_ids, 'pager': pager, 'post': post, diff --git a/addons/website_membership/views/website_membership.xml b/addons/website_membership/views/website_membership.xml index 7d9d7b418ab..8e9ceb0b387 100644 --- a/addons/website_membership/views/website_membership.xml +++ b/addons/website_membership/views/website_membership.xml @@ -34,7 +34,7 @@ <li t-att-class="'' if membership else 'active'"><a href="/members/">All</a></li> <t t-foreach="memberships" t-as="membership_id"> <li t-att-class="membership and membership_id.id == membership.id and 'active' or ''"> - <a t-attf-href="/members/association/#{ membership_id.id }"><t t-esc="membership_id.name"/></a> + <a t-attf-href="/members/association/#{ membership_id.id }/#{current_country and 'country/%s/' % slug(current_country) or ''}#{ search }"><t t-esc="membership_id.name"/></a> </li> </t> </ul> @@ -44,7 +44,7 @@ <t t-call="website.pager"> <t t-set="classname">pull-left</t> </t> - <form action="/members/" method="get" class="navbar-search pull-right pagination form-inline"> + <form action="" method="get" class="navbar-search pull-right pagination form-inline"> <div class="form-group"> <input type="text" name="name" class="search-query col-md-2 mt4 form-control" placeholder="Search" t-att-value="post.get('name', '')"/> </div> @@ -86,9 +86,9 @@ <ul class="nav nav-pills nav-stacked mt16"> <li class="nav-header"><h3>Location</h3></li> <t t-foreach="countries"> - <li t-if="country_id" t-att-class="post.get('country_id', '0') == str(country_id and country_id[0]) and 'active' or ''"> + <li t-if="country_id" t-att-class="country_id[0] == current_country_id and 'active' or ''"> <a t-attf-href="/members/#{ membership and 'association/%s/' % membership.id or '' }#{ country_id[0] and 'country/%s/' % slug(country_id) or '' }#{ search }"><t t-esc="country_id[1]"/> - <span class="badge pull-right"><t t-esc="country_id_count or ''"/></span> + <span class="badge pull-right"><t t-esc="country_id_count or '0'"/></span> </a> </li> </t> |
