130 lines
3.7 KiB
Python
130 lines
3.7 KiB
Python
"""Location app views."""
|
|
from rest_framework import generics
|
|
from rest_framework import permissions
|
|
from location import models, serializers
|
|
from utils.views import JWTGenericViewMixin
|
|
|
|
|
|
# Mixins
|
|
class CountryViewMixin(JWTGenericViewMixin, generics.GenericAPIView):
|
|
"""View Mixin for model Country"""
|
|
|
|
serializer_class = serializers.CountrySerializer
|
|
permission_classes = (permissions.AllowAny, )
|
|
|
|
def get_queryset(self):
|
|
return models.Country.objects.annotate_localized_fields(
|
|
locale=self._get_locale(request=self.request))
|
|
|
|
|
|
class RegionViewMixin(generics.GenericAPIView):
|
|
"""View Mixin for model Region"""
|
|
model = models.Region
|
|
queryset = models.Region.objects.all()
|
|
|
|
|
|
class CityViewMixin(generics.GenericAPIView):
|
|
"""View Mixin for model City"""
|
|
model = models.City
|
|
queryset = models.City.objects.all()
|
|
|
|
|
|
class AddressViewMixin(generics.GenericAPIView):
|
|
"""View Mixin for model Address"""
|
|
model = models.Address
|
|
queryset = models.Address.objects.all()
|
|
|
|
|
|
# Country
|
|
class CountryListView(CountryViewMixin, generics.ListAPIView):
|
|
"""List view for model Country."""
|
|
|
|
pagination_class = None
|
|
|
|
|
|
class CountryRetrieveView(CountryViewMixin, generics.RetrieveAPIView):
|
|
"""Retrieve view for model Country."""
|
|
|
|
|
|
# Region
|
|
class RegionCreateView(RegionViewMixin, generics.CreateAPIView):
|
|
"""Create view for model Region"""
|
|
serializer_class = serializers.RegionSerializer
|
|
|
|
|
|
class RegionRetrieveView(RegionViewMixin, generics.RetrieveAPIView):
|
|
"""Retrieve view for model Region"""
|
|
serializer_class = serializers.RegionSerializer
|
|
|
|
|
|
class RegionListView(RegionViewMixin, generics.ListAPIView):
|
|
"""List view for model Country"""
|
|
permission_classes = (permissions.AllowAny, )
|
|
serializer_class = serializers.CountrySerializer
|
|
|
|
|
|
class RegionDestroyView(RegionViewMixin, generics.DestroyAPIView):
|
|
"""Destroy view for model Country"""
|
|
serializer_class = serializers.CountrySerializer
|
|
|
|
|
|
class RegionUpdateView(RegionViewMixin, generics.UpdateAPIView):
|
|
"""Update view for model Country"""
|
|
serializer_class = serializers.CountrySerializer
|
|
|
|
|
|
# City
|
|
class CityCreateView(CityViewMixin, generics.CreateAPIView):
|
|
"""Create view for model City"""
|
|
serializer_class = serializers.CitySerializer
|
|
|
|
|
|
class CityRetrieveView(CityViewMixin, generics.RetrieveAPIView):
|
|
"""Retrieve view for model City"""
|
|
serializer_class = serializers.CitySerializer
|
|
|
|
|
|
class CityListView(CityViewMixin, generics.ListAPIView):
|
|
"""List view for model City"""
|
|
permission_classes = (permissions.AllowAny, )
|
|
serializer_class = serializers.CitySerializer
|
|
|
|
|
|
class CityDestroyView(CityViewMixin, generics.DestroyAPIView):
|
|
"""Destroy view for model City"""
|
|
serializer_class = serializers.CitySerializer
|
|
|
|
|
|
class CityUpdateView(CityViewMixin, generics.UpdateAPIView):
|
|
"""Update view for model City"""
|
|
serializer_class = serializers.CitySerializer
|
|
|
|
|
|
# Address
|
|
class AddressCreateView(AddressViewMixin, generics.CreateAPIView):
|
|
"""Create view for model Address"""
|
|
serializer_class = serializers.AddressSerializer
|
|
|
|
|
|
class AddressRetrieveView(AddressViewMixin, generics.RetrieveAPIView):
|
|
"""Retrieve view for model Address"""
|
|
serializer_class = serializers.AddressSerializer
|
|
|
|
|
|
class AddressListView(AddressViewMixin, generics.ListAPIView):
|
|
"""List view for model Address"""
|
|
permission_classes = (permissions.AllowAny, )
|
|
serializer_class = serializers.AddressSerializer
|
|
|
|
|
|
class AddressDestroyView(AddressViewMixin, generics.DestroyAPIView):
|
|
"""Destroy view for model Address"""
|
|
serializer_class = serializers.AddressSerializer
|
|
|
|
|
|
class AddressUpdateView(AddressViewMixin, generics.UpdateAPIView):
|
|
"""Update view for model Address"""
|
|
serializer_class = serializers.AddressSerializer
|
|
|
|
|