diff --git a/apps/establishment/serializers/back.py b/apps/establishment/serializers/back.py index 6d5e34a8..6bbc6f08 100644 --- a/apps/establishment/serializers/back.py +++ b/apps/establishment/serializers/back.py @@ -1,15 +1,16 @@ from functools import lru_cache -from account.serializers.common import UserShortSerializer from django.db.models import F from django.utils.translation import gettext_lazy as _ +from rest_framework import serializers + +from account.serializers.common import UserShortSerializer from establishment import models, serializers as model_serializers from establishment.models import ContactEmail, ContactPhone, EstablishmentEmployee from gallery.models import Image from location.serializers import AddressDetailSerializer, TranslatedField from main.models import Currency from main.serializers import AwardSerializer -from rest_framework import serializers from utils.decorators import with_base_attributes from utils.serializers import ImageBaseSerializer, ProjectModelSerializer, TimeZoneChoiceField @@ -699,8 +700,6 @@ class MenuGallerySerializer(serializers.ModelSerializer): class MenuFilesSerializers(ProjectModelSerializer): - menu = serializers.IntegerField(write_only=True) - class Meta: model = models.MenuFiles fields = [ @@ -708,14 +707,10 @@ class MenuFilesSerializers(ProjectModelSerializer): 'name', 'type', 'file', - 'menu' ] def create(self, validated_data): - menu_id = validated_data.pop('menu') - menu = get_object_or_404(models.Menu, pk=menu_id) instance = models.MenuFiles.objects.create(**validated_data) - menu.uploads.add(instance) return instance diff --git a/apps/establishment/urls/back.py b/apps/establishment/urls/back.py index d5173942..eaa45677 100644 --- a/apps/establishment/urls/back.py +++ b/apps/establishment/urls/back.py @@ -37,6 +37,8 @@ urlpatterns = [ name='menu-dishes-gallery-create-destroy'), path('menus/', views.MenuListCreateView.as_view(), name='menu-list'), path('menus//', views.MenuRUDView.as_view(), name='menu-rud'), + path('menus/uploads/', views.MenuUploadsRUDView.as_view(), name='menu-uploads-rud'), + path('menus/uploads/create/', views.MenuUploadsCreateView.as_view(), name='menu-uploads-create'), path('plates/', views.PlateListCreateView.as_view(), name='plates'), path('plates//', views.PlateRUDView.as_view(), name='plate-rud'), path('social_choice/', views.SocialChoiceListCreateView.as_view(), name='socials_choice'), diff --git a/apps/establishment/views/back.py b/apps/establishment/views/back.py index a41eef71..cba2fdfd 100644 --- a/apps/establishment/views/back.py +++ b/apps/establishment/views/back.py @@ -3,7 +3,7 @@ from django.db.models.query_utils import Q from django.http import Http404 from django.shortcuts import get_object_or_404 from django_filters.rest_framework import DjangoFilterBackend -from rest_framework import generics, status, response +from rest_framework import generics, response, status from rest_framework.response import Response from account.models import User @@ -160,11 +160,11 @@ class MenuListCreateView(generics.ListCreateAPIView): serializer_class = serializers.MenuBackOfficeSerializer queryset = models.Menu.objects.with_base_related() # permission_classes = get_permission_classes( - # IsEstablishmentManager, - # IsEstablishmentAdministrator, + # IsEstablishmentManager, + # IsEstablishmentAdministrator, # ) from rest_framework.permissions import AllowAny - permission_classes = (AllowAny, ) + permission_classes = (AllowAny,) filter_backends = (DjangoFilterBackend,) filterset_fields = ( @@ -183,6 +183,26 @@ class MenuRUDView(generics.RetrieveUpdateDestroyAPIView): ) +class MenuUploadsRUDView(generics.RetrieveDestroyAPIView): + """Menu uploads RUD view.""" + serializer_class = serializers.MenuFilesSerializers + queryset = models.MenuFiles.objects.all() + permission_classes = get_permission_classes( + IsEstablishmentManager, + IsEstablishmentAdministrator, + ) + + +class MenuUploadsCreateView(generics.CreateAPIView): + """Menu uploads list view""" + serializer_class = serializers.MenuFilesSerializers + queryset = models.MenuFiles.objects.all() + permission_classes = get_permission_classes( + IsEstablishmentManager, + IsEstablishmentAdministrator, + ) + + class SocialChoiceListCreateView(generics.ListCreateAPIView): """SocialChoice list create view.""" serializer_class = serializers.SocialChoiceSerializers