Added MenuFiles serializer

This commit is contained in:
dormantman 2020-01-31 00:13:15 +03:00
parent fbed631f40
commit a0408204a1
3 changed files with 29 additions and 12 deletions

View File

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

View File

@ -37,6 +37,8 @@ urlpatterns = [
name='menu-dishes-gallery-create-destroy'),
path('menus/', views.MenuListCreateView.as_view(), name='menu-list'),
path('menus/<int:pk>/', 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/<int:pk>/', views.PlateRUDView.as_view(), name='plate-rud'),
path('social_choice/', views.SocialChoiceListCreateView.as_view(), name='socials_choice'),

View File

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