diff --git a/apps/establishment/serializers/back.py b/apps/establishment/serializers/back.py index 4c262ba6..020f332f 100644 --- a/apps/establishment/serializers/back.py +++ b/apps/establishment/serializers/back.py @@ -798,6 +798,11 @@ class MenuBackOfficeSerializer(serializers.ModelSerializer): class EstablishmentBackOfficeWineSerializer(serializers.ModelSerializer): + establishment_id = serializers.PrimaryKeyRelatedField( + source='establishment', + queryset=models.Establishment.objects.all(), + write_only=True + ) """BackOffice wine serializer""" class Meta: model = models.EstablishmentBackOfficeWine @@ -809,6 +814,7 @@ class EstablishmentBackOfficeWineSerializer(serializers.ModelSerializer): 'price_from_for_one', 'price_to_for_one', 'is_glass', + 'establishment_id', ) diff --git a/apps/establishment/urls/back.py b/apps/establishment/urls/back.py index 607bd5a9..e6dff080 100644 --- a/apps/establishment/urls/back.py +++ b/apps/establishment/urls/back.py @@ -38,8 +38,9 @@ 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('card_and_wines/', views.CardAndWinesListView.as_view(), name='card-and-wines-get'), + path('card_and_wines//', views.CardAndWinesListView.as_view(), name='card-and-wines-get'), path('menus//', views.MenuRUDView.as_view(), name='menu-rud'), + path('menus/wine//', views.EstablishmentWineView.as_view(), name='menu-wine'), path('menus/uploads/', views.MenuUploadsRUDView.as_view(), name='menu-uploads-rud'), path('menus/uploads/', views.MenuUploadsCreateView.as_view(), name='menu-uploads-create'), path('plates/', views.PlateListCreateView.as_view(), name='plates'), diff --git a/apps/establishment/views/back.py b/apps/establishment/views/back.py index 6e2f15ac..9921842b 100644 --- a/apps/establishment/views/back.py +++ b/apps/establishment/views/back.py @@ -242,6 +242,34 @@ class MenuUploadsRUDView(generics.RetrieveDestroyAPIView): ) +class EstablishmentWineView(generics.CreateAPIView): + """Create and update establishment wine""" + serializer_class = serializers.EstablishmentBackOfficeWineSerializer + queryset = models.EstablishmentBackOfficeWine.objects.all() + + # permission_classes = get_permission_classes( + # IsEstablishmentManager, + # IsEstablishmentAdministrator, + # ) + from rest_framework.permissions import AllowAny + permission_classes = (AllowAny, ) + + def create(self, request, *args, **kwargs): + data = request.data.copy() + data.update({'establishment_id': self.kwargs['establishment_id']}) + if 'id' in data: + """Update""" + instance = get_object_or_404(models.EstablishmentBackOfficeWine, pk=data['id']) + serializer = self.get_serializer(instance, data=data) + else: + """create""" + serializer = self.get_serializer(data=data) + serializer.is_valid(raise_exception=True) + serializer.save() + + return Response(serializer.data, status=status.HTTP_201_CREATED) + + class MenuUploadsCreateView(generics.CreateAPIView): """Menu uploads list view""" serializer_class = serializers.MenuFilesSerializers