From 201dd4019359e70e02022ecbeda8f1b6aeef0ae1 Mon Sep 17 00:00:00 2001 From: Anatoly Date: Sun, 3 Nov 2019 01:32:24 +0300 Subject: [PATCH 1/2] fixed related news, but in future need refactoring --- apps/news/models.py | 4 ++-- apps/news/serializers.py | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/apps/news/models.py b/apps/news/models.py index 9a0c19d8..b2cc7778 100644 --- a/apps/news/models.py +++ b/apps/news/models.py @@ -189,11 +189,11 @@ class News(BaseAttributes, TranslatedFieldsMixin): @property def should_read(self): - return self.__class__.objects.should_read(self)[:3] + return self.__class__.objects.should_read(self) @property def same_theme(self): - return self.__class__.objects.same_theme(self)[:3] + return self.__class__.objects.same_theme(self) @property def main_image(self): diff --git a/apps/news/serializers.py b/apps/news/serializers.py index 1389d20e..4525540a 100644 --- a/apps/news/serializers.py +++ b/apps/news/serializers.py @@ -203,8 +203,8 @@ class NewsDetailSerializer(NewsBaseSerializer): class NewsDetailWebSerializer(NewsDetailSerializer): """News detail serializer for web users..""" - same_theme = NewsSimilarListSerializer(many=True, read_only=True) - should_read = NewsSimilarListSerializer(many=True, read_only=True) + same_theme = serializers.SerializerMethodField() + should_read = serializers.SerializerMethodField() agenda = AgendaSerializer() banner = NewsBannerSerializer() @@ -215,9 +215,21 @@ class NewsDetailWebSerializer(NewsDetailSerializer): 'same_theme', 'should_read', 'agenda', - 'banner' + 'banner', ) + #todo: refactor this + def get_same_theme(self, obj): + return NewsSimilarListSerializer( + obj.same_theme.has_translation(self.context.get('request').locale)[:3], + many=True).data + + #todo: refactor this + def def_should_read(self, obj): + return NewsSimilarListSerializer( + obj.should_read.has_translation(self.context.get('request').locale)[:3], + many=True).data + class NewsBackOfficeBaseSerializer(NewsBaseSerializer): """News back office base serializer.""" From 10fb4ee0ddb9ee7fef2e4e2e4dbe54167b7cb73b Mon Sep 17 00:00:00 2001 From: Anatoly Date: Sun, 3 Nov 2019 01:40:45 +0300 Subject: [PATCH 2/2] small fix --- apps/news/serializers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/news/serializers.py b/apps/news/serializers.py index 4525540a..50f79f64 100644 --- a/apps/news/serializers.py +++ b/apps/news/serializers.py @@ -225,7 +225,7 @@ class NewsDetailWebSerializer(NewsDetailSerializer): many=True).data #todo: refactor this - def def_should_read(self, obj): + def get_should_read(self, obj): return NewsSimilarListSerializer( obj.should_read.has_translation(self.context.get('request').locale)[:3], many=True).data