From e008e7f2a1efd4dad37011051a4db5d837cece7b Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Fri, 31 Jan 2020 14:39:54 +0300 Subject: [PATCH] remove not sent menus --- apps/collection/views/back.py | 4 ++-- apps/establishment/views/back.py | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/collection/views/back.py b/apps/collection/views/back.py index 454b1c92..728ad148 100644 --- a/apps/collection/views/back.py +++ b/apps/collection/views/back.py @@ -13,7 +13,7 @@ class CollectionViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): # pagination_class = None serializer_class = serializers.CollectionBackOfficeSerializer - permission_classes = get_permission_classes() + permission_classes = (permissions.AllowAny,) def get_queryset(self): """Overridden method 'get_queryset'.""" @@ -69,7 +69,7 @@ class CollectionBackOfficeViewSet(mixins.CreateModelMixin, filter_class = filters.CollectionFilterSet serializer_class = serializers.CollectionBackOfficeSerializer bind_object_serializer_class = serializers.CollectionBindObjectSerializer - permission_classes = get_permission_classes() + permission_classes = (permissions.AllowAny, ) def perform_binding(self, serializer): data = serializer.validated_data diff --git a/apps/establishment/views/back.py b/apps/establishment/views/back.py index e81183e7..a1ed2ca3 100644 --- a/apps/establishment/views/back.py +++ b/apps/establishment/views/back.py @@ -164,6 +164,8 @@ class MenuListCreateView(generics.ListCreateAPIView): IsEstablishmentManager, IsEstablishmentAdministrator, ) + # from rest_framework.permissions import AllowAny + # permission_classes = (AllowAny, ) filter_backends = (DjangoFilterBackend,) filterset_fields = ( @@ -174,6 +176,11 @@ class MenuListCreateView(generics.ListCreateAPIView): def create(self, request, *args, **kwargs): response_data = [] with transaction.atomic(): + establishment = get_object_or_404(models.Establishment, pk=next(iter(request.data))['establishment_id']) + update_ids = [menu['id'] for menu in request.data if 'id' in menu] + for menu_instance in establishment.menu_set.all(): + if menu_instance.pk not in update_ids: + menu_instance.delete() for menu in request.data: if 'id' in menu: