diff --git a/store/filters.py b/store/filters.py index 72700e4..49c84e6 100644 --- a/store/filters.py +++ b/store/filters.py @@ -1,6 +1,6 @@ from django_filters import rest_framework as filters -from .models import Gift +from .models import Checklist, Gift class GiftFilter(filters.FilterSet): @@ -12,3 +12,11 @@ class GiftFilter(filters.FilterSet): def filter_for_price(self, queryset, name, value): return queryset.filter(min_price__lte=value) + + +class ChecklistFilter(filters.FilterSet): + status = filters.MultipleChoiceFilter(choices=Checklist.Status.CHOICES) + + class Meta: + model = Checklist + fields = ('status',) diff --git a/store/views.py b/store/views.py index f5e1355..e527bc5 100644 --- a/store/views.py +++ b/store/views.py @@ -14,7 +14,7 @@ from rest_framework.response import Response from external_api.cdek import CDEKClient from external_api.poizon import PoizonClient from store.exceptions import CRMException -from store.filters import GiftFilter +from store.filters import GiftFilter, ChecklistFilter from store.models import Checklist, GlobalSettings, Category, PaymentMethod, Promocode, Gift from store.serializers import (ChecklistSerializer, CategorySerializer, CategoryFullSerializer, PaymentMethodSerializer, GlobalSettingsSerializer, @@ -38,7 +38,7 @@ class ChecklistAPI(mixins.ListModelMixin, DisablePermissionsMixin): serializer_class = ChecklistSerializer lookup_field = 'id' - filterset_fields = ['status', ] + filterset_class = ChecklistFilter filter_backends = [DjangoFilterBackend, SearchFilter] search_fields = ['id', 'poizon_tracking', 'buyer_phone'] # TODO: search by full_price