gault-millau/apps/review/views/back.py
Александр Пархомин 60a8549cb8 add docstring for Inquiries
2020-02-10 11:16:01 +03:00

134 lines
3.2 KiB
Python

from rest_framework import generics
from review import filters
from review import models
from review import serializers
from review.serializers.back import ReviewBackSerializer
from utils.methods import get_permission_classes
from utils.permissions import (
IsReviewManager, IsRestaurantInspector, IsWineryWineInspector,
IsArtisanInspector, IsProducerFoodInspector, IsDistilleryLiquorInspector,
)
class PermissionMixinView:
"""Permission mixin view."""
permission_classes = get_permission_classes(
IsReviewManager, IsRestaurantInspector, IsWineryWineInspector,
IsArtisanInspector, IsProducerFoodInspector, IsDistilleryLiquorInspector,
)
class ReviewMixinView:
"""Review mixin."""
queryset = models.Review.objects.with_base_related()
class ReviewListView(PermissionMixinView, ReviewMixinView, generics.ListCreateAPIView):
"""Review list/create view.
**GET**
```
Implement getting list for Review.
```
**POST**
```
Implement creating for Review.
```
status values:
TO_INVESTIGATE = 0
TO_REVIEW = 1
READY = 2
"""
serializer_class = ReviewBackSerializer
filterset_class = filters.ReviewFilter
class ReviewRUDView(PermissionMixinView, ReviewMixinView, generics.RetrieveUpdateDestroyAPIView):
"""Review RUD view.
status values:
TO_INVESTIGATE = 0
TO_REVIEW = 1
READY = 2
"""
serializer_class = ReviewBackSerializer
lookup_field = 'id'
class InquiriesListView(PermissionMixinView, generics.ListCreateAPIView):
"""
Inquiries list create view.
**GET**
```
Implement getting list for Inquires.
```
**POST**
```
Implement creating for Inquires.
```
"""
serializer_class = serializers.InquiriesBaseSerializer
queryset = models.Inquiries.objects.all()
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(PermissionMixinView, generics.RetrieveUpdateDestroyAPIView):
"""
Inquiries RUD view.
**GET**
```
Implement getting Inquiries object.
```
**PUT**
```
Implement updating Inquiries.
```
**PATCH**
```
Implement partial updating Inquiries.
```
**DELETE**
```
Implement deleting Inquiries.
```
"""
serializer_class = serializers.InquiriesBaseSerializer
queryset = models.Inquiries.objects.all()
lookup_field = 'id'
class GridItemsListView(PermissionMixinView, generics.ListCreateAPIView):
"""GridItems list create view."""
serializer_class = serializers.GridItemsBaseSerializer
queryset = models.GridItems.objects.all()
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(PermissionMixinView, generics.RetrieveUpdateDestroyAPIView):
"""GridItems RUD view."""
serializer_class = serializers.GridItemsBaseSerializer
queryset = models.GridItems.objects.all()
lookup_field = 'id'