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 -