From f78d8e22e0d4d79f7ffd8574aac20b4ada3f998a Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 14 Aug 2013 12:54:00 +0200 Subject: [PATCH] [FIX] website: pager must add url extra params in genarated urls bzr revid: chm@openerp.com-20130814105400-it4s51b6wwdiipb1 --- addons/website/website.py | 15 ++++++++++----- addons/website_sale/controllers/main.py | 5 +++-- addons/website_sale/views/website_sale.xml | 2 +- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/addons/website/website.py b/addons/website/website.py index 26ea8bbe99e..de0a36d8f68 100644 --- a/addons/website/website.py +++ b/addons/website/website.py @@ -70,7 +70,7 @@ class website(osv.osv): } return request.registry.get("ir.ui.view").render(request.cr, request.uid, template, values, context=context) - def pager(self, url, total, page=1, step=30, scope=5): + def pager(self, url, total, page=1, step=30, scope=5, url_args=None): # Compute Pager d = {} d["page_count"] = int(math.ceil(float(total) / step)) @@ -86,13 +86,18 @@ class website(osv.osv): if pmax - pmin < scope: pmin = pmax - scope > 0 and pmax - scope or 1 + def get_url(page): + _url = "%spage/%s/" % (url, page) + if url_args: + _url = "%s?%s" % (_url, urllib.urlencode(url_args)) + return _url - d["page"] = {'url': "%spage/%s/" % (url, page), 'num': page} - d["page_start"] = {'url': "%spage/%s/" % (url, pmin), 'num': pmin} - d["page_end"] = {'url': "%spage/%s/" % (url, min(pmax, page+1)), 'num': min(pmax, page+1)} + d["page"] = {'url': get_url(page), 'num': page} + d["page_start"] = {'url': get_url(pmin), 'num': pmin} + d["page_end"] = {'url': get_url(min(pmax, page+1)), 'num': min(pmax, page+1)} d["pages"] = [] for page in range(pmin, pmax+1): - d["pages"].append({'url': "%spage/%s/" % (url, page), 'num': page}) + d["pages"].append({'url': get_url(page), 'num': page}) return d diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index aebc7b2d730..67833560fc6 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -61,9 +61,10 @@ class Ecommerce(http.Controller): domain += [('website_published', '=', True)] if post.get("search"): - domain += ['|', '|', + domain += ['|', '|', '|', ('name', 'ilike', "%%%s%%" % post.get("search")), ('description', 'ilike', "%%%s%%" % post.get("search")), + ('description_website', 'ilike', "%%%s%%" % post.get("search")), ('pos_categ_id.name', 'ilike', "%%%s%%" % post.get("search"))] if cat_id: cat_id = int(cat_id) @@ -71,7 +72,7 @@ class Ecommerce(http.Controller): step = 20 product_count = len(product_obj.search(request.cr, request.uid, domain)) - pager = website.pager(url="/shop/category/%s/" % cat_id, total=product_count, page=page, step=step, scope=7) + pager = website.pager(url="/shop/category/%s/" % cat_id, total=product_count, page=page, step=step, scope=7, url_args=post) product_ids = product_obj.search(request.cr, request.uid, domain, limit=step, offset=pager['offset']) diff --git a/addons/website_sale/views/website_sale.xml b/addons/website_sale/views/website_sale.xml index 8d3f5695c8c..9bd036b1865 100644 --- a/addons/website_sale/views/website_sale.xml +++ b/addons/website_sale/views/website_sale.xml @@ -102,7 +102,7 @@ pull-left -