set minimal count of accepted_number for user rank

This commit is contained in:
yuetsh
2024-06-12 15:08:30 +08:00
parent 4003e74166
commit 81f128ba35

View File

@@ -377,6 +377,7 @@ class UserRankAPI(APIView):
def get(self, request):
rule_type = request.GET.get("rule")
username = request.GET.get("username")
n = request.GET.get("n")
if not username:
username = ""
if rule_type not in ContestRuleType.choices():
@@ -384,7 +385,7 @@ class UserRankAPI(APIView):
profiles = UserProfile.objects.filter(user__admin_type=AdminType.REGULAR_USER, user__is_disabled=False,\
user__username__icontains=username).select_related("user")
if rule_type == ContestRuleType.ACM:
profiles = profiles.filter(submission_number__gt=0).order_by("-accepted_number", "submission_number")
profiles = profiles.filter(accepted_number__gte=n).order_by("-accepted_number", "submission_number")
else:
profiles = profiles.filter(total_score__gt=0).order_by("-total_score")
return self.success(self.paginate_data(request, profiles, RankInfoSerializer))