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 = SimpleRouter()
router.register(r'', views.CollectionBackOfficeViewSet) router.register(r'', views.CollectionBackOfficeViewSet)
urlpatterns = [ urlpatterns = router.urls
path('<int:pk>/', views.CollectionBackOfficeView.as_view(), name='detail'),
]
urlpatterns += router.urls

View File

@ -1,9 +1,8 @@
from rest_framework import generics
from rest_framework import mixins from rest_framework import mixins
from rest_framework import permissions from rest_framework import permissions
from rest_framework import viewsets from rest_framework import viewsets
from rest_framework.response import Response
from collection import filters
from collection import models from collection import models
from collection.serializers import back as serializers from collection.serializers import back as serializers
from utils.views import BindObjectMixin from utils.views import BindObjectMixin
@ -28,6 +27,7 @@ class CollectionBackOfficeViewSet(mixins.CreateModelMixin,
permission_classes = (permissions.IsAuthenticated,) permission_classes = (permissions.IsAuthenticated,)
queryset = models.Collection.objects.all() queryset = models.Collection.objects.all()
filter_backends = [filters.CollectionBackOfficeOrderingFilter]
serializer_class = serializers.CollectionBackOfficeSerializer serializer_class = serializers.CollectionBackOfficeSerializer
bind_object_serializer_class = serializers.CollectionBindObjectSerializer bind_object_serializer_class = serializers.CollectionBindObjectSerializer
@ -50,17 +50,3 @@ class CollectionBackOfficeViewSet(mixins.CreateModelMixin,
collection.establishments.remove(related_object) collection.establishments.remove(related_object)
elif obj_type == self.bind_object_serializer_class.PRODUCT: elif obj_type == self.bind_object_serializer_class.PRODUCT:
collection.products.remove(related_object) 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