jira-15 top leadership API

This commit is contained in:
jain
2023-07-09 19:25:59 +05:30
parent 1b60d4344e
commit 3098de36b8
2 changed files with 15 additions and 2 deletions

View File

@ -183,10 +183,16 @@ class TaskDetailsSerializer(serializers.ModelSerializer):
class TopJuniorSerializer(serializers.ModelSerializer): class TopJuniorSerializer(serializers.ModelSerializer):
junior = JuniorDetailSerializer() junior = JuniorDetailSerializer()
position = serializers.SerializerMethodField()
class Meta: class Meta:
model = JuniorPoints model = JuniorPoints
fields = ['id', 'junior', 'total_task_points', 'created_at', 'updated_at'] fields = ['id', 'junior', 'total_task_points', 'position', 'created_at', 'updated_at']
def get_position(self, obj):
queryset = self.context['view'].get_queryset()
position = list(queryset).index(obj) + 1
return position
class GuardianProfileSerializer(serializers.ModelSerializer): class GuardianProfileSerializer(serializers.ModelSerializer):

View File

@ -143,11 +143,18 @@ class SearchTaskListAPIView(viewsets.ModelViewSet):
class TopJuniorListAPIView(viewsets.ModelViewSet): class TopJuniorListAPIView(viewsets.ModelViewSet):
"""Top juniors list""" """Top juniors list"""
serializer_class = TopJuniorSerializer serializer_class = TopJuniorSerializer
permission_classes = [IsAuthenticated] # permission_classes = [IsAuthenticated]
queryset = JuniorPoints.objects.all() queryset = JuniorPoints.objects.all()
def get_serializer_context(self):
context = super().get_serializer_context()
context.update({'view': self})
return context
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
"""fetch junior list those complete their task""" """fetch junior list those complete their task"""
junior_total_points = self.get_queryset().order_by('-total_task_points') junior_total_points = self.get_queryset().order_by('-total_task_points')
serializer = self.get_serializer(junior_total_points, many=True) serializer = self.get_serializer(junior_total_points, many=True)
return custom_response(serializer.data, response_status=status.HTTP_200_OK) return custom_response(serializer.data, response_status=status.HTTP_200_OK)