mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-16 02:16:16 +00:00
leaderboard ranking
This commit is contained in:
@ -1,3 +1,53 @@
|
||||
"""
|
||||
web_admin analytics serializer file
|
||||
"""
|
||||
from rest_framework import serializers
|
||||
|
||||
from junior.models import JuniorPoints, Junior
|
||||
from web_admin.serializers.user_management_serializer import JuniorSerializer
|
||||
|
||||
|
||||
class JuniorLeaderboardSerializer(serializers.ModelSerializer):
|
||||
name = serializers.SerializerMethodField()
|
||||
first_name = serializers.SerializerMethodField()
|
||||
last_name = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
"""
|
||||
meta class
|
||||
"""
|
||||
model = Junior
|
||||
fields = ('id', 'name', 'first_name', 'last_name', 'is_active', 'image')
|
||||
|
||||
@staticmethod
|
||||
def get_name(obj):
|
||||
"""
|
||||
:param obj: junior object
|
||||
:return: full name
|
||||
"""
|
||||
return f"{obj.auth.first_name} {obj.auth.last_name}" if obj.auth.last_name else obj.auth.first_name
|
||||
|
||||
@staticmethod
|
||||
def get_first_name(obj):
|
||||
"""
|
||||
:param obj: junior object
|
||||
:return: first name
|
||||
"""
|
||||
return obj.auth.first_name
|
||||
|
||||
@staticmethod
|
||||
def get_last_name(obj):
|
||||
"""
|
||||
:param obj: junior object
|
||||
:return: last name
|
||||
"""
|
||||
return obj.auth.last_name
|
||||
|
||||
|
||||
class LeaderboardSerializer(serializers.ModelSerializer):
|
||||
junior = JuniorLeaderboardSerializer()
|
||||
rank = serializers.IntegerField()
|
||||
|
||||
class Meta:
|
||||
model = JuniorPoints
|
||||
fields = ('total_points', 'rank', 'junior')
|
||||
|
Reference in New Issue
Block a user