diff --git a/apps/main/filters.py b/apps/main/filters.py index e3a05a71..72636d9e 100644 --- a/apps/main/filters.py +++ b/apps/main/filters.py @@ -1,7 +1,7 @@ from django.core.validators import EMPTY_VALUES from django_filters import rest_framework as filters -from review import models +from main import models class AwardFilter(filters.FilterSet): @@ -14,11 +14,14 @@ class AwardFilter(filters.FilterSet): class Meta: """Meta class.""" - model = models.Review + model = models.Award fields = ( 'establishment_id', 'product_id', 'employee_id', + 'state', + 'award_type', + 'vintage_year', ) def by_establishment_id(self, queryset, name, value): diff --git a/apps/main/serializers.py b/apps/main/serializers.py index 6b8e2ba4..732cfbad 100644 --- a/apps/main/serializers.py +++ b/apps/main/serializers.py @@ -38,7 +38,7 @@ class SiteFeatureSerializer(serializers.ModelSerializer): 'route', 'source', 'nested', - ) + ) class CurrencySerializer(ProjectModelSerializer): @@ -145,6 +145,22 @@ class AwardSerializer(AwardBaseSerializer): fields = AwardBaseSerializer.Meta.fields + ['award_type', ] +class BackAwardSerializer(serializers.ModelSerializer): + """Award serializer.""" + + title_translated = serializers.CharField(read_only=True, allow_null=True) + + class Meta: + model = models.Award + fields = [ + 'id', + 'title_translated', + 'vintage_year', + 'award_type', + 'state', + ] + + class CarouselListSerializer(serializers.ModelSerializer): """Serializer for retrieving list of carousel items.""" @@ -202,4 +218,4 @@ class PageTypeBaseSerializer(serializers.ModelSerializer): fields = [ 'id', 'name', - ] \ No newline at end of file + ] diff --git a/apps/main/urls/back.py b/apps/main/urls/back.py new file mode 100644 index 00000000..93debb5e --- /dev/null +++ b/apps/main/urls/back.py @@ -0,0 +1,11 @@ +"""Back main URLs""" +from django.urls import path + +from main.views import back as views + +app_name = 'main' + +urlpatterns = [ + path('awards/', views.AwardLstView.as_view(), name='awards-list-create'), + path('awards//', views.AwardRUDView.as_view(), name='awards-rud'), +] diff --git a/apps/main/views/back.py b/apps/main/views/back.py new file mode 100644 index 00000000..bbbfad53 --- /dev/null +++ b/apps/main/views/back.py @@ -0,0 +1,21 @@ +from rest_framework import generics, permissions + +from main import serializers +from main.filters import AwardFilter +from main.models import Award + + +class AwardLstView(generics.ListCreateAPIView): + """Award list create view.""" + queryset = Award.objects.all() + serializer_class = serializers.BackAwardSerializer + permission_classes = (permissions.IsAdminUser,) + filterset_class = AwardFilter + + +class AwardRUDView(generics.RetrieveUpdateDestroyAPIView): + """Award RUD view.""" + queryset = Award.objects.all() + serializer_class = serializers.BackAwardSerializer + permission_classes = (permissions.IsAdminUser,) + lookup_field = 'id' diff --git a/apps/review/views/back.py b/apps/review/views/back.py index 5e38f7ab..c5d89e11 100644 --- a/apps/review/views/back.py +++ b/apps/review/views/back.py @@ -1,9 +1,8 @@ -from django_filters.rest_framework import DjangoFilterBackend from rest_framework import generics, permissions +from review import filters from review import models from review import serializers -from review import filters from utils.permissions import IsReviewerManager, IsRestaurantReviewer @@ -12,7 +11,6 @@ class ReviewLstView(generics.ListCreateAPIView): serializer_class = serializers.ReviewBaseSerializer queryset = models.Review.objects.all() permission_classes = [permissions.IsAuthenticatedOrReadOnly, ] - filter_backends = (DjangoFilterBackend,) filterset_class = filters.ReviewFilter diff --git a/project/urls/back.py b/project/urls/back.py index 04af4a53..fdd3d10a 100644 --- a/project/urls/back.py +++ b/project/urls/back.py @@ -15,5 +15,5 @@ urlpatterns = [ path('products/', include(('product.urls.back', 'product'), namespace='product')), path('re_blocks/', include(('advertisement.urls.back', 'advertisement'), namespace='advertisement')), + path('main/', include('main.urls.back')), ] -