93 lines
2.8 KiB
Python
93 lines
2.8 KiB
Python
from rest_framework import generics, permissions
|
|
|
|
from review import filters
|
|
from review import models
|
|
from review import serializers
|
|
from utils.permissions import IsReviewManager, IsRestaurantInspector
|
|
from review.serializers.back import ReviewBackSerializer
|
|
|
|
|
|
class ReviewMixinView:
|
|
"""Review mixin."""
|
|
|
|
def get_queryset(self):
|
|
"""Overridden method 'get_queryset'."""
|
|
return models.Review.objects.all()
|
|
|
|
|
|
class ReviewListView(ReviewMixinView, generics.ListCreateAPIView):
|
|
"""Review list create view.
|
|
|
|
status values:
|
|
|
|
TO_INVESTIGATE = 0
|
|
TO_REVIEW = 1
|
|
READY = 2
|
|
"""
|
|
serializer_class = ReviewBackSerializer
|
|
queryset = models.Review.objects.all()
|
|
permission_classes = [permissions.IsAuthenticatedOrReadOnly, ]
|
|
filterset_class = filters.ReviewFilter
|
|
|
|
def get_queryset(self):
|
|
"""Overridden get_queryset method."""
|
|
return super(ReviewListView, self).get_queryset()
|
|
|
|
|
|
class ReviewRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|
"""Review RUD view.
|
|
|
|
status values:
|
|
|
|
TO_INVESTIGATE = 0
|
|
TO_REVIEW = 1
|
|
READY = 2
|
|
"""
|
|
serializer_class = ReviewBackSerializer
|
|
queryset = models.Review.objects.all()
|
|
permission_classes = [permissions.IsAdminUser | IsReviewManager | IsRestaurantInspector]
|
|
lookup_field = 'id'
|
|
|
|
|
|
class InquiriesListView(generics.ListCreateAPIView):
|
|
"""Inquiries list create view."""
|
|
|
|
serializer_class = serializers.InquiriesBaseSerializer
|
|
queryset = models.Inquiries.objects.all()
|
|
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
|
|
|
def get_queryset(self):
|
|
review_id = self.kwargs.get('review_id')
|
|
if review_id:
|
|
return super().get_queryset().filter(review_id=review_id)
|
|
return super().get_queryset()
|
|
|
|
|
|
class InquiriesRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|
"""Inquiries RUD view."""
|
|
serializer_class = serializers.InquiriesBaseSerializer
|
|
queryset = models.Inquiries.objects.all()
|
|
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
|
lookup_field = 'id'
|
|
|
|
|
|
class GridItemsListView(generics.ListCreateAPIView):
|
|
"""GridItems list create view."""
|
|
serializer_class = serializers.GridItemsBaseSerializer
|
|
queryset = models.GridItems.objects.all()
|
|
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
|
|
|
def get_queryset(self):
|
|
inquiry_id = self.kwargs.get('inquiry_id')
|
|
if inquiry_id:
|
|
return super().get_queryset().filter(inquiry_id=inquiry_id)
|
|
return super().get_queryset()
|
|
|
|
|
|
class GridItemsRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|
"""GridItems RUD view."""
|
|
serializer_class = serializers.GridItemsBaseSerializer
|
|
queryset = models.GridItems.objects.all()
|
|
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
|
lookup_field = 'id'
|