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')
|
fields = ('id', 'name', 'position_translated', 'awards')
|
||||||
|
|
||||||
|
|
||||||
class EstablishmentSerializer(serializers.ModelSerializer):
|
class EstablishmentListSerializer(serializers.ModelSerializer):
|
||||||
"""Serializer for Establishment model."""
|
"""Serializer for Establishment model."""
|
||||||
|
|
||||||
name_translated = serializers.CharField(allow_null=True)
|
name_translated = serializers.CharField(allow_null=True)
|
||||||
description_translated = serializers.CharField(allow_null=True)
|
|
||||||
type = EstablishmentTypeSerializer(source='establishment_type')
|
type = EstablishmentTypeSerializer(source='establishment_type')
|
||||||
subtypes = EstablishmentSubTypeSerializer(many=True)
|
subtypes = EstablishmentSubTypeSerializer(many=True)
|
||||||
address = AddressSerializer()
|
address = AddressSerializer()
|
||||||
tags = MetaDataContentSerializer(many=True)
|
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)
|
awards = AwardSerializer(many=True)
|
||||||
schedule = EstablishmentScheduleSerializer(source='schedule.schedule',
|
schedule = EstablishmentScheduleSerializer(source='schedule.schedule',
|
||||||
many=True,
|
many=True,
|
||||||
|
|
@ -151,20 +178,10 @@ class EstablishmentSerializer(serializers.ModelSerializer):
|
||||||
"""Meta class."""
|
"""Meta class."""
|
||||||
|
|
||||||
model = models.Establishment
|
model = models.Establishment
|
||||||
fields = (
|
fields = EstablishmentListSerializer.Meta.fields + (
|
||||||
'id',
|
|
||||||
'name_translated',
|
|
||||||
'description_translated',
|
'description_translated',
|
||||||
'public_mark',
|
|
||||||
'price_level',
|
'price_level',
|
||||||
'toque_number',
|
|
||||||
'price_level',
|
|
||||||
'type',
|
|
||||||
'subtypes',
|
|
||||||
'image',
|
'image',
|
||||||
'preview_image',
|
|
||||||
'address',
|
|
||||||
'tags',
|
|
||||||
'awards',
|
'awards',
|
||||||
'schedule',
|
'schedule',
|
||||||
'website',
|
'website',
|
||||||
|
|
@ -189,11 +206,6 @@ class EstablishmentSerializer(serializers.ModelSerializer):
|
||||||
context={'request': self.context.get('request')},
|
context={'request': self.context.get('request')},
|
||||||
many=True).data
|
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):
|
def get_review(self, obj):
|
||||||
"""Serializer method for getting last published review"""
|
"""Serializer method for getting last published review"""
|
||||||
return ReviewSerializer(obj.reviews.by_status(status=review_models.Review.READY)
|
return ReviewSerializer(obj.reviews.by_status(status=review_models.Review.READY)
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ class EstablishmentMixin:
|
||||||
"""Establishment mixin."""
|
"""Establishment mixin."""
|
||||||
|
|
||||||
permission_classes = (permissions.AllowAny,)
|
permission_classes = (permissions.AllowAny,)
|
||||||
serializer_class = serializers.EstablishmentSerializer
|
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
"""Overrided method 'get_queryset'."""
|
"""Overrided method 'get_queryset'."""
|
||||||
|
|
@ -19,7 +18,7 @@ class EstablishmentMixin:
|
||||||
|
|
||||||
class EstablishmentListView(EstablishmentMixin, JWTGenericViewMixin, generics.ListAPIView):
|
class EstablishmentListView(EstablishmentMixin, JWTGenericViewMixin, generics.ListAPIView):
|
||||||
"""Resource for getting a list of establishments."""
|
"""Resource for getting a list of establishments."""
|
||||||
|
serializer_class = serializers.EstablishmentListSerializer
|
||||||
filter_class = filters.EstablishmentFilter
|
filter_class = filters.EstablishmentFilter
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
|
|
@ -30,6 +29,7 @@ class EstablishmentListView(EstablishmentMixin, JWTGenericViewMixin, generics.Li
|
||||||
|
|
||||||
class EstablishmentRetrieveView(EstablishmentMixin, JWTGenericViewMixin, generics.RetrieveAPIView):
|
class EstablishmentRetrieveView(EstablishmentMixin, JWTGenericViewMixin, generics.RetrieveAPIView):
|
||||||
"""Resource for getting a establishment."""
|
"""Resource for getting a establishment."""
|
||||||
|
serializer_class = serializers.EstablishmentDetailSerializer
|
||||||
|
|
||||||
|
|
||||||
class EstablishmentTypeListView(JWTGenericViewMixin, generics.ListAPIView):
|
class EstablishmentTypeListView(JWTGenericViewMixin, generics.ListAPIView):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user