|
|
|
|
@ -42,18 +42,20 @@ class ProductListView(ListView): |
|
|
|
|
|
|
|
|
|
def filter_products(self, qs): |
|
|
|
|
if self.kwargs.get('path'): |
|
|
|
|
category_intance = parse_path(self.kwargs.get('path')) |
|
|
|
|
cat_qs = ProductCategory.objects.filter(slug__exact=category_intance).first() |
|
|
|
|
qs = qs.filter(parent__in=cat_qs.get_descendants(include_self=True)) |
|
|
|
|
if self.request.GET.get('name'): |
|
|
|
|
qs = qs.filter(name__icontains=self.request.GET.get('name')) |
|
|
|
|
if self.request.GET.get('manufacturer'): |
|
|
|
|
qs = qs.filter(manufacturer__slug=self.request.GET.get('manufacturer')) |
|
|
|
|
if self.request.GET.get('supply_type'): |
|
|
|
|
qs = qs.filter(offer__supply_type__slug=self.request.GET.get('supply_type')) |
|
|
|
|
if self.request.GET.get('supply_target'): |
|
|
|
|
qs = qs.filter(offer__supply_target__slug=self.request.GET.get('supply_target')) |
|
|
|
|
qs = qs.filter(offer__amount__gte=0) |
|
|
|
|
category_slug = parse_path(self.kwargs.get('path')) |
|
|
|
|
cat_qs = ProductCategory.objects.filter(slug=category_slug) |
|
|
|
|
qs = qs.filter(parent_id__in=cat_qs.get_descendants(include_self=True)) |
|
|
|
|
print(qs) |
|
|
|
|
# TODO understand why there are some filtering queries |
|
|
|
|
# if self.request.GET.get('name'): |
|
|
|
|
# qs = qs.filter(name__icontains=self.request.GET.get('name')) |
|
|
|
|
# if self.request.GET.get('manufacturer'): |
|
|
|
|
# qs = qs.filter(manufacturer__slug=self.request.GET.get('manufacturer')) |
|
|
|
|
# if self.request.GET.get('supply_type'): |
|
|
|
|
# qs = qs.filter(offer__supply_type__slug=self.request.GET.get('supply_type')) |
|
|
|
|
# if self.request.GET.get('supply_target'): |
|
|
|
|
# qs = qs.filter(offer__supply_target__slug=self.request.GET.get('supply_target')) |
|
|
|
|
# qs = qs.filter(offer__amount__gte=0) |
|
|
|
|
return qs |
|
|
|
|
|
|
|
|
|
def sort_products(self, qs): |
|
|
|
|
@ -66,7 +68,8 @@ class ProductListView(ListView): |
|
|
|
|
def get_queryset(self): |
|
|
|
|
qs = super().get_queryset() |
|
|
|
|
qs = self.filter_products(qs) |
|
|
|
|
qs = self.sort_products(qs) |
|
|
|
|
|
|
|
|
|
# qs = self.sort_products(qs) |
|
|
|
|
return qs |
|
|
|
|
|
|
|
|
|
def get_cart_add_formset(self, products): |
|
|
|
|
|