"""Establishment app views.""" from rest_framework import generics, permissions from establishment import filters from establishment import models, serializers from utils.views import JWTGenericViewMixin class EstablishmentMixin: """Establishment mixin.""" permission_classes = (permissions.AllowAny,) def get_queryset(self): """Overrided method 'get_queryset'.""" return models.Establishment.objects.all().prefetch_actual_employees() class EstablishmentListView(EstablishmentMixin, JWTGenericViewMixin, generics.ListAPIView): """Resource for getting a list of establishments.""" serializer_class = serializers.EstablishmentListSerializer filter_class = filters.EstablishmentFilter def get_queryset(self): """Overrided method 'get_queryset'.""" qs = super(EstablishmentListView, self).get_queryset() return qs.by_country_code(code=self.request.country_code) class EstablishmentRetrieveView(EstablishmentMixin, JWTGenericViewMixin, generics.RetrieveAPIView): """Resource for getting a establishment.""" serializer_class = serializers.EstablishmentDetailSerializer class EstablishmentTypeListView(JWTGenericViewMixin, generics.ListAPIView): """Resource for getting a list of establishment types.""" permission_classes = (permissions.AllowAny,) serializer_class = serializers.EstablishmentTypeSerializer queryset = models.EstablishmentType.objects.all()