added geo module, with region supporting gis data

This commit is contained in:
Sam
2021-01-21 13:18:37 +00:00
parent 944bc7d6c7
commit 9965900791
12 changed files with 5108 additions and 4 deletions

72
geo/views.py Normal file
View 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')