63 lines
1.8 KiB
Python
63 lines
1.8 KiB
Python
"""Main app views."""
|
|
from django.http.response import HttpResponseRedirect
|
|
from rest_framework import generics, permissions
|
|
from main import methods, models, serializers
|
|
|
|
|
|
class DetermineSiteView(generics.GenericAPIView):
|
|
"""Determine user's site."""
|
|
|
|
permission_classes = (permissions.AllowAny,)
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
user_ip = methods.get_user_ip(request)
|
|
country_code = methods.determine_country_code(user_ip)
|
|
url = methods.determine_user_site_url(country_code)
|
|
return HttpResponseRedirect(url)
|
|
|
|
|
|
class SiteSettingsView(generics.RetrieveAPIView):
|
|
"""Site settings View."""
|
|
|
|
lookup_field = 'subdomain'
|
|
permission_classes = (permissions.AllowAny,)
|
|
queryset = models.SiteSettings.objects.all()
|
|
serializer_class = serializers.SiteSettingsSerializer
|
|
#
|
|
#
|
|
# class FeatureViewMixin:
|
|
# """Feature view mixin."""
|
|
#
|
|
# queryset = models.Feature.objects.all()
|
|
# serializer_class = serializers.FeatureSerializer
|
|
# permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
|
#
|
|
#
|
|
# class FeaturesLCView(FeatureViewMixin, generics.ListCreateAPIView):
|
|
# """Site features LC View."""
|
|
#
|
|
# pagination_class = None
|
|
#
|
|
#
|
|
# class FeaturesRUDView(FeatureViewMixin, generics.RetrieveUpdateDestroyAPIView):
|
|
# """Site features RUD View."""
|
|
#
|
|
#
|
|
# class SiteFeaturesViewMixin:
|
|
# """Site feature view mixin."""
|
|
#
|
|
# queryset = models.SiteFeature.objects.all()
|
|
# serializer_class = serializers.SiteFeatureSerializer
|
|
# permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
|
#
|
|
#
|
|
# class SiteFeaturesLCView(SiteFeaturesViewMixin, generics.ListCreateAPIView):
|
|
# """Site features LC."""
|
|
#
|
|
# pagination_class = None
|
|
#
|
|
#
|
|
# class SiteFeaturesRUDView(SiteFeaturesViewMixin,
|
|
# generics.RetrieveUpdateDestroyAPIView):
|
|
# """Site features RUD."""
|