refactored filters for partner view

This commit is contained in:
Anatoly 2020-01-27 13:19:36 +03:00
parent b1817061db
commit e1c1662819
2 changed files with 28 additions and 7 deletions

23
apps/partner/filters.py Normal file
View 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',
)

View File

@ -1,22 +1,20 @@
from django_filters.rest_framework import DjangoFilterBackend, filters
from rest_framework import generics, permissions
from partner import filters
from partner.models import Partner
from partner.serializers import back as serializers
from utils.permissions import IsEstablishmentManager
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()
serializer_class = serializers.BackPartnerSerializer
pagination_class = None
permission_classes = [permissions.IsAdminUser | IsEstablishmentManager]
filter_backends = (DjangoFilterBackend,)
filterset_fields = (
'establishment',
'type',
)
filter_class = filters.PartnerFilterSet
class PartnerRUDView(generics.RetrieveUpdateDestroyAPIView):