diff --git a/apps/location/views/back.py b/apps/location/views/back.py index fc4499ae..5dcb55bf 100644 --- a/apps/location/views/back.py +++ b/apps/location/views/back.py @@ -1,4 +1,5 @@ """Location app views.""" +from django_filters.rest_framework import DjangoFilterBackend from rest_framework import generics from location import models, serializers @@ -11,6 +12,7 @@ from utils.serializers import ImageBaseSerializer from location import filters + # Address @@ -18,29 +20,36 @@ class AddressListCreateView(common.AddressViewMixin, generics.ListCreateAPIView) """Create view for model Address.""" serializer_class = serializers.AddressDetailSerializer queryset = models.Address.objects.all() - permission_classes = [IsAuthenticatedOrReadOnly|IsCountryAdmin] + permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] class AddressRUDView(common.AddressViewMixin, generics.RetrieveUpdateDestroyAPIView): """RUD view for model Address.""" serializer_class = serializers.AddressDetailSerializer queryset = models.Address.objects.all() - permission_classes = [IsAuthenticatedOrReadOnly|IsCountryAdmin] + permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] # City class CityListCreateView(common.CityViewMixin, generics.ListCreateAPIView): """Create view for model City.""" serializer_class = serializers.CitySerializer - permission_classes = [IsAuthenticatedOrReadOnly|IsCountryAdmin] - queryset = models.City.objects.all() + permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] + # queryset = models.City.objects.all() filter_class = filters.CityBackFilter + def get_queryset(self): + """Overridden method 'get_queryset'.""" + qs = models.City.objects.all() + if self.request.country_code: + qs = qs.by_country_code(self.request.country_code) + return qs + class CityListSearchView(common.CityViewMixin, generics.ListCreateAPIView): """Create view for model City.""" serializer_class = serializers.CitySerializer - permission_classes = [IsAuthenticatedOrReadOnly|IsCountryAdmin] + permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] queryset = models.City.objects.all() filter_class = filters.CityBackFilter pagination_class = None @@ -49,14 +58,14 @@ class CityListSearchView(common.CityViewMixin, generics.ListCreateAPIView): class CityRUDView(common.CityViewMixin, generics.RetrieveUpdateDestroyAPIView): """RUD view for model City.""" serializer_class = serializers.CitySerializer - permission_classes = [IsAuthenticatedOrReadOnly|IsCountryAdmin] + permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] class CityGalleryCreateDestroyView(common.CityViewMixin, CreateDestroyGalleryViewMixin): """Resource for a create gallery for product for back-office users.""" serializer_class = serializers.CityGallerySerializer - permission_classes = [IsAuthenticatedOrReadOnly|IsCountryAdmin] + permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] def get_object(self): """ @@ -77,7 +86,7 @@ class CityGalleryListView(common.CityViewMixin, generics.ListAPIView): """Resource for returning gallery for product for back-office users.""" serializer_class = ImageBaseSerializer - permission_classes = [IsAuthenticatedOrReadOnly|IsCountryAdmin] + permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] def get_object(self): """Override get_object method.""" @@ -99,13 +108,18 @@ class RegionListCreateView(common.RegionViewMixin, generics.ListCreateAPIView): """Create view for model Region""" pagination_class = None serializer_class = serializers.RegionSerializer - permission_classes = [IsAuthenticatedOrReadOnly|IsCountryAdmin] + permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] + filter_backends = (DjangoFilterBackend,) + ordering_fields = '__all__' + filterset_fields = ( + 'country', + ) class RegionRUDView(common.RegionViewMixin, generics.RetrieveUpdateDestroyAPIView): """Retrieve view for model Region""" serializer_class = serializers.RegionSerializer - permission_classes = [IsAuthenticatedOrReadOnly|IsCountryAdmin] + permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] # Country @@ -114,11 +128,11 @@ class CountryListCreateView(generics.ListCreateAPIView): queryset = models.Country.objects.all() serializer_class = serializers.CountryBackSerializer pagination_class = None - permission_classes = [IsAuthenticatedOrReadOnly|IsCountryAdmin] + permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] class CountryRUDView(generics.RetrieveUpdateDestroyAPIView): """RUD view for model Country.""" serializer_class = serializers.CountryBackSerializer - permission_classes = [IsAuthenticatedOrReadOnly|IsCountryAdmin] - queryset = models.Country.objects.all() \ No newline at end of file + permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] + queryset = models.Country.objects.all()