From 62358ae2e823fe03a2e24bab0a4db50be6089581 Mon Sep 17 00:00:00 2001 From: Ihsan Ullah Date: Sat, 10 Feb 2024 12:06:51 +0500 Subject: [PATCH 1/2] public competitions page error fixed --- src/apps/api/serializers/queues.py | 31 ++++++++++++++++++++++++++++++ src/apps/api/views/queues.py | 4 ++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/apps/api/serializers/queues.py b/src/apps/api/serializers/queues.py index 3614b61a2..8b7e70090 100644 --- a/src/apps/api/serializers/queues.py +++ b/src/apps/api/serializers/queues.py @@ -61,6 +61,37 @@ class QueueSerializer(QueueOwnerMixin, serializers.ModelSerializer): is_owner = serializers.SerializerMethodField() owner = serializers.CharField(source='owner.username', read_only=True) organizers = OrganizerSerializer(many=True, read_only=True) + + class Meta: + model = Queue + fields = ( + 'name', + 'vhost', + 'is_public', + 'owner', + 'organizers', + 'broker_url', + 'created_when', + 'is_owner', + 'id', + ) + # This serializer is read only, basically.. + read_only_fields = ( + 'name', + 'vhost', + 'is_public', + 'owner', + 'organizers', + 'broker_url', + 'created_when', + 'is_owner', + ) + + +class QueueListSerializer(QueueOwnerMixin, serializers.ModelSerializer): + is_owner = serializers.SerializerMethodField() + owner = serializers.CharField(source='owner.username', read_only=True) + organizers = OrganizerSerializer(many=True, read_only=True) competitions = serializers.SerializerMethodField() class Meta: diff --git a/src/apps/api/views/queues.py b/src/apps/api/views/queues.py index db96188c6..23e486e85 100644 --- a/src/apps/api/views/queues.py +++ b/src/apps/api/views/queues.py @@ -13,7 +13,7 @@ class QueueViewSet(ModelViewSet): queryset = Queue.objects.all() - serializer_class = serializers.QueueSerializer + serializer_class = serializers.QueueListSerializer filter_fields = ('owner', 'is_public', 'name') filter_backends = (DjangoFilterBackend, SearchFilter) search_fields = ('name',) @@ -29,7 +29,7 @@ def get_queryset(self): def get_serializer_class(self): if self.request.method == 'GET': - return serializers.QueueSerializer + return serializers.QueueListSerializer else: return serializers.QueueCreationSerializer From 8f060153e60dbb916faac8e8c22767bf83e2c972 Mon Sep 17 00:00:00 2001 From: Ihsan Ullah Date: Sat, 10 Feb 2024 19:38:15 +0500 Subject: [PATCH 2/2] code simplified --- src/apps/api/serializers/queues.py | 33 +++--------------------------- 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/src/apps/api/serializers/queues.py b/src/apps/api/serializers/queues.py index 8b7e70090..b3d84aee6 100644 --- a/src/apps/api/serializers/queues.py +++ b/src/apps/api/serializers/queues.py @@ -88,38 +88,11 @@ class Meta: ) -class QueueListSerializer(QueueOwnerMixin, serializers.ModelSerializer): - is_owner = serializers.SerializerMethodField() - owner = serializers.CharField(source='owner.username', read_only=True) - organizers = OrganizerSerializer(many=True, read_only=True) +class QueueListSerializer(QueueSerializer): competitions = serializers.SerializerMethodField() - class Meta: - model = Queue - fields = ( - 'name', - 'vhost', - 'is_public', - 'owner', - 'organizers', - 'broker_url', - 'created_when', - 'is_owner', - 'id', - 'competitions', - ) - # This serializer is read only, basically.. - read_only_fields = ( - 'name', - 'vhost', - 'is_public', - 'owner', - 'organizers', - 'broker_url', - 'created_when', - 'is_owner', - 'competitions', - ) + class Meta(QueueSerializer.Meta): + fields = QueueSerializer.Meta.fields + ('competitions',) def get_competitions(self, obj): # get user from the context request