From 2c888d1c3ab415b1378efddefa4d35b471c3f8f7 Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Mon, 13 Jan 2020 11:16:02 +0300 Subject: [PATCH] default ordering for BO establishments search --- apps/search_indexes/serializers.py | 9 +++++++++ apps/search_indexes/views.py | 26 +++++++++++++++++++------- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/apps/search_indexes/serializers.py b/apps/search_indexes/serializers.py index be0d517d..a668ccf1 100644 --- a/apps/search_indexes/serializers.py +++ b/apps/search_indexes/serializers.py @@ -313,6 +313,15 @@ class EstablishmentDocumentSerializer(InFavoritesMixin, DocumentSerializer): ) +class EstablishmentBackOfficeDocumentSerializer(EstablishmentDocumentSerializer): + + class Meta(EstablishmentDocumentSerializer.Meta): + document = EstablishmentDocumentSerializer.Meta.document + fields = EstablishmentDocumentSerializer.Meta.fields + ( + 'created', + ) + + class ProductDocumentSerializer(InFavoritesMixin): """Product document serializer""" diff --git a/apps/search_indexes/views.py b/apps/search_indexes/views.py index fd896738..a3399fc1 100644 --- a/apps/search_indexes/views.py +++ b/apps/search_indexes/views.py @@ -1,5 +1,5 @@ """Search indexes app views.""" -from django_elasticsearch_dsl_drf import constants +from django_elasticsearch_dsl_drf import constants, pagination from django_elasticsearch_dsl_drf.filter_backends import ( FilteringFilterBackend, GeoSpatialOrderingFilterBackend, @@ -321,14 +321,26 @@ class EstablishmentDocumentViewSet(BaseDocumentViewSet): class EstablishmentBackOfficeViewSet(EstablishmentDocumentViewSet): - filter_backends = EstablishmentDocumentViewSet.filter_backends + [ - OrderingFilterBackend - ] + def get_queryset(self): + if not self.request.query_params.get('search'): + self.request.GET._mutable = True + self.request.query_params.update({ + 'ordering': '-created', + }) + self.request.GET._mutable = False + return super(EstablishmentBackOfficeViewSet, self).get_queryset() + serializer_class = serializers.EstablishmentBackOfficeDocumentSerializer + pagination_class = pagination.PageNumberPagination + filter_backends = [ + FilteringFilterBackend, + filters.CustomSearchFilterBackend, + filters.CustomGeoSpatialFilteringFilterBackend, + GeoSpatialOrderingFilterBackend, + OrderingFilterBackend, + ] ordering_fields = { - 'created': { - 'field': 'created' - } + 'created': 'created', }