diff --git a/apps/review/serializers/common.py b/apps/review/serializers/common.py index f4acc4f4..74ed6924 100644 --- a/apps/review/serializers/common.py +++ b/apps/review/serializers/common.py @@ -1,5 +1,6 @@ from rest_framework import serializers -from review.models import Review + +from review.models import Review, Inquiries, GridItems class ReviewBaseSerializer(serializers.ModelSerializer): @@ -27,3 +28,39 @@ class ReviewShortSerializer(ReviewBaseSerializer): fields = ( 'text_translated', ) + + +class InquiriesBaseSerializer(serializers.ModelSerializer): + class Meta: + model = Inquiries + fields = ( + 'id', + 'review', + 'comment', + 'final_comment', + 'mark', + 'attachment_file', + 'author', + 'bill_file', + 'price', + 'moment', + 'gallery', + 'decibels', + 'nomination', + 'nominee', + 'published', + ) + + +class GridItemsBaseSerializer(serializers.ModelSerializer): + class Meta: + model = GridItems + fields = ( + 'id', + 'inquiry', + 'sub_name', + 'name', + 'value', + 'desc', + 'dish_title', + ) diff --git a/apps/review/urls/back.py b/apps/review/urls/back.py index 84ca49f3..a59aafa8 100644 --- a/apps/review/urls/back.py +++ b/apps/review/urls/back.py @@ -8,4 +8,10 @@ app_name = 'review' urlpatterns = [ path('', views.ReviewLstView.as_view(), name='review-list-create'), path('/', views.ReviewRUDView.as_view(), name='review-crud'), + path('/inquiries/', views.InquiriesLstView.as_view(), name='inquiries-list'), + path('inquiries/', views.InquiriesLstView.as_view(), name='inquiries-list-create'), + path('inquiries//', views.InquiriesRUDView.as_view(), name='inquiries-crud'), + path('inquiries//grid/', views.GridItemsLstView.as_view(), name='grid-list-create'), + path('inquiries/grid/', views.GridItemsLstView.as_view(), name='grid-list-create'), + path('inquiries/grid//', views.GridItemsRUDView.as_view(), name='grid-crud'), ] diff --git a/apps/review/views/back.py b/apps/review/views/back.py index 31e8725a..c6ec6b67 100644 --- a/apps/review/views/back.py +++ b/apps/review/views/back.py @@ -1,6 +1,7 @@ from rest_framework import generics, permissions -from review import serializers + from review import models +from review import serializers from utils.permissions import IsReviewerManager, IsRestaurantReviewer @@ -8,12 +9,55 @@ class ReviewLstView(generics.ListCreateAPIView): """Comment list create view.""" serializer_class = serializers.ReviewBaseSerializer queryset = models.Review.objects.all() - permission_classes = [permissions.IsAuthenticatedOrReadOnly,] + permission_classes = [permissions.IsAuthenticatedOrReadOnly, ] class ReviewRUDView(generics.RetrieveUpdateDestroyAPIView): """Comment RUD view.""" serializer_class = serializers.ReviewBaseSerializer queryset = models.Review.objects.all() - permission_classes = [IsReviewerManager|IsRestaurantReviewer] + permission_classes = [IsReviewerManager | IsRestaurantReviewer] + lookup_field = 'id' + + +class InquiriesLstView(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 GridItemsLstView(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'