slugs news

This commit is contained in:
Kuroshini 2019-12-12 16:27:40 +03:00
parent 22408bf21f
commit bd3dd47742
2 changed files with 16 additions and 2 deletions

View File

@ -15,6 +15,7 @@ from utils.serializers import (TranslatedField, ProjectModelSerializer,
FavoritesCreateSerializer, ImageBaseSerializer, CarouselCreateSerializer) FavoritesCreateSerializer, ImageBaseSerializer, CarouselCreateSerializer)
from rating import models as rating_models from rating import models as rating_models
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from utils.models import get_current_locale, get_default_locale
class AgendaSerializer(ProjectModelSerializer): class AgendaSerializer(ProjectModelSerializer):
@ -70,6 +71,13 @@ class NewsBaseSerializer(ProjectModelSerializer):
tags = TagBaseSerializer(read_only=True, many=True, source='visible_tags') tags = TagBaseSerializer(read_only=True, many=True, source='visible_tags')
in_favorites = serializers.BooleanField(allow_null=True, read_only=True) in_favorites = serializers.BooleanField(allow_null=True, read_only=True)
view_counter = serializers.IntegerField(read_only=True) view_counter = serializers.IntegerField(read_only=True)
slug = serializers.SerializerMethodField(read_only=True, allow_null=True)
def get_slug(self, obj):
if obj.slugs:
return obj.slugs.get(get_current_locale()) \
or obj.slugs.get(get_default_locale()) \
or next(iter(obj.slugs.values()))
class Meta: class Meta:
"""Meta class.""" """Meta class."""
@ -77,12 +85,12 @@ class NewsBaseSerializer(ProjectModelSerializer):
model = models.News model = models.News
fields = ( fields = (
'id', 'id',
'slug',
'title_translated', 'title_translated',
'subtitle_translated', 'subtitle_translated',
'is_highlighted', 'is_highlighted',
'news_type', 'news_type',
'tags', 'tags',
'slugs',
'view_counter', 'view_counter',
) )
@ -173,6 +181,7 @@ class NewsBackOfficeBaseSerializer(NewsBaseSerializer):
'title', 'title',
'backoffice_title', 'backoffice_title',
'subtitle', 'subtitle',
'slugs',
'is_published', 'is_published',
) )
extra_kwargs = { extra_kwargs = {

View File

@ -222,6 +222,7 @@ class NewsDocumentSerializer(InFavoritesMixin, DocumentSerializer):
subtitle_translated = serializers.SerializerMethodField(allow_null=True) subtitle_translated = serializers.SerializerMethodField(allow_null=True)
news_type = NewsTypeSerializer() news_type = NewsTypeSerializer()
tags = TagsDocumentSerializer(many=True, source='visible_tags') tags = TagsDocumentSerializer(many=True, source='visible_tags')
slug = serializers.SerializerMethodField(allow_null=True)
class Meta: class Meta:
"""Meta class.""" """Meta class."""
@ -237,9 +238,13 @@ class NewsDocumentSerializer(InFavoritesMixin, DocumentSerializer):
'news_type', 'news_type',
'tags', 'tags',
'start', 'start',
'slugs', 'slug',
) )
@staticmethod
def get_slug(obj):
return get_translated_value(obj.slugs)
@staticmethod @staticmethod
def get_title_translated(obj): def get_title_translated(obj):
return get_translated_value(obj.title) return get_translated_value(obj.title)