Merge branch 'develop' of ssh://gl.id-east.ru:222/gm/gm-backend into develop

This commit is contained in:
Dmitriy Kuzmenko 2019-09-17 17:16:48 +03:00
commit ccc1660e1f
3 changed files with 10 additions and 8 deletions

View File

@ -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):
""" """

View File

@ -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):