reviews or bo list

This commit is contained in:
Kuroshini 2020-02-07 14:25:50 +03:00
parent e4547b9554
commit 9084fbeab6
3 changed files with 13 additions and 2 deletions

View File

@ -137,6 +137,14 @@ class EstablishmentQuerySet(models.QuerySet):
"""Return qs with related reviews."""
return self.prefetch_related('reviews')
def with_reviews_sorted(self):
return self.prefetch_related(
Prefetch(
'reviews',
queryset=Review.objects.published().order_by('-published_at'),
)
)
def with_currency_related(self):
"""Return qs with related """
return self.prefetch_related('currency')

View File

@ -14,6 +14,7 @@ from collection.models import Guide
from establishment import models, serializers as model_serializers
from establishment.models import ContactEmail, ContactPhone, EstablishmentEmployee
from establishment.serializers.common import ContactPhonesSerializer
from review.serializers.common import ReviewBaseSerializer
from gallery.models import Image
from location.serializers import AddressDetailSerializer, TranslatedField, AddressBaseSerializer, \
AddressEstablishmentSerializer
@ -92,7 +93,7 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
)
subtypes = model_serializers.EstablishmentSubTypeBaseSerializer(source='establishment_subtypes',
read_only=True, many=True)
reviews = ReviewBaseSerializer(allow_null=True, read_only=True, many=True)
restaurant_category = TagBaseSerializer(read_only=True, many=True, allow_null=True)
restaurant_cuisine = TagBaseSerializer(read_only=True, many=True, allow_null=True)
artisan_category = TagBaseSerializer(read_only=True, many=True, allow_null=True)
@ -137,6 +138,7 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
'artisan_category',
'distillery_type',
'food_producer',
'reviews',
]
def to_representation(self, instance):

View File

@ -65,7 +65,8 @@ class EstablishmentListCreateView(EstablishmentMixinViews, generics.ListCreateAP
.with_certain_tag_category_related('cuisine', 'restaurant_cuisine') \
.with_certain_tag_category_related('shop_category', 'artisan_category') \
.with_certain_tag_category_related('distillery_type', 'distillery_type') \
.with_certain_tag_category_related('producer_type', 'food_producer')
.with_certain_tag_category_related('producer_type', 'food_producer') \
.with_reviews_sorted()
class EmployeeEstablishmentPositionsView(generics.ListAPIView):