Change structure

This commit is contained in:
dormantman 2020-01-23 17:45:59 +03:00
parent 0c40ed06e1
commit d98a6aeb00

View File

@ -101,17 +101,30 @@ class DetermineLocation(generics.GenericAPIView):
raise Http404
class ContentPageView(generics.ListAPIView):
class ContentPageBaseView(generics.GenericAPIView):
@property
def static_page_category(self):
name = 'static'
static_page_category = NewsType.objects.filter(name=name).first()
if static_page_category is None:
static_page_category = NewsType.objects.create(name=name)
return static_page_category
def get_queryset(self):
return super().get_queryset().filter(news_type=self.static_page_category)
class ContentPageView(ContentPageBaseView, generics.ListAPIView):
"""Method to get content pages"""
permission_classes = (permissions.AllowAny,)
serializer_class = NewsListSerializer
queryset = News.objects.all()
def get_queryset(self):
static_page_category = NewsType.objects.get(name='static')
return super().get_queryset().filter(news_type=static_page_category)
class ContentPageAdminView(generics.ListCreateAPIView):
"""Method to get content pages"""
@ -120,10 +133,6 @@ class ContentPageAdminView(generics.ListCreateAPIView):
serializer_class = NewsListSerializer
queryset = News.objects.all()
def get_queryset(self):
static_page_category = NewsType.objects.get(name='static')
return super().get_queryset().filter(news_type=static_page_category)
class ContentPageRetrieveView(NewsMixinView, generics.RetrieveAPIView):
"""Retrieve method to get content pages"""
@ -134,10 +143,6 @@ class ContentPageRetrieveView(NewsMixinView, generics.RetrieveAPIView):
queryset = News.objects.all()
renderer_classes = [StaticHTMLRenderer]
def get_queryset(self):
static_page_category = NewsType.objects.get(name='static')
return self.queryset.filter(news_type__id=static_page_category.id)
def get(self, request, *args, **kwargs):
instance = self.get_object()
return Response(instance.description.get(request.locale))
@ -151,10 +156,6 @@ class ContentPageIdRetrieveView(generics.RetrieveAPIView):
queryset = News.objects.all()
renderer_classes = [StaticHTMLRenderer]
def get_queryset(self):
static_page_category = NewsType.objects.get(name='static')
return self.queryset.filter(news_type__id=static_page_category.id)
def get(self, request, *args, **kwargs):
instance = self.get_object()
return Response(instance.description.get(request.locale))
@ -167,7 +168,3 @@ class ContentPageRetrieveAdminView(NewsMixinView, generics.RetrieveUpdateDestroy
permission_classes = (permissions.IsAdminUser,)
serializer_class = NewsDetailSerializer
queryset = News.objects.all()
def get_queryset(self):
static_page_category = NewsType.objects.get(name='static')
return super().get_queryset().filter(news_type=static_page_category)