191 lines
6.4 KiB
Python
191 lines
6.4 KiB
Python
"""Establishment app views."""
|
|
from django.shortcuts import get_object_or_404
|
|
from rest_framework import generics
|
|
|
|
from establishment import models, serializers
|
|
from timetable.serialziers import ScheduleRUDSerializer, ScheduleCreateSerializer
|
|
|
|
|
|
class EstablishmentMixinViews:
|
|
"""Establishment mixin."""
|
|
|
|
def get_queryset(self):
|
|
"""Overrided method 'get_queryset'."""
|
|
return models.Establishment.objects.published().with_base_related()
|
|
|
|
|
|
class EstablishmentListCreateView(EstablishmentMixinViews, generics.ListCreateAPIView):
|
|
"""Establishment list/create view."""
|
|
queryset = models.Establishment.objects.all()
|
|
serializer_class = serializers.EstablishmentListCreateSerializer
|
|
|
|
|
|
class EstablishmentRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|
queryset = models.Establishment.objects.all()
|
|
serializer_class = serializers.EstablishmentRUDSerializer
|
|
|
|
|
|
class EstablishmentScheduleRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|
"""Establishment schedule RUD view"""
|
|
serializer_class = ScheduleRUDSerializer
|
|
|
|
def get_object(self):
|
|
"""
|
|
Returns the object the view is displaying.
|
|
"""
|
|
establishment_pk = self.kwargs['pk']
|
|
schedule_id = self.kwargs['schedule_id']
|
|
|
|
establishment = get_object_or_404(klass=models.Establishment.objects.all(),
|
|
pk=establishment_pk)
|
|
schedule = get_object_or_404(klass=establishment.schedule,
|
|
id=schedule_id)
|
|
|
|
# May raise a permission denied
|
|
self.check_object_permissions(self.request, establishment)
|
|
self.check_object_permissions(self.request, schedule)
|
|
|
|
return schedule
|
|
|
|
|
|
class EstablishmentScheduleCreateView(generics.CreateAPIView):
|
|
"""Establishment schedule Create view"""
|
|
serializer_class = ScheduleCreateSerializer
|
|
|
|
|
|
class EstablishmentTagCategoryListView(EstablishmentMixinViews, generics.ListAPIView):
|
|
"""View for establishment tag categories."""
|
|
serializer_class = serializers.EstablishmentTagCategoryListSerializer
|
|
pagination_class = None
|
|
|
|
def get_object(self):
|
|
"""
|
|
Returns the object the view is displaying.
|
|
"""
|
|
queryset = super(EstablishmentTagCategoryListView, self).get_queryset()
|
|
|
|
# Perform the lookup filtering.
|
|
lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field
|
|
|
|
filter_kwargs = {self.lookup_field: self.kwargs[lookup_url_kwarg]}
|
|
obj = get_object_or_404(queryset, **filter_kwargs)
|
|
|
|
# May raise a permission denied
|
|
self.check_object_permissions(self.request, obj)
|
|
|
|
return obj
|
|
|
|
def get_queryset(self):
|
|
"""Overridden get_queryset method."""
|
|
establishment = self.get_object()
|
|
return establishment.establishment_type.tag_categories.all()
|
|
|
|
|
|
class MenuListCreateView(generics.ListCreateAPIView):
|
|
"""Menu list create view."""
|
|
serializer_class = serializers.MenuSerializers
|
|
queryset = models.Menu.objects.all()
|
|
|
|
|
|
class MenuRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|
"""Menu RUD view."""
|
|
serializer_class = serializers.MenuRUDSerializers
|
|
queryset = models.Menu.objects.all()
|
|
|
|
|
|
class SocialListCreateView(generics.ListCreateAPIView):
|
|
"""Social list create view."""
|
|
serializer_class = serializers.SocialNetworkSerializers
|
|
queryset = models.SocialNetwork.objects.all()
|
|
pagination_class = None
|
|
|
|
|
|
class SocialRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|
"""Social RUD view."""
|
|
serializer_class = serializers.SocialNetworkSerializers
|
|
queryset = models.SocialNetwork.objects.all()
|
|
|
|
|
|
class PlateListCreateView(generics.ListCreateAPIView):
|
|
"""Plate list create view."""
|
|
serializer_class = serializers.PlatesSerializers
|
|
queryset = models.Plate.objects.all()
|
|
pagination_class = None
|
|
|
|
|
|
class PlateRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|
"""Social RUD view."""
|
|
serializer_class = serializers.PlatesSerializers
|
|
queryset = models.Plate.objects.all()
|
|
|
|
|
|
class PhonesListCreateView(generics.ListCreateAPIView):
|
|
"""Plate list create view."""
|
|
serializer_class = serializers.ContactPhoneBackSerializers
|
|
queryset = models.ContactPhone.objects.all()
|
|
pagination_class = None
|
|
|
|
|
|
class PhonesRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|
"""Social RUD view."""
|
|
serializer_class = serializers.ContactPhoneBackSerializers
|
|
queryset = models.ContactPhone.objects.all()
|
|
|
|
|
|
class EmailListCreateView(generics.ListCreateAPIView):
|
|
"""Plate list create view."""
|
|
serializer_class = serializers.ContactEmailBackSerializers
|
|
queryset = models.ContactEmail.objects.all()
|
|
pagination_class = None
|
|
|
|
|
|
class EmailRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|
"""Social RUD view."""
|
|
serializer_class = serializers.ContactEmailBackSerializers
|
|
queryset = models.ContactEmail.objects.all()
|
|
|
|
|
|
class EmployeeListCreateView(generics.ListCreateAPIView):
|
|
"""Emplyoee list create view."""
|
|
serializer_class = serializers.EmployeeBackSerializers
|
|
queryset = models.Employee.objects.all()
|
|
pagination_class = None
|
|
|
|
|
|
class EmployeeRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|
"""Social RUD view."""
|
|
serializer_class = serializers.EmployeeBackSerializers
|
|
queryset = models.Employee.objects.all()
|
|
|
|
|
|
class EstablishmentTypeListCreateView(generics.ListCreateAPIView):
|
|
"""Establishment type list/create view."""
|
|
serializer_class = serializers.EstablishmentTypeSerializer
|
|
queryset = models.EstablishmentType.objects.all()
|
|
pagination_class = None
|
|
|
|
|
|
class EstablishmentTypeRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|
"""Establishment type retrieve/update/destroy view."""
|
|
serializer_class = serializers.EstablishmentTypeSerializer
|
|
queryset = models.EstablishmentType.objects.all()
|
|
|
|
|
|
class EstablishmentSubtypeListCreateView(generics.ListCreateAPIView):
|
|
"""Establishment subtype list/create view."""
|
|
serializer_class = serializers.EstablishmentSubTypeSerializer
|
|
queryset = models.EstablishmentSubType.objects.all()
|
|
pagination_class = None
|
|
|
|
|
|
class EstablishmentSubtypeRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|
"""Establishment subtype retrieve/update/destroy view."""
|
|
serializer_class = serializers.EstablishmentSubTypeSerializer
|
|
queryset = models.EstablishmentSubType.objects.all()
|
|
|
|
|
|
class EstablishmentTagListCreateView(generics.ListCreateAPIView):
|
|
"""Establishment tag list/create view."""
|
|
serializer_class = serializers.EstablishmentTagListSerializer
|
|
queryset = models.EstablishmentTag.objects.all()
|