refactored collection views

This commit is contained in:
Anatoly 2019-10-02 16:21:38 +03:00
parent 8e3bb54508
commit fec3e703ce

View File

@ -13,12 +13,12 @@ class CollectionViewMixin(generics.GenericAPIView):
"""Mixin for Collection view""" """Mixin for Collection view"""
model = models.Collection model = models.Collection
permission_classes = (permissions.AllowAny,) permission_classes = (permissions.AllowAny,)
serializer_class = serializers.CollectionSerializer
def get_queryset(self): def get_queryset(self):
"""Override get_queryset method.""" """Override get_queryset method."""
return models.Collection.objects.published() \ return models.Collection.objects.published() \
.by_country_code(code=self.request.country_code) \ .by_country_code(code=self.request.country_code) \
.filter_all_related_gt(3) \
.order_by('-on_top', '-modified') .order_by('-on_top', '-modified')
@ -30,9 +30,17 @@ class GuideViewMixin(generics.GenericAPIView):
# Views # Views
# Collections # Collections
class CollectionHomePageView(CollectionViewMixin, generics.ListAPIView): class CollectionListView(CollectionViewMixin, generics.ListAPIView):
"""List Collection view""" """List Collection view."""
serializer_class = serializers.CollectionSerializer
class CollectionHomePageView(CollectionListView):
"""Collection list view for home page."""
def get_queryset(self):
"""Override get_queryset."""
return super(CollectionHomePageView, self).get_queryset() \
.filter_all_related_gt(3)
class CollectionDetailView(CollectionViewMixin, generics.RetrieveAPIView): class CollectionDetailView(CollectionViewMixin, generics.RetrieveAPIView):
@ -41,7 +49,7 @@ class CollectionDetailView(CollectionViewMixin, generics.RetrieveAPIView):
serializer_class = serializers.CollectionBaseSerializer serializer_class = serializers.CollectionBaseSerializer
class CollectionEstablishmentListView(CollectionHomePageView): class CollectionEstablishmentListView(CollectionListView):
"""Retrieve list of establishment for collection.""" """Retrieve list of establishment for collection."""
lookup_field = 'slug' lookup_field = 'slug'
pagination_class = ProjectPageNumberPagination pagination_class = ProjectPageNumberPagination