Files
consumocuidado-server/geo/views.py

73 lines
2.6 KiB
Python

from rest_framework.response import Response
from tenants.views import CustomViewSet, CustomExternalViewSet
from rest_framework import viewsets, status
from rest_framework.decorators import permission_classes
from legalq.permissions import GlobalAccess
from . import models
from . import serializers
class CountryViewSet(CustomExternalViewSet):
model = models.Country
read_serializer_class = serializers.CountryReadSerializer
write_serializer_class = serializers.CountryWriteSerializer
model_name = 'country'
queryset = models.Country.objects.all()
filterset_fields = ('name', )
def retrieve(self, request, *args, **kwargs):
instance = models.Country.objects.filter(pk=kwargs['pk']).first()
if instance is not None:
serializer = self.read_serializer_class(instance)
return Response(serializer.data)
return Response(status=status.HTTP_404_NOT_FOUND)
permission_classes = [GlobalAccess]
class RegionViewSet(viewsets.ReadOnlyModelViewSet):
model = models.Region
serializer_class = serializers.RegionReadSerializer
write_serializer_class = serializers.RegionWriteSerializer
model_name = 'region'
queryset = models.Region.objects.all()
filterset_fields = ('name', 'country__name')
permission_classes = [GlobalAccess]
class ProvinceViewSet(CustomExternalViewSet):
model = models.Province
read_serializer_class = serializers.ProvinceReadSerializer
model_name = 'region'
queryset = models.Province.objects.all()
filterset_fields = ('name', 'region__country__name')
def retrieve(self, request, *args, **kwargs):
instance = models.Province.objects.filter(pk=kwargs['pk']).first()
if instance is not None:
serializer = self.read_serializer_class(instance)
return Response(serializer.data)
return Response(status=status.HTTP_404_NOT_FOUND)
permission_classes = [GlobalAccess]
class CityViewSet(CustomExternalViewSet):
model = models.City
read_serializer_class = serializers.CityReadSerializer
write_serializer_class = serializers.CityWriteSerializer
model_name = 'city'
queryset = models.City.objects.all()
def retrieve(self, request, *args, **kwargs):
instance = models.City.objects.filter(pk=kwargs['pk']).first()
if instance is not None:
serializer = self.read_serializer_class(instance)
return Response(serializer.data)
return Response(status=status.HTTP_404_NOT_FOUND)
permission_classes = [GlobalAccess]
filterset_fields = ('name', 'province__name', 'province__region__name')