GM-73 added ordering

This commit is contained in:
Anatoly 2019-09-17 17:16:21 +03:00
parent 75f75ba3fd
commit 69f1a5cf48
3 changed files with 10 additions and 8 deletions

View File

@ -129,7 +129,7 @@ class EstablishmentQuerySet(models.QuerySet):
then=10
),
default='public_mark',
output_field=models.PositiveSmallIntegerField()))
output_field=models.FloatField()))
def annotate_additional_mark(self, public_mark: float):
"""
@ -159,10 +159,12 @@ class EstablishmentQuerySet(models.QuerySet):
Required fields: distance_mark, additional_mark.
Fields
Description:
Annotated field is obtained by adding the distance and additional marks.
Annotated field is obtained by formula:
(distance + additional marks) * intermediate_public_mark.
"""
return self.annotate(total_mark=models.F('distance_mark') +
models.F('additional_mark'))
return self.annotate(
total_mark=(models.F('distance_mark') + models.F('additional_mark')) *
models.F('intermediate_public_mark'))
def similar(self, establishment_pk: int):
"""

View File

@ -11,7 +11,7 @@ from utils.views import JWTGenericViewMixin
from establishment.views import EstablishmentMixin
class EstablishmentListView(EstablishmentMixin, JWTGenericViewMixin, generics.ListAPIView):
class EstablishmentListView(EstablishmentMixin, generics.ListAPIView):
"""Resource for getting a list of establishments."""
serializer_class = serializers.EstablishmentListSerializer
filter_class = filters.EstablishmentFilter
@ -29,9 +29,9 @@ class EstablishmentSimilarListView(EstablishmentListView):
def get_queryset(self):
"""Override get_queryset method"""
qs = super(EstablishmentListView, self).get_queryset()
qs = super().get_queryset()
return qs.similar(establishment_pk=self.kwargs.get('pk'))\
.order_by('?')[:13]
.order_by('-total_mark')[:13]
class EstablishmentRetrieveView(EstablishmentMixin, JWTGenericViewMixin, generics.RetrieveAPIView):