menu type

This commit is contained in:
Kuroshini 2020-01-31 17:06:38 +03:00
parent cfba383940
commit 2e0cfabbce
2 changed files with 4 additions and 2 deletions

View File

@ -743,6 +743,7 @@ class MenuBackOfficeSerializer(serializers.ModelSerializer):
model = models.Menu
fields = [
'id',
'type',
'name',
'establishment_id',
'establishment_slug',

View File

@ -157,7 +157,7 @@ class EstablishmentScheduleCreateView(generics.CreateAPIView):
class MenuListCreateView(generics.ListCreateAPIView):
"""Menu list create view."""
"""Menu list create view. This view works only with menu formulas type"""
serializer_class = serializers.MenuBackOfficeSerializer
queryset = models.Menu.objects.with_base_related()
permission_classes = get_permission_classes(
@ -178,10 +178,11 @@ class MenuListCreateView(generics.ListCreateAPIView):
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():
for menu_instance in establishment.menu_set.by_type(models.Menu.FORMULAS):
if menu_instance.pk not in update_ids:
menu_instance.delete()
for menu in request.data:
menu.update({'type': models.Menu.FORMULAS})
if 'id' in menu:
instance = get_object_or_404(Menu, pk=menu['id'])