remove not sent menus

This commit is contained in:
Kuroshini 2020-01-31 14:39:54 +03:00
parent 421ec5c73c
commit e008e7f2a1
2 changed files with 9 additions and 2 deletions

View File

@ -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

View File

@ -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: