def get_fields(self, request, category=None): shop_products_qs = ShopProduct.objects.filter( shop=request.shop).exclude( visibility=ShopProductVisibility.NOT_VISIBLE) if category: shop_products_qs = shop_products_qs.filter( Q(primary_category=category) | Q(categories=category)) queryset = Supplier.objects.enabled(shop=request.shop).filter( shop_products__in=shop_products_qs).distinct() if not queryset.exists(): return configuration = get_configuration(request.shop, category) multiselect_enabled = configuration.get(self.enable_multiselect_key) if multiselect_enabled: return [ ("suppliers", CommaSeparatedListField( required=False, label=get_form_field_label("supplier", _('Suppliers')), widget=FilterWidget(choices=[(supplier.pk, supplier.name) for supplier in queryset]))), ] return [ ("supplier", forms.ModelChoiceField(queryset=queryset, empty_label=None, required=False, label=get_form_field_label( "supplier", _("Suppliers")), widget=OneChoiceFilterWidget())), ]
def get_choices_for_fields(self): return [ ("sort", [ ("price_a", get_form_field_label("price_a", _("Price - Low to High"))), ("price_d", get_form_field_label("price_d", _("Price - High to Low"))), ]), ]
def get_choices_for_fields(self): return [ ("sort", [ ("name_a", get_form_field_label("name_a", _("Name - A-Z"))), ("name_d", get_form_field_label("name_d", _("Name - Z-A"))), ]), ]
def get_fields(self, request, category=None): if not Category.objects.filter(shops=request.shop).exists(): return key, val = context_cache.get_cached_value( identifier="categoryproductfilter", item=self, context=request, category=category) if val: return val language = get_language() base_queryset = Category.objects.all_visible(request.customer, request.shop, language=language) if category: q = Q( Q(shop_products__categories=category), ~Q(shop_products__visibility=ShopProductVisibility.NOT_VISIBLE) ) queryset = base_queryset.filter(q).exclude( pk=category.pk).distinct() else: # Show only first level when there is no category selected queryset = base_queryset.filter(parent=None) data = [("categories", CommaSeparatedListField( required=False, label=get_form_field_label("categories", _('Categories')), widget=FilterWidget(choices=[(cat.pk, cat.name) for cat in queryset])))] context_cache.set_cached_value(key, data) return data
def get_fields(self, request, category=None): if not Manufacturer.objects.filter( Q(shops__isnull=True) | Q(shops=request.shop)).exists(): return shop_products_qs = ShopProduct.objects.filter( shop=request.shop).exclude( visibility=ShopProductVisibility.NOT_VISIBLE) if category: shop_products_qs = shop_products_qs.filter( Q(primary_category=category) | Q(categories=category)) queryset = Manufacturer.objects.filter( Q(product__shop_products__in=shop_products_qs), Q(shops=request.shop) | Q(shops__isnull=True)).distinct() if not queryset.exists(): return return [ ("manufacturers", CommaSeparatedListField( required=False, label=get_form_field_label("manufacturers", _('Manufacturers')), widget=FilterWidget(choices=[(mfgr.pk, mfgr.name) for mfgr in queryset]))), ]
def get_choices_for_fields(self): return [ ("sort", [ ("created_date_d", get_form_field_label("created_date_d", _('Date created'))), ]), ]
def get_fields(self, request, category=None): return [ ( "sort", forms.CharField(required=False, widget=forms.Select(), label=get_form_field_label("sort", _('Sort'))) ) ]
def get_fields(self, request, category=None): if not Manufacturer.objects.exists(): return shop_products_qs = ShopProduct.objects.filter( shop=request.shop).exclude( visibility=ShopProductVisibility.NOT_VISIBLE) if category: shop_products_qs = shop_products_qs.filter( Q(primary_category=category) | Q(categories=category)) queryset = Manufacturer.objects.filter( Q(product__shop_products__in=shop_products_qs), Q(shops=request.shop) | Q(shops__isnull=True)).distinct() if not queryset.exists(): return return [ ("manufacturers", forms.ModelMultipleChoiceField(queryset=queryset, required=False, label=get_form_field_label( "manufacturers", _('Manufacturers')), widget=FilterWidget())), ]
def get_fields(self, request, category=None): return [ ( "sort", forms.CharField(required=False, widget=forms.Select(), label=get_form_field_label("sort", _("Sort"))), ) ]
def get_fields(self, request, category=None): shop_products_qs = ShopProduct.objects.filter( shop=request.shop ).exclude(visibility=ShopProductVisibility.NOT_VISIBLE) if category: shop_products_qs = shop_products_qs.filter(Q(primary_category=category) | Q(categories=category)) queryset = Supplier.objects.enabled().filter( Q(shop_products__in=shop_products_qs), shops=request.shop ).distinct() if not queryset.exists(): return return [ ( "supplier", forms.ModelChoiceField( queryset=queryset, empty_label=None, required=False, label=get_form_field_label("supplier", _("Suppliers")), widget=OneChoiceFilterWidget() ) ), ]
def get_fields(self, request, category=None): if not Category.objects.filter(shops=request.shop).exists(): return key, val = context_cache.get_cached_value( identifier="categoryproductfilter", item=self, context=request, category=category) if val: return val language = get_language() base_queryset = Category.objects.all_visible(request.customer, request.shop, language=language) if category: q = Q( Q(shop_products__categories=category), ~Q(shop_products__visibility=ShopProductVisibility.NOT_VISIBLE) ) queryset = base_queryset.filter(q).exclude(pk=category.pk).distinct() else: # Show only first level when there is no category selected queryset = base_queryset.filter(parent=None) data = [ ( "categories", CommaSeparatedListField( required=False, label=get_form_field_label("categories", _('Categories')), widget=FilterWidget(choices=[(cat.pk, cat.name) for cat in queryset]) ) ) ] context_cache.set_cached_value(key, data) return data
def get_fields(self, request, category=None): if not Manufacturer.objects.filter(Q(shops__isnull=True) | Q(shops=request.shop)).exists(): return shop_products_qs = ShopProduct.objects.filter( shop=request.shop ).exclude(visibility=ShopProductVisibility.NOT_VISIBLE) if category: shop_products_qs = shop_products_qs.filter(Q(primary_category=category) | Q(categories=category)) queryset = Manufacturer.objects.filter( Q(product__shop_products__in=shop_products_qs), Q(shops=request.shop) | Q(shops__isnull=True) ).distinct() if not queryset.exists(): return return [ ( "manufacturers", forms.ModelMultipleChoiceField( queryset=queryset, required=False, label=get_form_field_label("manufacturers", _('Manufacturers')), widget=FilterWidget() ) ), ]
def get_choices_for_fields(self): return [ ("sort", [ ("created_date_a", get_form_field_label("created_date_a", _("Date created - oldest first"))), ]), ]
def get_fields(self, request, category=None): return [( "limit", forms.IntegerField(required=False, widget=forms.Select(), label=get_form_field_label( "limit", _("Products per page"))), )]
def get_fields(self, request, category=None): return [ ( "limit", forms.IntegerField( required=False, widget=forms.Select(), label=get_form_field_label("limit", _("Products per page"))) ) ]
def get_fields(self, request, category=None): if not category: return # TODO: Add cache configuration = get_configuration(request.shop, category) min_price = configuration.get(self.range_min_key) max_price = configuration.get(self.range_max_key) range_size = configuration.get(self.range_size_key) if not (min_price and max_price and range_size): return choices = [(None, "-------")] + get_price_ranges( request.shop, min_price, max_price, range_size) return [ ("price_range", forms.ChoiceField(required=False, choices=choices, label=get_form_field_label( "price_range", _("Price")))), ]
def get_fields(self, request, category=None): if not category: return # TODO: Add cache configuration = get_configuration(request.shop, category) min_price = configuration.get(self.range_min_key) max_price = configuration.get(self.range_max_key) range_size = configuration.get(self.range_size_key) if not (min_price and max_price and range_size): return choices = [(None, "-------")] + get_price_ranges( request.shop, min_price, max_price, range_size) return [ ( "price_range", forms.ChoiceField( required=False, choices=choices, label=get_form_field_label("price_range", _("Price"))) ), ]
def get_fields(self, request, category=None): shop_products_qs = ShopProduct.objects.filter( shop=request.shop).exclude( visibility=ShopProductVisibility.NOT_VISIBLE) if category: shop_products_qs = shop_products_qs.filter( Q(primary_category=category) | Q(categories=category)) queryset = Supplier.objects.enabled().filter( Q(shop_products__in=shop_products_qs), shops=request.shop).distinct() if not queryset.exists(): return return [ ("supplier", forms.ModelChoiceField(queryset=queryset, empty_label=None, required=False, label=get_form_field_label( "supplier", _("Suppliers")), widget=OneChoiceFilterWidget())), ]