diff options
| author | ddm <ddm@openerp.com> | 2013-11-06 18:57:43 +0100 |
|---|---|---|
| committer | ddm <ddm@openerp.com> | 2013-11-06 18:57:43 +0100 |
| commit | b7a4c6d3f0c22e7aaed5d1e58cc6bca232f4f756 (patch) | |
| tree | 4bb21c31fb695af6db621717656a4477371a5767 | |
| parent | d98f7b0918917146f52e532ccf4dcaff51156eb6 (diff) | |
[FIX] eCommerve search + categories & filters
Hopefully this completely solves it. More testing required...
bzr revid: ddm@openerp.com-20131106175743-xxxswsc0vs5fh3x5
| -rw-r--r-- | addons/website_sale/controllers/main.py | 14 | ||||
| -rw-r--r-- | addons/website_sale/views/website_sale.xml | 27 |
2 files changed, 24 insertions, 17 deletions
diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index c25a64e7b22..e6326832c55 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -264,7 +264,7 @@ class Ecommerce(http.Controller): post.pop(key) return request.redirect("/shop/?filter=%s%s%s%s" % ( - simplejson.dumps(filter).replace(" ", ""), + simplejson.dumps(filter), add_filter and "&add_filter=%s" % add_filter or "", post.get("search") and "&search=%s" % post.get("search") or "", post.get("category") and "&category=%s" % post.get("category") or "" @@ -331,7 +331,11 @@ class Ecommerce(http.Controller): 'Ecommerce': self, 'product_ids': product_ids, 'product_ids_for_holes': fill_hole, - 'search': post or dict(), + 'search': { + 'search': post.get('search') or '', + 'category': category, + 'filter': filter or '', + }, 'pager': pager, 'styles': styles, 'style_in_product': lambda style, product: style.id in [s.id for s in product.website_style_ids], @@ -364,7 +368,11 @@ class Ecommerce(http.Controller): 'category_list': category_list, 'main_object': product, 'product': product, - 'search': post or dict(), + 'search': { + 'search': post.get('search') or '', + 'category': post.get('category') or '', + 'filter': post.get('filter') or '', + } } return request.website.render("website_sale.product", values) diff --git a/addons/website_sale/views/website_sale.xml b/addons/website_sale/views/website_sale.xml index 2c3154ac3d5..37ebe3cda41 100644 --- a/addons/website_sale/views/website_sale.xml +++ b/addons/website_sale/views/website_sale.xml @@ -33,6 +33,13 @@ <!-- Product list --> + <template id="search_hidden_fields" name="Search hidden fields"> + <t t-if="search"> + <input type="hidden" name="category" t-att-value="search.get('category') or ''"/> + <input type="hidden" name="filter" t-att-value="search.get('filter') or ''"/> + </t> + </template> + <template id="products_cart" name="Shopping cart"> <div class="ribbon-wrapper"> <div class="ribbon">Promo</div> @@ -89,9 +96,8 @@ <t t-set="classname">pull-right</t> </t> <form t-action="/shop/" method="get" class="pull-right pagination form-inline" style="padding-right: 5px;" t-keep-query="category,search,facettes"> - <div class="form-group"> - <input type="text" name="search" class="search-query form-control" placeholder="Search..." t-att-value="search.get('search') or ''"/> - </div> + <t t-call="website_sale.search_hidden_fields" /> + <input type="text" name="search" class="search-query form-control" placeholder="Search..." t-att-value="search.get('search') or ''"/> </form> </div> </div> @@ -251,17 +257,10 @@ </li> </t> </div><div class="col-sm-3 col-sm-offset-1"> - <form t-action="/shop/" method="get" class="pull-right" t-keep-query="category,facettes"> - <div class="input-group"> - <t t-if="search"> - <t t-foreach="search.items()" t-as="key"> - <input t-att-name="key[0]" t-att-value="key[1]"/> - </t> - </t> - <span class="input-group-addon"><span class="glyphicon glyphicon-search"/></span> - <input type="text" name="search" class="search-query form-control" placeholder="Search..." t-att-value="search or ''"/> - </div> - </form> + <form t-action="/shop/" method="get" class="pull-right" t-keep-query="category,facettes"> + <t t-call="website_sale.search_hidden_fields" /> + <input type="text" name="search" class="search-query form-control" placeholder="Search..." t-att-value="search.get('search') or ''"/> + </form> </div> </div> </section> |
