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