use user limit instead of accpeted_number
This commit is contained in:
@@ -376,18 +376,21 @@ class SessionManagementAPI(APIView):
|
|||||||
class UserRankAPI(APIView):
|
class UserRankAPI(APIView):
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
rule_type = request.GET.get("rule")
|
rule_type = request.GET.get("rule")
|
||||||
username = request.GET.get("username")
|
username = request.GET.get("username", "")
|
||||||
n = request.GET.get("n")
|
try:
|
||||||
if not username:
|
n = int(request.GET.get("n", "0"))
|
||||||
username = ""
|
except ValueError:
|
||||||
|
n = 0
|
||||||
if rule_type not in ContestRuleType.choices():
|
if rule_type not in ContestRuleType.choices():
|
||||||
rule_type = ContestRuleType.ACM
|
rule_type = ContestRuleType.ACM
|
||||||
profiles = UserProfile.objects.filter(user__admin_type=AdminType.REGULAR_USER, user__is_disabled=False,\
|
profiles = UserProfile.objects.filter(user__admin_type=AdminType.REGULAR_USER, user__is_disabled=False,\
|
||||||
user__username__icontains=username).select_related("user")
|
user__username__icontains=username).select_related("user")
|
||||||
if rule_type == ContestRuleType.ACM:
|
if rule_type == ContestRuleType.ACM:
|
||||||
profiles = profiles.filter(accepted_number__gte=n).order_by("-accepted_number", "submission_number")
|
profiles = profiles.filter(accepted_number__gte=0).order_by("-accepted_number", "submission_number")
|
||||||
else:
|
else:
|
||||||
profiles = profiles.filter(total_score__gt=0).order_by("-total_score")
|
profiles = profiles.filter(total_score__gt=0).order_by("-total_score")
|
||||||
|
if n>0:
|
||||||
|
profiles = profiles[:n]
|
||||||
return self.success(self.paginate_data(request, profiles, RankInfoSerializer))
|
return self.success(self.paginate_data(request, profiles, RankInfoSerializer))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user