[IMP] website_sale: filter website categories based on search.

task-34786
This commit is contained in:
Priyanka Kakadiya
2018-08-20 10:59:50 +02:00
committed by Jeremy Kersten
parent 7d234fe640
commit 8889d00f4f
2 changed files with 16 additions and 3 deletions
+10 -1
View File
@@ -247,9 +247,17 @@ class WebsiteSale(http.Controller):
if attrib_list:
post['attrib'] = attrib_list
categs = request.env['product.public.category'].search([('parent_id', '=', False)] + request.website.website_domain())
Product = request.env['product.template']
Category = request.env['product.public.category']
search_categories = False
if search:
categories = Product.search(domain).mapped('public_categ_ids')
search_categories = Category.search([('id', 'parent_of', categories.ids)] + request.website.website_domain())
categs = search_categories.filtered(lambda c: not c.parent_id)
else:
categs = Category.search([('parent_id', '=', False)] + request.website.website_domain())
parent_category_ids = []
if category:
url = "/shop/category/%s" % slug(category)
@@ -287,6 +295,7 @@ class WebsiteSale(http.Controller):
'compute_currency': compute_currency,
'keep': keep,
'parent_category_ids': parent_category_ids,
'search_categories_ids': search_categories and search_categories.ids,
}
if category:
values['main_object'] = category
+6 -2
View File
@@ -274,7 +274,9 @@
</a>
<ul t-if="c.child_id" class="nav nav-pills flex-column nav-hierarchy">
<t t-foreach="c.child_id" t-as="c">
<t t-call="website_sale.categories_recursive" />
<t t-if="not search or c.id in search_categories_ids">
<t t-call="website_sale.categories_recursive" />
</t>
</t>
</ul>
</li>
@@ -307,7 +309,9 @@
<a t-att-href="keep('/shop/category/' + slug(categ), category=0)" t-attf-class="nav-link#{' active' if categ.id == int(category or 0) else ''}" t-field="categ.name"></a>
<ul t-if="categ.child_id" class="nav nav-pills flex-column nav-hierarchy" t-att-style="'display:block;' if categ.id in parent_category_ids else 'display:none;'">
<t t-foreach="categ.child_id" t-as="categ">
<t t-call="website_sale.option_collapse_categories_recursive" />
<t t-if="not search or c.id in search_categories_ids">
<t t-call="website_sale.option_collapse_categories_recursive" />
</t>
</t>
</ul>
</li>