fixed return in establishment serializer last published review

This commit is contained in:
Anatoly 2019-09-05 09:54:43 +03:00
parent 605c81b33c
commit c6cbb9bd36
3 changed files with 13 additions and 5 deletions

View File

@ -137,8 +137,7 @@ class EstablishmentSerializer(serializers.ModelSerializer):
allow_null=True)
phones = ContactPhonesSerializer(read_only=True, many=True, )
emails = ContactEmailsSerializer(read_only=True, many=True, )
reviews = ReviewSerializer(source='reviews.last', allow_null=True)
# comments = CommentSerializer(many=True, allow_null=True)
review = serializers.SerializerMethodField()
comments = serializers.SerializerMethodField()
employees = EstablishmentEmployeeSerializer(source='actual_establishment_employees',
many=True)
@ -175,7 +174,7 @@ class EstablishmentSerializer(serializers.ModelSerializer):
'booking',
'phones',
'emails',
'reviews',
'review',
'comments',
'employees',
'menu',
@ -196,3 +195,8 @@ class EstablishmentSerializer(serializers.ModelSerializer):
"""Get preview image"""
return obj.get_full_image_url(request=self.context.get('request'),
thumbnail_key='establishment_preview')
def get_review(self, obj):
"""Serializer method for getting last published review"""
return ReviewSerializer(obj.reviews.by_status(status=review_models.Review.READY)
.order_by('-published_at').first()).data

View File

@ -1,8 +1,9 @@
"""Establishment app views."""
from rest_framework import generics, permissions
from establishment import filters
from establishment import models, serializers
from utils.views import JWTGenericViewMixin
from establishment import filters
class EstablishmentMixin:
@ -13,7 +14,6 @@ class EstablishmentMixin:
def get_queryset(self):
"""Overrided method 'get_queryset'."""
# todo: update ordering (last review)
return models.Establishment.objects.all().prefetch_actual_employees()

View File

@ -19,6 +19,10 @@ class ReviewQuerySet(models.QuerySet):
"""Return reviews by year"""
return self.filter(vintage=year)
def by_status(self, status):
"""Filter by status"""
return self.filter(status=status)
class Review(BaseAttributes, TranslatedFieldsMixin):
"""Review model"""