added geo module, with region supporting gis data
This commit is contained in:
72
geo/views.py
Normal file
72
geo/views.py
Normal file
@@ -0,0 +1,72 @@
|
||||
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')
|
||||
Reference in New Issue
Block a user