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')