refactored establishment serializers
This commit is contained in:
parent
a133cfe1dd
commit
111e859f74
|
|
@ -122,15 +122,42 @@ class EstablishmentEmployeeSerializer(serializers.ModelSerializer):
|
|||
fields = ('id', 'name', 'position_translated', 'awards')
|
||||
|
||||
|
||||
class EstablishmentSerializer(serializers.ModelSerializer):
|
||||
class EstablishmentListSerializer(serializers.ModelSerializer):
|
||||
"""Serializer for Establishment model."""
|
||||
|
||||
name_translated = serializers.CharField(allow_null=True)
|
||||
description_translated = serializers.CharField(allow_null=True)
|
||||
type = EstablishmentTypeSerializer(source='establishment_type')
|
||||
subtypes = EstablishmentSubTypeSerializer(many=True)
|
||||
address = AddressSerializer()
|
||||
tags = MetaDataContentSerializer(many=True)
|
||||
preview_image = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
"""Meta class."""
|
||||
|
||||
model = models.Establishment
|
||||
fields = (
|
||||
'id',
|
||||
'name_translated',
|
||||
'price_level',
|
||||
'toque_number',
|
||||
'public_mark',
|
||||
'type',
|
||||
'subtypes',
|
||||
'preview_image',
|
||||
'address',
|
||||
'tags',
|
||||
)
|
||||
|
||||
def get_preview_image(self, obj):
|
||||
"""Get preview image"""
|
||||
return obj.get_full_image_url(request=self.context.get('request'),
|
||||
thumbnail_key='establishment_preview')
|
||||
|
||||
|
||||
class EstablishmentDetailSerializer(EstablishmentListSerializer):
|
||||
"""Serializer for Establishment model."""
|
||||
description_translated = serializers.CharField(allow_null=True)
|
||||
awards = AwardSerializer(many=True)
|
||||
schedule = EstablishmentScheduleSerializer(source='schedule.schedule',
|
||||
many=True,
|
||||
|
|
@ -151,20 +178,10 @@ class EstablishmentSerializer(serializers.ModelSerializer):
|
|||
"""Meta class."""
|
||||
|
||||
model = models.Establishment
|
||||
fields = (
|
||||
'id',
|
||||
'name_translated',
|
||||
fields = EstablishmentListSerializer.Meta.fields + (
|
||||
'description_translated',
|
||||
'public_mark',
|
||||
'price_level',
|
||||
'toque_number',
|
||||
'price_level',
|
||||
'type',
|
||||
'subtypes',
|
||||
'image',
|
||||
'preview_image',
|
||||
'address',
|
||||
'tags',
|
||||
'awards',
|
||||
'schedule',
|
||||
'website',
|
||||
|
|
@ -189,11 +206,6 @@ class EstablishmentSerializer(serializers.ModelSerializer):
|
|||
context={'request': self.context.get('request')},
|
||||
many=True).data
|
||||
|
||||
def get_preview_image(self, obj):
|
||||
"""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)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ class EstablishmentMixin:
|
|||
"""Establishment mixin."""
|
||||
|
||||
permission_classes = (permissions.AllowAny,)
|
||||
serializer_class = serializers.EstablishmentSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
"""Overrided method 'get_queryset'."""
|
||||
|
|
@ -19,7 +18,7 @@ class EstablishmentMixin:
|
|||
|
||||
class EstablishmentListView(EstablishmentMixin, JWTGenericViewMixin, generics.ListAPIView):
|
||||
"""Resource for getting a list of establishments."""
|
||||
|
||||
serializer_class = serializers.EstablishmentListSerializer
|
||||
filter_class = filters.EstablishmentFilter
|
||||
|
||||
def get_queryset(self):
|
||||
|
|
@ -30,6 +29,7 @@ class EstablishmentListView(EstablishmentMixin, JWTGenericViewMixin, generics.Li
|
|||
|
||||
class EstablishmentRetrieveView(EstablishmentMixin, JWTGenericViewMixin, generics.RetrieveAPIView):
|
||||
"""Resource for getting a establishment."""
|
||||
serializer_class = serializers.EstablishmentDetailSerializer
|
||||
|
||||
|
||||
class EstablishmentTypeListView(JWTGenericViewMixin, generics.ListAPIView):
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user