Add schedule to establishment list serializer
This commit is contained in:
parent
521d7f19f3
commit
57a4498ba1
|
|
@ -111,6 +111,19 @@ class EstablishmentQuerySet(models.QuerySet):
|
|||
return self.select_related('address', 'establishment_type').\
|
||||
prefetch_related('tags')
|
||||
|
||||
def with_schedule(self):
|
||||
"""Return qs with related schedule."""
|
||||
return self.prefetch_related('schedule')
|
||||
|
||||
def with_currency_related(self):
|
||||
"""Return qs with related """
|
||||
return self.prefetch_related('currency')
|
||||
|
||||
def with_extended_address_related(self):
|
||||
"""Return qs with deeply related address models."""
|
||||
return self.select_related('address__city', 'address__city__region', 'address__city__region__country',
|
||||
'address__city__country')
|
||||
|
||||
def with_extended_related(self):
|
||||
return self.select_related('establishment_type').\
|
||||
prefetch_related('establishment_subtypes', 'awards', 'schedule',
|
||||
|
|
|
|||
|
|
@ -225,15 +225,18 @@ class EstablishmentBaseSerializer(ProjectModelSerializer):
|
|||
'currency'
|
||||
]
|
||||
|
||||
class EstablishmentAddressExtendedSerializer(EstablishmentBaseSerializer):
|
||||
class EstablishmentListRetrieveSerializer(EstablishmentBaseSerializer):
|
||||
"""Establishment with city serializer."""
|
||||
|
||||
address = AddressDetailSerializer()
|
||||
schedule = ScheduleRUDSerializer(many=True, allow_null=True)
|
||||
|
||||
class Meta(EstablishmentBaseSerializer.Meta):
|
||||
"""Meta class."""
|
||||
|
||||
fields = EstablishmentBaseSerializer.Meta.fields
|
||||
fields = EstablishmentBaseSerializer.Meta.fields + [
|
||||
'schedule',
|
||||
]
|
||||
|
||||
|
||||
class EstablishmentGeoSerializer(EstablishmentBaseSerializer):
|
||||
|
|
|
|||
|
|
@ -32,7 +32,11 @@ class EstablishmentListView(EstablishmentMixinView, generics.ListAPIView):
|
|||
"""Resource for getting a list of establishments."""
|
||||
|
||||
filter_class = filters.EstablishmentFilter
|
||||
serializer_class = serializers.EstablishmentAddressExtendedSerializer
|
||||
serializer_class = serializers.EstablishmentListRetrieveSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
return super().get_queryset().with_schedule()\
|
||||
.with_extended_address_related().with_currency_related()
|
||||
|
||||
|
||||
class EstablishmentRetrieveView(EstablishmentMixinView, generics.RetrieveAPIView):
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user