fixed return in establishment serializer last published review
This commit is contained in:
parent
605c81b33c
commit
c6cbb9bd36
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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"""
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user