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:
commit
4ae40dc78d
|
|
@ -179,6 +179,26 @@ class NewsDetailWebSerializer(NewsDetailSerializer):
|
||||||
return NewsSimilarListSerializer(obj.should_read(self.context['request'].user), many=True, read_only=True).data
|
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):
|
class NewsBackOfficeBaseSerializer(NewsBaseSerializer):
|
||||||
"""News back office base serializer."""
|
"""News back office base serializer."""
|
||||||
is_published = serializers.BooleanField(source='is_publish', read_only=True)
|
is_published = serializers.BooleanField(source='is_publish', read_only=True)
|
||||||
|
|
|
||||||
|
|
@ -7,4 +7,5 @@ common_urlpatterns = [
|
||||||
path('slug/<slug:slug>/', views.NewsDetailView.as_view(), name='rud'),
|
path('slug/<slug:slug>/', views.NewsDetailView.as_view(), name='rud'),
|
||||||
path('slug/<slug:slug>/favorites/', views.NewsFavoritesCreateDestroyView.as_view(),
|
path('slug/<slug:slug>/favorites/', views.NewsFavoritesCreateDestroyView.as_view(),
|
||||||
name='create-destroy-favorites'),
|
name='create-destroy-favorites'),
|
||||||
|
path('preview/slug/<slug:slug>/', views.NewsPreviewView.as_view(), name='preview'),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,18 @@ class NewsDetailView(NewsMixinView, generics.RetrieveAPIView):
|
||||||
return qs
|
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):
|
class NewsTypeListView(generics.ListAPIView):
|
||||||
"""NewsType list view."""
|
"""NewsType list view."""
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user