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)
from rating import models as rating_models
from django.shortcuts import get_object_or_404
from utils.models import get_current_locale, get_default_locale
class AgendaSerializer(ProjectModelSerializer):
@ -70,6 +71,13 @@ class NewsBaseSerializer(ProjectModelSerializer):
tags = TagBaseSerializer(read_only=True, many=True, source='visible_tags')
in_favorites = serializers.BooleanField(allow_null=True, 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:
"""Meta class."""
@ -77,12 +85,12 @@ class NewsBaseSerializer(ProjectModelSerializer):
model = models.News
fields = (
'id',
'slug',
'title_translated',
'subtitle_translated',
'is_highlighted',
'news_type',
'tags',
'slugs',
'view_counter',
)
@ -173,6 +181,7 @@ class NewsBackOfficeBaseSerializer(NewsBaseSerializer):
'title',
'backoffice_title',
'subtitle',
'slugs',
'is_published',
)
extra_kwargs = {

View File

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