card_and_wines get method
This commit is contained in:
parent
f67c8b08a5
commit
a9ad3ef7e7
|
|
@ -793,3 +793,57 @@ class MenuBackOfficeSerializer(serializers.ModelSerializer):
|
|||
instance = models.Menu.objects.create(**validated_data)
|
||||
instance.uploads.set(uploaded_files_ids)
|
||||
return instance
|
||||
|
||||
|
||||
class EstablishmentBackOfficeWineSerializer(serializers.ModelSerializer):
|
||||
"""BackOffice wine serializer"""
|
||||
class Meta:
|
||||
model = models.EstablishmentBackOfficeWine
|
||||
fields = (
|
||||
'id',
|
||||
'bottles',
|
||||
'price_from',
|
||||
'price_to',
|
||||
'price_from_for_one',
|
||||
'price_to_for_one',
|
||||
'is_glass',
|
||||
)
|
||||
|
||||
|
||||
class CardAndWinesPlatesSerializer(serializers.ModelSerializer):
|
||||
"""Serializer for card&wines backoffice section"""
|
||||
|
||||
name_translated = TranslatedField(read_only=True)
|
||||
description_translated = TranslatedField(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = models.Plate
|
||||
fields = (
|
||||
'id',
|
||||
'name_translated',
|
||||
'description_translated',
|
||||
'is_signature_plate',
|
||||
'currency_code',
|
||||
'price',
|
||||
)
|
||||
|
||||
|
||||
class CardAndWinesSerializer(serializers.ModelSerializer):
|
||||
"""View to show menus(not formulas) with dishes for certain establishment"""
|
||||
|
||||
wine = EstablishmentBackOfficeWineSerializer(allow_null=True, read_only=True, source='back_office_wine')
|
||||
dishes = serializers.SerializerMethodField(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = models.Establishment
|
||||
fields = (
|
||||
'wine',
|
||||
'dishes',
|
||||
)
|
||||
|
||||
def get_dishes(self, obj):
|
||||
result = []
|
||||
for menu in obj.menu_set.exclude(type=models.Menu.FORMULAS):
|
||||
for plate in menu.plates.all():
|
||||
result.append(CardAndWinesPlatesSerializer(plate).data)
|
||||
return result
|
||||
|
|
|
|||
|
|
@ -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('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/uploads/<int:pk>', views.MenuUploadsRUDView.as_view(), name='menu-uploads-rud'),
|
||||
path('menus/uploads/', views.MenuUploadsCreateView.as_view(), name='menu-uploads-create'),
|
||||
|
|
|
|||
|
|
@ -157,16 +157,30 @@ class EstablishmentScheduleCreateView(generics.CreateAPIView):
|
|||
)
|
||||
|
||||
|
||||
class CardAndWinesListView(generics.RetrieveAPIView):
|
||||
# permission_classes = get_permission_classes(
|
||||
# IsEstablishmentManager,
|
||||
# IsEstablishmentAdministrator,
|
||||
# )
|
||||
serializer_class = serializers.CardAndWinesSerializer
|
||||
queryset = models.Establishment.objects.with_base_related()
|
||||
from rest_framework.permissions import AllowAny
|
||||
permission_classes = (AllowAny, )
|
||||
|
||||
def get_object(self):
|
||||
return get_object_or_404(models.Establishment, pk=self.kwargs['establishment_id'])
|
||||
|
||||
|
||||
class MenuListCreateView(generics.ListCreateAPIView):
|
||||
"""Menu list create view. This view works only with menu formulas type"""
|
||||
serializer_class = serializers.MenuBackOfficeSerializer
|
||||
queryset = models.Menu.objects.with_base_related().by_type(menu_type=models.Menu.FORMULAS)
|
||||
permission_classes = get_permission_classes(
|
||||
IsEstablishmentManager,
|
||||
IsEstablishmentAdministrator,
|
||||
)
|
||||
# from rest_framework.permissions import AllowAny
|
||||
# permission_classes = (AllowAny, )
|
||||
# permission_classes = get_permission_classes(
|
||||
# IsEstablishmentManager,
|
||||
# IsEstablishmentAdministrator,
|
||||
# )
|
||||
from rest_framework.permissions import AllowAny
|
||||
permission_classes = (AllowAny, )
|
||||
|
||||
filter_backends = (DjangoFilterBackend,)
|
||||
filterset_fields = (
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user