GM-73 added ordering
This commit is contained in:
parent
75f75ba3fd
commit
69f1a5cf48
|
|
@ -129,7 +129,7 @@ class EstablishmentQuerySet(models.QuerySet):
|
||||||
then=10
|
then=10
|
||||||
),
|
),
|
||||||
default='public_mark',
|
default='public_mark',
|
||||||
output_field=models.PositiveSmallIntegerField()))
|
output_field=models.FloatField()))
|
||||||
|
|
||||||
def annotate_additional_mark(self, public_mark: float):
|
def annotate_additional_mark(self, public_mark: float):
|
||||||
"""
|
"""
|
||||||
|
|
@ -159,10 +159,12 @@ class EstablishmentQuerySet(models.QuerySet):
|
||||||
Required fields: distance_mark, additional_mark.
|
Required fields: distance_mark, additional_mark.
|
||||||
Fields
|
Fields
|
||||||
Description:
|
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') +
|
return self.annotate(
|
||||||
models.F('additional_mark'))
|
total_mark=(models.F('distance_mark') + models.F('additional_mark')) *
|
||||||
|
models.F('intermediate_public_mark'))
|
||||||
|
|
||||||
def similar(self, establishment_pk: int):
|
def similar(self, establishment_pk: int):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ from utils.views import JWTGenericViewMixin
|
||||||
from establishment.views import EstablishmentMixin
|
from establishment.views import EstablishmentMixin
|
||||||
|
|
||||||
|
|
||||||
class EstablishmentListView(EstablishmentMixin, JWTGenericViewMixin, generics.ListAPIView):
|
class EstablishmentListView(EstablishmentMixin, generics.ListAPIView):
|
||||||
"""Resource for getting a list of establishments."""
|
"""Resource for getting a list of establishments."""
|
||||||
serializer_class = serializers.EstablishmentListSerializer
|
serializer_class = serializers.EstablishmentListSerializer
|
||||||
filter_class = filters.EstablishmentFilter
|
filter_class = filters.EstablishmentFilter
|
||||||
|
|
@ -29,9 +29,9 @@ class EstablishmentSimilarListView(EstablishmentListView):
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
"""Override get_queryset method"""
|
"""Override get_queryset method"""
|
||||||
qs = super(EstablishmentListView, self).get_queryset()
|
qs = super().get_queryset()
|
||||||
return qs.similar(establishment_pk=self.kwargs.get('pk'))\
|
return qs.similar(establishment_pk=self.kwargs.get('pk'))\
|
||||||
.order_by('?')[:13]
|
.order_by('-total_mark')[:13]
|
||||||
|
|
||||||
|
|
||||||
class EstablishmentRetrieveView(EstablishmentMixin, JWTGenericViewMixin, generics.RetrieveAPIView):
|
class EstablishmentRetrieveView(EstablishmentMixin, JWTGenericViewMixin, generics.RetrieveAPIView):
|
||||||
|
|
|
||||||
|
|
@ -32,4 +32,4 @@ ELASTICSEARCH_INDEX_NAMES = {
|
||||||
sentry_sdk.init(
|
sentry_sdk.init(
|
||||||
dsn="https://35d9bb789677410ab84a822831c6314f@sentry.io/1729093",
|
dsn="https://35d9bb789677410ab84a822831c6314f@sentry.io/1729093",
|
||||||
integrations=[DjangoIntegration()]
|
integrations=[DjangoIntegration()]
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user