create menu item for establishment

This commit is contained in:
Kuroshini 2020-02-03 14:37:10 +03:00
parent 831b043a48
commit b1b3e923b7
2 changed files with 24 additions and 0 deletions

View File

@ -38,6 +38,7 @@ urlpatterns = [
path('menus/dishes/<int:pk>/gallery/<int:image_id>/', views.MenuGalleryCreateDestroyView.as_view(),
name='menu-dishes-gallery-create-destroy'),
path('menus/', views.MenuListCreateView.as_view(), name='menu-list'),
path('menus/create/<int:establishment_id>/', views.CreateMenuForCertainEstablishmentView.as_view(), name='menu-list'),
path('card_and_wines/<int:establishment_id>/', views.CardAndWinesListView.as_view(), name='card-and-wines-get'),
path('menus/<int:pk>/', views.MenuRUDView.as_view(), name='menu-rud'),
path('menus/dish/<int:establishment_id>/', views.DishCreateView.as_view(), name='create-dish'),

View File

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