From b1b3e923b778ca82de46403be03ecdcc5e64469a Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Mon, 3 Feb 2020 14:37:10 +0300 Subject: [PATCH] create menu item for establishment --- apps/establishment/urls/back.py | 1 + apps/establishment/views/back.py | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/apps/establishment/urls/back.py b/apps/establishment/urls/back.py index d3b739a6..d454a950 100644 --- a/apps/establishment/urls/back.py +++ b/apps/establishment/urls/back.py @@ -38,6 +38,7 @@ urlpatterns = [ path('menus/dishes//gallery//', views.MenuGalleryCreateDestroyView.as_view(), name='menu-dishes-gallery-create-destroy'), path('menus/', views.MenuListCreateView.as_view(), name='menu-list'), + path('menus/create//', views.CreateMenuForCertainEstablishmentView.as_view(), name='menu-list'), path('card_and_wines//', views.CardAndWinesListView.as_view(), name='card-and-wines-get'), path('menus//', views.MenuRUDView.as_view(), name='menu-rud'), path('menus/dish//', views.DishCreateView.as_view(), name='create-dish'), diff --git a/apps/establishment/views/back.py b/apps/establishment/views/back.py index b3d71488..6467b506 100644 --- a/apps/establishment/views/back.py +++ b/apps/establishment/views/back.py @@ -178,6 +178,29 @@ class CardAndWinesListView(generics.RetrieveAPIView): return establishment +class CreateMenuForCertainEstablishmentView(generics.CreateAPIView): + """Creates formulas menu for certain establishment""" + permission_classes = get_permission_classes( + IsEstablishmentManager, + IsEstablishmentAdministrator, + ) + # from rest_framework.permissions import AllowAny + # permission_classes = (AllowAny, ) + queryset = models.Menu.objects.with_base_related().by_type(menu_type=models.Menu.FORMULAS) + serializer_class = serializers.MenuBackOfficeSerializer + + def create(self, request, *args, **kwargs): + data = request.data.copy() + data['establishment_id'] = kwargs['establishment_id'] + data['type'] = models.Menu.FORMULAS + serializer = self.get_serializer(data=data) + serializer.is_valid(raise_exception=True) + with transaction.atomic(): + self.perform_create(serializer) + headers = self.get_success_headers(serializer.data) + return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) + + class MenuListCreateView(generics.ListCreateAPIView): """Menu list create view. This view works only with menu formulas type""" serializer_class = serializers.MenuBackOfficeSerializer