[IMP] website_sale: filter website categories based on search.
task-34786
This commit is contained in:
committed by
Jeremy Kersten
parent
7d234fe640
commit
8889d00f4f
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user