diff --git a/junior/serializers.py b/junior/serializers.py index 33210d8..96f5fb6 100644 --- a/junior/serializers.py +++ b/junior/serializers.py @@ -171,6 +171,7 @@ class JuniorDetailListSerializer(serializers.ModelSerializer): rejected_task = serializers.SerializerMethodField('get_rejected_task') pending_task = serializers.SerializerMethodField('get_pending_task') position = serializers.SerializerMethodField('get_position') + guardian_code_status = serializers.SerializerMethodField('get_guardian_code_status') def get_auth(self, obj): @@ -215,6 +216,13 @@ class JuniorDetailListSerializer(serializers.ModelSerializer): def get_pending_task(self, obj): data = JuniorTask.objects.filter(junior=obj, task_status=PENDING).count() return data + + def get_guardian_code_status(self, obj): + if self.context['guardian_code'] in obj.guardian_code: + index = obj.guardian_code.index(self.context['guardian_code']) + if obj.guardian_code_status: + data = obj.guardian_code_status[index] + return data class Meta(object): """Meta info""" model = Junior diff --git a/junior/views.py b/junior/views.py index 37c4e01..7a95335 100644 --- a/junior/views.py +++ b/junior/views.py @@ -152,7 +152,8 @@ class JuniorListAPIView(viewsets.ModelViewSet): queryset = self.get_queryset() queryset = queryset.filter(guardian_code__icontains=str(guardian_data.guardian_code)) # use JuniorDetailListSerializer serializer - serializer = JuniorDetailListSerializer(queryset, many=True) + serializer = JuniorDetailListSerializer(queryset, context={"guardian_code": + guardian_data.guardian_code}, many=True) return custom_response(None, serializer.data, response_status=status.HTTP_200_OK) return custom_error_response(ERROR_CODE['2045'], response_status=status.HTTP_200_OK) except Exception as e: