From 9e7a9500883a2529aa36f694ac52f28717c5383a Mon Sep 17 00:00:00 2001 From: dormantman Date: Mon, 23 Dec 2019 12:13:13 +0300 Subject: [PATCH 1/2] Set code style --- apps/news/serializers.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/apps/news/serializers.py b/apps/news/serializers.py index 602e49a6..7b63e39f 100644 --- a/apps/news/serializers.py +++ b/apps/news/serializers.py @@ -1,21 +1,22 @@ """News app common serializers.""" +from django.shortcuts import get_object_or_404 from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from rest_framework.fields import SerializerMethodField from account.serializers.common import UserBaseSerializer from gallery.models import Image -from main.models import SiteSettings, Carousel from location import models as location_models -from location.serializers import CountrySimpleSerializer, AddressBaseSerializer +from location.serializers import AddressBaseSerializer, CountrySimpleSerializer +from main.models import SiteSettings from news import models +from rating import models as rating_models from tag.serializers import TagBaseSerializer from utils import exceptions as utils_exceptions -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 +from utils.serializers import ( + CarouselCreateSerializer, FavoritesCreateSerializer, ImageBaseSerializer, ProjectModelSerializer, TranslatedField, +) class AgendaSerializer(ProjectModelSerializer): @@ -125,8 +126,7 @@ class NewsDetailSerializer(NewsBaseSerializer): description_translated = TranslatedField() country = CountrySimpleSerializer(read_only=True) author = UserBaseSerializer(source='created_by', read_only=True) - state_display = serializers.CharField(source='get_state_display', - read_only=True) + state_display = serializers.CharField(source='get_state_display', read_only=True) gallery = ImageBaseSerializer(read_only=True, source='crop_gallery', many=True) start = serializers.DateTimeField(source='publication_datetime', read_only=True) @@ -196,8 +196,8 @@ class NewsBackOfficeBaseSerializer(NewsBaseSerializer): 'created': {'read_only': True}, 'modified': {'read_only': True}, 'duplication_date': {'read_only': True}, - 'locale_to_description_is_active': {'allow_null': False}, - 'must_of_the_week': {'read_only': True}, + 'locale_to_description_is_active': {'allow_null': False}, + 'must_of_the_week': {'read_only': True}, } def create(self, validated_data): @@ -375,11 +375,12 @@ class NewsCarouselCreateSerializer(CarouselCreateSerializer): class NewsCloneCreateSerializer(NewsBackOfficeBaseSerializer, - NewsDetailSerializer): + NewsDetailSerializer): """Serializer for creating news clone.""" template_display = serializers.CharField(source='get_template_display', read_only=True) duplicates = NewsBackOfficeDuplicationInfoSerializer(many=True, allow_null=True, read_only=True) + class Meta(NewsBackOfficeBaseSerializer.Meta, NewsDetailSerializer.Meta): fields = NewsBackOfficeBaseSerializer.Meta.fields + NewsDetailSerializer.Meta.fields + ( 'template_display', @@ -394,4 +395,3 @@ class NewsCloneCreateSerializer(NewsBackOfficeBaseSerializer, view_count_model = rating_models.ViewCount.objects.create(count=0) instance.create_duplicate(new_country, view_count_model) return get_object_or_404(models.News, pk=kwargs['pk']) - From 1849166bae67fbdd2926967f05515093942b378f Mon Sep 17 00:00:00 2001 From: dormantman Date: Mon, 23 Dec 2019 15:12:27 +0300 Subject: [PATCH 2/2] Fix author bug --- apps/news/serializers.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/news/serializers.py b/apps/news/serializers.py index 7b63e39f..375e2404 100644 --- a/apps/news/serializers.py +++ b/apps/news/serializers.py @@ -202,11 +202,18 @@ class NewsBackOfficeBaseSerializer(NewsBaseSerializer): def create(self, validated_data): slugs = validated_data.get('slugs') + if slugs: if models.News.objects.filter( slugs__values__contains=list(slugs.values()) ).exists(): raise serializers.ValidationError({'slugs': _('News with this slug already exists.')}) + + request = self.context.get("request") + if request and hasattr(request, "user"): + user = request.user + validated_data['created_by'] = user + return super().create(validated_data) def update(self, instance, validated_data):