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) allow_null=True)
phones = ContactPhonesSerializer(read_only=True, many=True, ) phones = ContactPhonesSerializer(read_only=True, many=True, )
emails = ContactEmailsSerializer(read_only=True, many=True, ) emails = ContactEmailsSerializer(read_only=True, many=True, )
reviews = ReviewSerializer(source='reviews.last', allow_null=True) review = serializers.SerializerMethodField()
# comments = CommentSerializer(many=True, allow_null=True)
comments = serializers.SerializerMethodField() comments = serializers.SerializerMethodField()
employees = EstablishmentEmployeeSerializer(source='actual_establishment_employees', employees = EstablishmentEmployeeSerializer(source='actual_establishment_employees',
many=True) many=True)
@ -175,7 +174,7 @@ class EstablishmentSerializer(serializers.ModelSerializer):
'booking', 'booking',
'phones', 'phones',
'emails', 'emails',
'reviews', 'review',
'comments', 'comments',
'employees', 'employees',
'menu', 'menu',
@ -196,3 +195,8 @@ class EstablishmentSerializer(serializers.ModelSerializer):
"""Get preview image""" """Get preview image"""
return obj.get_full_image_url(request=self.context.get('request'), return obj.get_full_image_url(request=self.context.get('request'),
thumbnail_key='establishment_preview') 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.""" """Establishment app views."""
from rest_framework import generics, permissions from rest_framework import generics, permissions
from establishment import filters
from establishment import models, serializers from establishment import models, serializers
from utils.views import JWTGenericViewMixin from utils.views import JWTGenericViewMixin
from establishment import filters
class EstablishmentMixin: class EstablishmentMixin:
@ -13,7 +14,6 @@ class EstablishmentMixin:
def get_queryset(self): def get_queryset(self):
"""Overrided method 'get_queryset'.""" """Overrided method 'get_queryset'."""
# todo: update ordering (last review)
return models.Establishment.objects.all().prefetch_actual_employees() return models.Establishment.objects.all().prefetch_actual_employees()

View File

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