From 895fb02b84aa537bb34e9993fa175398ca68129e Mon Sep 17 00:00:00 2001 From: Unai Beristain Date: Thu, 10 Oct 2024 09:58:59 +0200 Subject: [PATCH] [IMP] res_partner_permitted_categories: Improve filter --- .../controllers/main.py | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/res_partner_permitted_categories/controllers/main.py b/res_partner_permitted_categories/controllers/main.py index 6dd514c5ed..71aab18acc 100644 --- a/res_partner_permitted_categories/controllers/main.py +++ b/res_partner_permitted_categories/controllers/main.py @@ -1,7 +1,7 @@ from odoo import http from odoo.http import request -from odoo.addons.website_sale.controllers.main import WebsiteSale +from odoo.addons.website_sale.controllers.main import TableCompute, WebsiteSale class CustomWebsiteSale(WebsiteSale): @@ -26,19 +26,39 @@ def shop( ppg=ppg, **post, ) - partner = request.env.user.partner_id + partner = request.env.user.partner_id permitted_category_ids = partner.permitted_web_categories.ids if permitted_category_ids: filtered_categories = res.qcontext["categories"].filtered( - lambda c: c.id in permitted_category_ids + lambda categ: categ.id in permitted_category_ids + ) + res.qcontext.update({"categories": filtered_categories}) + + filtered_search_products = res.qcontext["search_product"].filtered( + lambda prod: prod.public_categ_ids.filtered( + lambda categ: categ.id in permitted_category_ids + ) + ) + + filtered_products = res.qcontext["products"].filtered( + lambda prod: prod.public_categ_ids.filtered( + lambda categ: categ.id in permitted_category_ids + ) ) res.qcontext.update( { - "categories": filtered_categories, + "search_product": filtered_search_products, + "products": filtered_products, } ) + ppg = res.qcontext.get("ppg", 20) + ppr = res.qcontext.get("ppr", 4) + res.qcontext.update( + {"bins": TableCompute().process(filtered_products, ppg, ppr)} + ) + return request.render("website_sale.products", res.qcontext)