update news endpoint
This commit is contained in:
parent
9373137a29
commit
9e1bf5ba0e
|
|
@ -1,5 +1,5 @@
|
||||||
|
"""News app common serializers."""
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from gallery import models as gallery_models
|
from gallery import models as gallery_models
|
||||||
from location.models import Address
|
from location.models import Address
|
||||||
from location.serializers import AddressSerializer
|
from location.serializers import AddressSerializer
|
||||||
|
|
@ -23,7 +23,7 @@ class NewsSerializer(serializers.ModelSerializer):
|
||||||
title_translated = serializers.CharField(read_only=True, allow_null=True)
|
title_translated = serializers.CharField(read_only=True, allow_null=True)
|
||||||
subtitle_translated = serializers.CharField(read_only=True, allow_null=True)
|
subtitle_translated = serializers.CharField(read_only=True, allow_null=True)
|
||||||
description_translated = serializers.CharField(read_only=True, allow_null=True)
|
description_translated = serializers.CharField(read_only=True, allow_null=True)
|
||||||
image_url = serializers.ImageField(source='image.image')
|
image_url = serializers.ImageField(source='image.image', allow_null=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.News
|
model = models.News
|
||||||
|
|
|
||||||
|
|
@ -1,50 +1,37 @@
|
||||||
|
"""News app common app."""
|
||||||
from rest_framework import generics, permissions
|
from rest_framework import generics, permissions
|
||||||
|
from news import filters, models
|
||||||
from news import filters
|
|
||||||
from news.models import News, NewsType
|
|
||||||
from news.serializers import common as serializers
|
from news.serializers import common as serializers
|
||||||
from utils.views import (JWTGenericViewMixin,
|
from utils.views import JWTGenericViewMixin, JWTListAPIView
|
||||||
JWTListAPIView)
|
|
||||||
|
|
||||||
|
|
||||||
# Mixins
|
class NewsMixin:
|
||||||
class NewsViewMixin(JWTGenericViewMixin):
|
"""News mixin."""
|
||||||
"""View mixin for News model"""
|
|
||||||
|
|
||||||
def get_queryset(self, *args, **kwargs):
|
|
||||||
"""Override get_queryset method"""
|
|
||||||
return News.objects.annotate_localized_fields(locale=self.request.locale)
|
|
||||||
|
|
||||||
|
|
||||||
class NewsListView(NewsViewMixin, JWTListAPIView):
|
|
||||||
"""News list view."""
|
|
||||||
permission_classes = (permissions.AllowAny, )
|
permission_classes = (permissions.AllowAny, )
|
||||||
serializer_class = serializers.NewsSerializer
|
serializer_class = serializers.NewsSerializer
|
||||||
filter_class = filters.NewsListFilterSet
|
|
||||||
|
|
||||||
def get_queryset(self, *args, **kwargs):
|
def get_queryset(self, *args, **kwargs):
|
||||||
"""Override get_queryset method"""
|
"""Override get_queryset method"""
|
||||||
return News.objects.published()\
|
return models.News.objects.published() \
|
||||||
.by_country_code(code=self.request.country_code)\
|
.by_country_code(code=self.request.country_code) \
|
||||||
.order_by('-is_highlighted', '-created')
|
.order_by('-is_highlighted', '-created')
|
||||||
|
|
||||||
|
|
||||||
# class NewsCreateView(generics.CreateAPIView):
|
class NewsListView(NewsMixin, JWTListAPIView):
|
||||||
# """News list view."""
|
"""News list view."""
|
||||||
# queryset = News.objects.all()
|
|
||||||
# permission_classes = (permissions.IsAuthenticated, )
|
filter_class = filters.NewsListFilterSet
|
||||||
# serializer_class = serializers.NewsCreateUpdateSerializer
|
|
||||||
|
|
||||||
|
|
||||||
class NewsDetailView(NewsViewMixin, generics.RetrieveAPIView):
|
class NewsDetailView(NewsMixin, JWTGenericViewMixin, generics.RetrieveAPIView):
|
||||||
"""News detail view."""
|
"""News detail view."""
|
||||||
permission_classes = (permissions.IsAuthenticatedOrReadOnly, )
|
|
||||||
serializer_class = serializers.NewsSerializer
|
|
||||||
|
|
||||||
|
|
||||||
class NewsTypeListView(generics.ListAPIView):
|
class NewsTypeListView(generics.ListAPIView):
|
||||||
"""NewsType list view."""
|
"""NewsType list view."""
|
||||||
|
|
||||||
serializer_class = serializers.NewsTypeSerializer
|
serializer_class = serializers.NewsTypeSerializer
|
||||||
permission_classes = (permissions.AllowAny, )
|
permission_classes = (permissions.AllowAny, )
|
||||||
pagination_class = None
|
pagination_class = None
|
||||||
queryset = NewsType.objects.all()
|
queryset = models.NewsType.objects.all()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user