refactored filters for partner view
This commit is contained in:
parent
b1817061db
commit
e1c1662819
23
apps/partner/filters.py
Normal file
23
apps/partner/filters.py
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
"""Partner app filters."""
|
||||||
|
from django_filters import rest_framework as filters
|
||||||
|
|
||||||
|
from partner.models import Partner
|
||||||
|
|
||||||
|
|
||||||
|
class PartnerFilterSet(filters.FilterSet):
|
||||||
|
"""Establishment filter set."""
|
||||||
|
|
||||||
|
establishment = filters.NumberFilter(
|
||||||
|
help_text='Allows to get partner list by establishment ID.')
|
||||||
|
type = filters.ChoiceFilter(
|
||||||
|
choices=Partner.MODEL_TYPES,
|
||||||
|
help_text=f'Allows to filter partner list by partner type. '
|
||||||
|
f'Enum: {dict(Partner.MODEL_TYPES)}')
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
"""Meta class."""
|
||||||
|
model = Partner
|
||||||
|
fields = (
|
||||||
|
'establishment',
|
||||||
|
'type',
|
||||||
|
)
|
||||||
|
|
@ -1,22 +1,20 @@
|
||||||
from django_filters.rest_framework import DjangoFilterBackend, filters
|
|
||||||
from rest_framework import generics, permissions
|
from rest_framework import generics, permissions
|
||||||
|
|
||||||
|
from partner import filters
|
||||||
from partner.models import Partner
|
from partner.models import Partner
|
||||||
from partner.serializers import back as serializers
|
from partner.serializers import back as serializers
|
||||||
from utils.permissions import IsEstablishmentManager
|
from utils.permissions import IsEstablishmentManager
|
||||||
|
|
||||||
|
|
||||||
class PartnerLstView(generics.ListCreateAPIView):
|
class PartnerLstView(generics.ListCreateAPIView):
|
||||||
"""Partner list create view."""
|
"""Partner list/create view.
|
||||||
|
Allows to get partners for current country, or create a new one.
|
||||||
|
"""
|
||||||
queryset = Partner.objects.all()
|
queryset = Partner.objects.all()
|
||||||
serializer_class = serializers.BackPartnerSerializer
|
serializer_class = serializers.BackPartnerSerializer
|
||||||
pagination_class = None
|
pagination_class = None
|
||||||
permission_classes = [permissions.IsAdminUser | IsEstablishmentManager]
|
permission_classes = [permissions.IsAdminUser | IsEstablishmentManager]
|
||||||
filter_backends = (DjangoFilterBackend,)
|
filter_class = filters.PartnerFilterSet
|
||||||
filterset_fields = (
|
|
||||||
'establishment',
|
|
||||||
'type',
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class PartnerRUDView(generics.RetrieveUpdateDestroyAPIView):
|
class PartnerRUDView(generics.RetrieveUpdateDestroyAPIView):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user