Reformat ordering

This commit is contained in:
dormantman 2019-12-13 18:32:06 +03:00
parent 8f6dd7e5c1
commit 525658f39b
3 changed files with 11 additions and 21 deletions

View File

@ -0,0 +1,8 @@
from rest_framework import filters
class CollectionBackOfficeOrderingFilter(filters.BaseFilterBackend):
""" Filter ordering """
def filter_queryset(self, request, queryset, view):
return queryset.order_by('rank', '-start')

View File

@ -8,9 +8,5 @@ app_name = 'collection'
router = SimpleRouter()
router.register(r'', views.CollectionBackOfficeViewSet)
urlpatterns = [
path('<int:pk>/', views.CollectionBackOfficeView.as_view(), name='detail'),
]
urlpatterns += router.urls
urlpatterns = router.urls

View File

@ -1,9 +1,8 @@
from rest_framework import generics
from rest_framework import mixins
from rest_framework import permissions
from rest_framework import viewsets
from rest_framework.response import Response
from collection import filters
from collection import models
from collection.serializers import back as serializers
from utils.views import BindObjectMixin
@ -28,6 +27,7 @@ class CollectionBackOfficeViewSet(mixins.CreateModelMixin,
permission_classes = (permissions.IsAuthenticated,)
queryset = models.Collection.objects.all()
filter_backends = [filters.CollectionBackOfficeOrderingFilter]
serializer_class = serializers.CollectionBackOfficeSerializer
bind_object_serializer_class = serializers.CollectionBindObjectSerializer
@ -50,17 +50,3 @@ class CollectionBackOfficeViewSet(mixins.CreateModelMixin,
collection.establishments.remove(related_object)
elif obj_type == self.bind_object_serializer_class.PRODUCT:
collection.products.remove(related_object)
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset()).order_by('rank', '-start')
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data)
class CollectionBackOfficeView(generics.GenericAPIView):
"""ViewS for Collection model."""
pagination_class = None
permission_classes = (permissions.IsAuthenticated,)
queryset = models.Collection.objects.all()
serializer_class = serializers.CollectionBackOfficeSerializer