Latest award for carousel
This commit is contained in:
parent
9aafe0d69d
commit
d42bf43d19
|
|
@ -191,11 +191,6 @@ class EstablishmentQuerySet(models.QuerySet):
|
||||||
return self.filter(id__in=subquery_filter_by_distance) \
|
return self.filter(id__in=subquery_filter_by_distance) \
|
||||||
.order_by('-reviews__published_at')
|
.order_by('-reviews__published_at')
|
||||||
|
|
||||||
def the_most_recent_award(self):
|
|
||||||
""" Returns the most recent award for carousel """
|
|
||||||
return Award.objects.filter(Q(establishment=self) | Q(employees__establishments=self)).latest(
|
|
||||||
field_name='vintage_year')
|
|
||||||
|
|
||||||
def prefetch_actual_employees(self):
|
def prefetch_actual_employees(self):
|
||||||
"""Prefetch actual employees."""
|
"""Prefetch actual employees."""
|
||||||
return self.prefetch_related(
|
return self.prefetch_related(
|
||||||
|
|
@ -363,6 +358,13 @@ class Establishment(ProjectBaseMixin, URLImageMixin, TranslatedFieldsMixin):
|
||||||
"""
|
"""
|
||||||
return self.address.coordinates
|
return self.address.coordinates
|
||||||
|
|
||||||
|
@property
|
||||||
|
def the_most_recent_award(self):
|
||||||
|
awards = Award.objects.filter(Q(establishment=self) | Q(employees__establishments=self))
|
||||||
|
if awards:
|
||||||
|
return awards.latest(field_name='vintage_year')
|
||||||
|
return {}
|
||||||
|
|
||||||
|
|
||||||
class Position(BaseAttributes, TranslatedFieldsMixin):
|
class Position(BaseAttributes, TranslatedFieldsMixin):
|
||||||
"""Position model."""
|
"""Position model."""
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ from rest_framework import serializers
|
||||||
from advertisement.serializers.web import AdvertisementSerializer
|
from advertisement.serializers.web import AdvertisementSerializer
|
||||||
from location.serializers import CountrySerializer
|
from location.serializers import CountrySerializer
|
||||||
from main import models
|
from main import models
|
||||||
|
from establishment.models import Establishment
|
||||||
from utils.serializers import TranslatedField
|
from utils.serializers import TranslatedField
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -159,7 +160,10 @@ class CarouselListSerializer(serializers.ModelSerializer):
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_last_award(self, obj):
|
def get_last_award(self, obj):
|
||||||
return obj.the_most_recent_award()
|
if isinstance(obj.content_object, Establishment):
|
||||||
|
award = obj.content_object.the_most_recent_award
|
||||||
|
return AwardBaseSerializer().to_representation(award) if award else None
|
||||||
|
return None
|
||||||
|
|
||||||
class PageSerializer(serializers.ModelSerializer):
|
class PageSerializer(serializers.ModelSerializer):
|
||||||
page_name = serializers.CharField()
|
page_name = serializers.CharField()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user