class PageFilter(django_filters.FilterSet): search = django_filters.CharFilter( method=filter_fields_containing_value("content", "slug", "title")) class Meta: model = Page fields = ["search"]
class CityFilter(django_filters.FilterSet): search = django_filters.CharFilter( method=filter_fields_containing_value("name")) class Meta: model = City fields = ["province", "search"]
class SubDistrictFilter(django_filters.FilterSet): search = django_filters.CharFilter( method=filter_fields_containing_value("name")) class Meta: model = SubDistrict fields = ["city", "search"]
class CustomerFilter(django_filters.FilterSet): date_joined = ObjectTypeFilter(input_class=DateRangeInput, method=filter_date_joined) search = django_filters.CharFilter(method=filter_fields_containing_value("name", "email")) class Meta: model = User fields = [ "date_joined", "search", ]
class ProductTypeFilter(django_filters.FilterSet): search = django_filters.CharFilter( method=filter_fields_containing_value("name", "slug")) configurable = EnumFilter(input_class=ProductTypeConfigurable, method=filter_product_type_configurable) ids = GlobalIDMultipleChoiceFilter(field_name="id") class Meta: model = ProductType fields = ["search", "configurable"]
class StaffUserFilter(django_filters.FilterSet): search_fields = ( "email", "name", ) status = EnumFilter(input_class=StaffMemberStatus, method=filter_status) search = django_filters.CharFilter(method=filter_fields_containing_value(*search_fields)) class Meta: model = User fields = ["status", "search"]
class SaleFilter(django_filters.FilterSet): status = ListObjectTypeFilter(input_class=DiscountStatusEnum, method=filter_status) sale_type = ObjectTypeFilter(input_class=DiscountTypeEnum, method=filter_sale_type) started = ObjectTypeFilter(input_class=DateRangeInput, method=filter_started) search = django_filters.CharFilter( method=filter_fields_containing_value("name", "value", "type")) class Meta: model = Sale fields = ["status", "sale_type", "started", "search"]
class CategoryFilter(django_filters.FilterSet): search = django_filters.CharFilter( method=filter_fields_containing_value("slug", "name")) ids = GlobalIDMultipleChoiceFilter(field_name="id") parent = GlobalIDFilter() # used in sales sales = GlobalIDMultipleChoiceFilter(method=filter_sales) not_in_sales = GlobalIDMultipleChoiceFilter(method=filter_not_in_sales) # used in vouchers vouchers = GlobalIDMultipleChoiceFilter(method=filter_vouchers) not_in_vouchers = GlobalIDMultipleChoiceFilter( method=filter_not_in_vouchers) class Meta: model = Category fields = ["search", "parent"]
class VoucherFilter(django_filters.FilterSet): status = ListObjectTypeFilter(input_class=DiscountStatusEnum, method=filter_status) times_used = ObjectTypeFilter(input_class=IntRangeInput, method=filter_times_used) voucher_type = ListObjectTypeFilter(input_class=VoucherTypeEnum, method=filter_voucher_type) discount_type = ListObjectTypeFilter(input_class=DiscountTypeEnum, method=filter_discount_type) started = ObjectTypeFilter(input_class=DateRangeInput, method=filter_started) search = django_filters.CharFilter( method=filter_fields_containing_value("name", "code")) class Meta: model = Voucher fields = ["status", "times_used", "discount_type", "started", "search"]
class CollectionFilter(django_filters.FilterSet): published = EnumFilter(input_class=CollectionPublished, method=filter_collection_publish) search = django_filters.CharFilter( method=filter_fields_containing_value("slug", "name")) ids = GlobalIDMultipleChoiceFilter(field_name="id") # used in sales sales = GlobalIDMultipleChoiceFilter(method=filter_sales) not_in_sales = GlobalIDMultipleChoiceFilter(method=filter_not_in_sales) # used in vouchers vouchers = GlobalIDMultipleChoiceFilter(method=filter_vouchers) not_in_vouchers = GlobalIDMultipleChoiceFilter( method=filter_not_in_vouchers) class Meta: model = Collection fields = ["published", "search"]
class GroupFilter(django_filters.FilterSet): search = django_filters.CharFilter(method=filter_fields_containing_value("name"))
class MenuFilter(django_filters.FilterSet): search = django_filters.CharFilter(method=filter_fields_containing_value("name")) class Meta: model = Menu fields = ["search"]