Review fixes

This commit is contained in:
Kuroshini 2019-09-30 16:40:46 +03:00
parent beb031d0b6
commit 33478580aa
4 changed files with 16 additions and 20 deletions

View File

@ -14,10 +14,8 @@ from django.utils.translation import gettext_lazy as _
from phonenumber_field.modelfields import PhoneNumberField from phonenumber_field.modelfields import PhoneNumberField
from collection.models import Collection from collection.models import Collection
from main.models import MetaDataContent from main.models import Award, MetaDataContent
from location.models import Address from location.models import Address
from collection.models import Collection
from main.models import Award
from review.models import Review from review.models import Review
from utils.models import (ProjectBaseMixin, TJSONField, URLImageMixin, from utils.models import (ProjectBaseMixin, TJSONField, URLImageMixin,
TranslatedFieldsMixin, BaseAttributes) TranslatedFieldsMixin, BaseAttributes)
@ -335,9 +333,9 @@ class Establishment(ProjectBaseMixin, URLImageMixin, TranslatedFieldsMixin):
@property @property
def vintage_year(self): def vintage_year(self):
review_qs = self.reviews.by_status(Review.READY) last_review = self.reviews.by_status(Review.READY).last()
if review_qs.exists(): if last_review:
return review_qs.last().vintage return last_review.vintage
@property @property
def best_price_menu(self): def best_price_menu(self):
@ -367,10 +365,8 @@ class Establishment(ProjectBaseMixin, URLImageMixin, TranslatedFieldsMixin):
@property @property
def the_most_recent_award(self): def the_most_recent_award(self):
awards = Award.objects.filter(Q(establishment=self) | Q(employees__establishments=self)) return Award.objects.filter(Q(establishment=self) | Q(employees__establishments=self)).latest(
if awards: field_name='vintage_year')
return awards.latest(field_name='vintage_year')
return {}
class Position(BaseAttributes, TranslatedFieldsMixin): class Position(BaseAttributes, TranslatedFieldsMixin):

View File

@ -198,8 +198,8 @@ class EstablishmentDetailSerializer(EstablishmentListSerializer):
menu = MenuSerializers(source='menu_set', many=True, read_only=True) menu = MenuSerializers(source='menu_set', many=True, read_only=True)
best_price_menu = serializers.DecimalField(max_digits=14, decimal_places=2, read_only=True) best_price_menu = serializers.DecimalField(max_digits=14, decimal_places=2, read_only=True)
best_price_carte = serializers.DecimalField(max_digits=14, decimal_places=2, read_only=True) best_price_carte = serializers.DecimalField(max_digits=14, decimal_places=2, read_only=True)
vintage_year = serializers.ReadOnlyField() vintage_year = serializers.ReadOnlyField()
class Meta(EstablishmentListSerializer.Meta): class Meta(EstablishmentListSerializer.Meta):
"""Meta class.""" """Meta class."""

View File

@ -318,9 +318,9 @@ class Carousel(models.Model):
@property @property
def vintage_year(self): def vintage_year(self):
if hasattr(self.content_object, 'reviews'): if hasattr(self.content_object, 'reviews'):
review_qs = self.content_object.reviews.by_status(Review.READY) last_review = self.content_object.reviews.by_status(Review.READY).last()
if review_qs.exists(): if last_review:
return review_qs.last().vintage return last_review.vintage
@property @property
def toque_number(self): def toque_number(self):
@ -342,6 +342,11 @@ class Carousel(models.Model):
if hasattr(self.content_object, 'slug'): if hasattr(self.content_object, 'slug'):
return self.content_object.slug return self.content_object.slug
@property
def the_most_recent_award(self):
if hasattr(self.content_object, 'the_most_recent_award'):
return self.content_object.the_most_recent_award
@property @property
def model_name(self): def model_name(self):
return self.content_object.__class__.__name__ return self.content_object.__class__.__name__

View File

@ -142,7 +142,7 @@ class CarouselListSerializer(serializers.ModelSerializer):
image = serializers.URLField(source='image_url') image = serializers.URLField(source='image_url')
awards = AwardBaseSerializer(many=True) awards = AwardBaseSerializer(many=True)
vintage_year = serializers.IntegerField() vintage_year = serializers.IntegerField()
last_award = serializers.SerializerMethodField() last_award = AwardBaseSerializer(source='the_most_recent_award', allow_null=True)
class Meta: class Meta:
"""Meta class.""" """Meta class."""
@ -160,11 +160,6 @@ class CarouselListSerializer(serializers.ModelSerializer):
'slug', 'slug',
] ]
def get_last_award(self, obj):
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()