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 = models.Menu.objects.create(**validated_data)
|
||||||
instance.uploads.set(uploaded_files_ids)
|
instance.uploads.set(uploaded_files_ids)
|
||||||
return instance
|
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(),
|
path('menus/dishes/<int:pk>/gallery/<int:image_id>/', views.MenuGalleryCreateDestroyView.as_view(),
|
||||||
name='menu-dishes-gallery-create-destroy'),
|
name='menu-dishes-gallery-create-destroy'),
|
||||||
path('menus/', views.MenuListCreateView.as_view(), name='menu-list'),
|
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/<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/<int:pk>', views.MenuUploadsRUDView.as_view(), name='menu-uploads-rud'),
|
||||||
path('menus/uploads/', views.MenuUploadsCreateView.as_view(), name='menu-uploads-create'),
|
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):
|
class MenuListCreateView(generics.ListCreateAPIView):
|
||||||
"""Menu list create view. This view works only with menu formulas type"""
|
"""Menu list create view. This view works only with menu formulas type"""
|
||||||
serializer_class = serializers.MenuBackOfficeSerializer
|
serializer_class = serializers.MenuBackOfficeSerializer
|
||||||
queryset = models.Menu.objects.with_base_related().by_type(menu_type=models.Menu.FORMULAS)
|
queryset = models.Menu.objects.with_base_related().by_type(menu_type=models.Menu.FORMULAS)
|
||||||
permission_classes = get_permission_classes(
|
# permission_classes = get_permission_classes(
|
||||||
IsEstablishmentManager,
|
# IsEstablishmentManager,
|
||||||
IsEstablishmentAdministrator,
|
# IsEstablishmentAdministrator,
|
||||||
)
|
# )
|
||||||
# from rest_framework.permissions import AllowAny
|
from rest_framework.permissions import AllowAny
|
||||||
# permission_classes = (AllowAny, )
|
permission_classes = (AllowAny, )
|
||||||
|
|
||||||
filter_backends = (DjangoFilterBackend,)
|
filter_backends = (DjangoFilterBackend,)
|
||||||
filterset_fields = (
|
filterset_fields = (
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user