From 04c6948539b24565184b5795c9fafc3ce3b5e4d2 Mon Sep 17 00:00:00 2001 From: Anatoly Date: Tue, 4 Feb 2020 11:36:46 +0300 Subject: [PATCH] added endpoint /api/back/collections/guides/all/, revert pagination in /api/back/collections/guides/ --- apps/authorization/views/common.py | 15 ++++++++++++++- apps/collection/serializers/common.py | 11 +++++++++++ apps/collection/urls/back.py | 4 +++- apps/collection/views/back.py | 18 ++++++++++++++++-- 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/apps/authorization/views/common.py b/apps/authorization/views/common.py index 8b466acb..ada56ea3 100644 --- a/apps/authorization/views/common.py +++ b/apps/authorization/views/common.py @@ -180,7 +180,20 @@ class LoginByUsernameOrEmailView(JWTGenericViewMixin, generics.GenericAPIView): serializer_class = serializers.LoginByUsernameOrEmailSerializer def post(self, request, *args, **kwargs): - """Implement POST method""" + """ + #Login view. + *** + ##Available HTTP methods: POST + POST-request data: + ``` + { + "username_or_email": , + "password": , + "remember": , + "source": # 0 - Mobile, 1 - Web, 2 - All (by default used: 1) + } + ``` + """ serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) diff --git a/apps/collection/serializers/common.py b/apps/collection/serializers/common.py index 5e89b2b8..3397e5ee 100644 --- a/apps/collection/serializers/common.py +++ b/apps/collection/serializers/common.py @@ -160,6 +160,17 @@ class GuideBaseSerializer(serializers.ModelSerializer): return super(GuideBaseSerializer, self).create(validated_data) +class GuideShortSerializer(serializers.ModelSerializer): + """Serializer for model Guide.""" + + class Meta(GuideBaseSerializer.Meta): + """Meta-class.""" + fields = [ + 'id', + 'name', + ] + + class GuideElementBaseSerializer(serializers.ModelSerializer): """Serializer for model GuideElement.""" establishment_detail = EstablishmentGuideElementSerializer(read_only=True, diff --git a/apps/collection/urls/back.py b/apps/collection/urls/back.py index 6551fdf1..7895c2fd 100644 --- a/apps/collection/urls/back.py +++ b/apps/collection/urls/back.py @@ -1,6 +1,6 @@ """Collection common urlpaths.""" -from rest_framework.routers import SimpleRouter from django.urls import path +from rest_framework.routers import SimpleRouter from collection.views import back as views @@ -12,6 +12,8 @@ router.register(r'collections', views.CollectionBackOfficeViewSet) urlpatterns = [ path('guides/', views.GuideListCreateView.as_view(), name='guide-list-create'), + path('guides/all/', views.GuideListView.as_view(), + name='guide-list'), path('guides//', views.GuideElementListView.as_view(), name='guide-element-list'), path('guides//regenerate/', views.GuideUpdateView.as_view(), diff --git a/apps/collection/views/back.py b/apps/collection/views/back.py index ff888fb7..53b9bafd 100644 --- a/apps/collection/views/back.py +++ b/apps/collection/views/back.py @@ -33,7 +33,7 @@ class GuideBaseView(generics.GenericAPIView): queryset = models.Guide.objects.with_base_related if hasattr(self.request, 'country_code'): return queryset().by_country_code(self.request.country_code).order_by('-created') - return queryset().order_by('-created') + return queryset().none() class GuideFilterBaseView(generics.GenericAPIView): @@ -104,7 +104,6 @@ class GuideListCreateView(GuideBaseView, generics.ListCreateAPIView): """View for Guides list for BackOffice users and Guide create.""" filter_class = filters.GuideFilterSet - pagination_class = None def create(self, request, *args, **kwargs): """Overridden create method.""" @@ -112,6 +111,21 @@ class GuideListCreateView(GuideBaseView, return Response(status=status.HTTP_201_CREATED) +class GuideListView(generics.ListAPIView): + """View for Guides list.""" + pagination_class = None + serializer_class = serializers.GuideShortSerializer + + def get_queryset(self): + """An overridden get_queryset method.""" + if hasattr(self.request, 'country_code'): + return ( + models.Guide.objects.by_country_code(self.request.country_code) + .order_by('-created') + ) + return models.Guide.objects.none() + + class GuideBackOfficeList(BindObjectMixin, GuideBaseView): """ViewSet for Guides list for BackOffice users""" pagination_class = None