From 46bc1d55dd63ce8071944dba37889279c164b755 Mon Sep 17 00:00:00 2001 From: Pigletto Date: Mon, 3 Nov 2014 20:03:33 +0100 Subject: [PATCH] fix filters portlet; fix search - issue #157 --- lfs/catalog/utils.py | 2 +- lfs/catalog/views.py | 14 ++++++++++---- lfs/search/views.py | 18 ++++++++++-------- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/lfs/catalog/utils.py b/lfs/catalog/utils.py index 73998d992..03199d82b 100644 --- a/lfs/catalog/utils.py +++ b/lfs/catalog/utils.py @@ -240,7 +240,7 @@ def get_product_filters(category, product_filter, price_filter, manufacturer_fil "id": property_id, "position": prop.position, "unit": prop.unit, - "show_reset": str(property_id) in set_filters.keys(), + "show_reset": str(property_id) in set_filters.get('select-filter', {}).keys(), "name": prop.name, "title": prop.title, "items": items, diff --git a/lfs/catalog/views.py b/lfs/catalog/views.py index 769fdf7a8..c6f14276d 100644 --- a/lfs/catalog/views.py +++ b/lfs/catalog/views.py @@ -285,10 +285,16 @@ def reset_filter(request, category_slug, property_id): """Resets product filter with given property id. Redirects to the category with given slug. """ - if "product-filter" in request.session: - if property_id in request.session["product-filter"]: - del request.session["product-filter"][property_id] - request.session["product-filter"] = request.session["product-filter"] + product_filter = request.session.get("product-filter") + try: + del product_filter["select-filter"][property_id] + except KeyError: + pass + else: + if product_filter["select-filter"] == {}: + del product_filter["select-filter"] + + request.session["product-filter"] = product_filter url = reverse("lfs_category", kwargs={"slug": category_slug}) return HttpResponseRedirect(url) diff --git a/lfs/search/views.py b/lfs/search/views.py index fa9f5281f..89d45da22 100644 --- a/lfs/search/views.py +++ b/lfs/search/views.py @@ -24,10 +24,11 @@ def livesearch(request, template_name="lfs/search/livesearch_results.html"): else: # Products query = Q(active=True) & \ - ( Q(name__icontains=q) | \ - Q(manufacturer__name__icontains=q) | \ - Q(sku_manufacturer__icontains=q) ) & \ - Q(sub_type__in=(STANDARD_PRODUCT, PRODUCT_WITH_VARIANTS, VARIANT)) + (Q(name__icontains=q) | + Q(manufacturer__name__icontains=q) | + Q(sku_manufacturer__icontains=q) + ) # & \ + # Q(sub_type__in=(STANDARD_PRODUCT, PRODUCT_WITH_VARIANTS, VARIANT)) temp = Product.objects.filter(query) total = temp.count() @@ -54,10 +55,11 @@ def search(request, template_name="lfs/search/search_results.html"): # Products query = Q(active=True) & \ - ( Q(name__icontains=q) | \ - Q(manufacturer__name__icontains=q) | \ - Q(sku_manufacturer__icontains=q) ) & \ - Q(sub_type__in=(STANDARD_PRODUCT, PRODUCT_WITH_VARIANTS, VARIANT)) + (Q(name__icontains=q) | + Q(manufacturer__name__icontains=q) | + Q(sku_manufacturer__icontains=q) + ) # & \ + # Q(sub_type__in=(STANDARD_PRODUCT, PRODUCT_WITH_VARIANTS, VARIANT)) products = Product.objects.filter(query)