Merge branch 'feature/preview-news' into 'develop'

Added new route preview/slug/<slug>/

See merge request gm/gm-backend!219
This commit is contained in:
Олег Хаятов 2020-01-17 14:24:50 +00:00
commit 4ae40dc78d
3 changed files with 33 additions and 0 deletions

View File

@ -179,6 +179,26 @@ class NewsDetailWebSerializer(NewsDetailSerializer):
return NewsSimilarListSerializer(obj.should_read(self.context['request'].user), many=True, read_only=True).data
class NewsPreviewWebSerializer(NewsDetailSerializer):
"""News preview serializer for web users.."""
same_theme = SerializerMethodField()
agenda = AgendaSerializer()
banner = NewsBannerSerializer()
class Meta(NewsDetailSerializer.Meta):
"""Meta class."""
fields = NewsDetailSerializer.Meta.fields + (
'same_theme',
'agenda',
'banner',
)
def get_same_theme(self, obj):
return NewsSimilarListSerializer(obj.same_theme(self.context['request'].user), many=True, read_only=True).data
class NewsBackOfficeBaseSerializer(NewsBaseSerializer):
"""News back office base serializer."""
is_published = serializers.BooleanField(source='is_publish', read_only=True)

View File

@ -7,4 +7,5 @@ common_urlpatterns = [
path('slug/<slug:slug>/', views.NewsDetailView.as_view(), name='rud'),
path('slug/<slug:slug>/favorites/', views.NewsFavoritesCreateDestroyView.as_view(),
name='create-destroy-favorites'),
path('preview/slug/<slug:slug>/', views.NewsPreviewView.as_view(), name='preview'),
]

View File

@ -70,6 +70,18 @@ class NewsDetailView(NewsMixinView, generics.RetrieveAPIView):
return qs
class NewsPreviewView(NewsMixinView, generics.RetrieveAPIView):
"""News preview view."""
lookup_field = None
serializer_class = serializers.NewsPreviewWebSerializer
def get_queryset(self):
"""Override get_queryset method."""
qs = models.News.objects.all().annotate_in_favorites(self.request.user)
return qs
class NewsTypeListView(generics.ListAPIView):
"""NewsType list view."""