fix god damned content-pages

This commit is contained in:
Kuroshini 2020-01-23 18:34:52 +03:00
parent dd1b241c41
commit 4002e684d5

View File

@ -1,12 +1,10 @@
"""Main app views.""" """Main app views."""
from django.http import Http404 from django.http import Http404
from django.conf import settings
from rest_framework import generics, permissions from rest_framework import generics, permissions
from rest_framework.renderers import StaticHTMLRenderer
from rest_framework.response import Response from rest_framework.response import Response
from main import methods, models, serializers from main import methods, models, serializers
from news.models import News, NewsType from news.models import News
from news.serializers import NewsDetailSerializer, NewsListSerializer from news.serializers import NewsDetailSerializer, NewsListSerializer
from news.views import NewsMixinView from news.views import NewsMixinView
from utils.serializers import EmptySerializer from utils.serializers import EmptySerializer
@ -106,17 +104,10 @@ class ContentPageBaseView(generics.GenericAPIView):
@property @property
def static_page_category(self): def static_page_category(self):
name = 'static' return '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): def get_queryset(self):
return super().get_queryset().filter(news_type=self.static_page_category) return super().get_queryset().filter(news_type__name=self.static_page_category)
class ContentPageView(ContentPageBaseView, generics.ListAPIView): class ContentPageView(ContentPageBaseView, generics.ListAPIView):
@ -142,13 +133,6 @@ class ContentPageRetrieveView(NewsMixinView, ContentPageBaseView, generics.Retri
permission_classes = (permissions.AllowAny,) permission_classes = (permissions.AllowAny,)
serializer_class = NewsDetailSerializer serializer_class = NewsDetailSerializer
queryset = News.objects.all() queryset = News.objects.all()
renderer_classes = [StaticHTMLRenderer]
def get(self, request, *args, **kwargs):
instance = self.get_object()
return Response(instance.description.get(request.locale,
instance.description.get(settings.FALLBACK_LOCALE,
next(iter(instance.description)))))
class ContentPageIdRetrieveView(ContentPageBaseView, generics.RetrieveAPIView): class ContentPageIdRetrieveView(ContentPageBaseView, generics.RetrieveAPIView):
@ -157,13 +141,6 @@ class ContentPageIdRetrieveView(ContentPageBaseView, generics.RetrieveAPIView):
permission_classes = (permissions.AllowAny,) permission_classes = (permissions.AllowAny,)
serializer_class = NewsDetailSerializer serializer_class = NewsDetailSerializer
queryset = News.objects.all() queryset = News.objects.all()
renderer_classes = [StaticHTMLRenderer]
def get(self, request, *args, **kwargs):
instance = self.get_object()
return Response(instance.description.get(request.locale,
instance.description.get(settings.FALLBACK_LOCALE,
next(iter(instance.description)))))
class ContentPageRetrieveAdminView(NewsMixinView, ContentPageBaseView, generics.RetrieveUpdateDestroyAPIView): class ContentPageRetrieveAdminView(NewsMixinView, ContentPageBaseView, generics.RetrieveUpdateDestroyAPIView):
@ -173,4 +150,3 @@ class ContentPageRetrieveAdminView(NewsMixinView, ContentPageBaseView, generics.
permission_classes = (permissions.IsAdminUser,) permission_classes = (permissions.IsAdminUser,)
serializer_class = NewsDetailSerializer serializer_class = NewsDetailSerializer
queryset = News.objects.all() queryset = News.objects.all()