diff --git a/polylan_submitter/animations/api.py b/polylan_submitter/animations/api.py index d75a303..d067291 100644 --- a/polylan_submitter/animations/api.py +++ b/polylan_submitter/animations/api.py @@ -26,7 +26,9 @@ def results(request: HttpRequest) -> dict: ranking = {} for puzzle_id, responses in responses_by_puzzleid.items(): - ranking[puzzle_id] = sorted(responses, key=lambda x: x.rank_points) + ranking[puzzle_id] = sorted( + responses, key=lambda x: (x.rank_points is None, x.rank_points or 0) + ) return { "users": CustomUser.objects.filter(pk__in=responses_by_userid.keys()), diff --git a/polylan_submitter/animations/schemas.py b/polylan_submitter/animations/schemas.py index c222d78..625f90e 100644 --- a/polylan_submitter/animations/schemas.py +++ b/polylan_submitter/animations/schemas.py @@ -30,8 +30,13 @@ class PuzzleResponseRankingOut(ModelSchema): return obj.submission.user.id +class UserDisplayOut(Schema): + id: int + username: str + + class RankingSchema(Schema): - users: list[UserInfoOut] + users: list[UserDisplayOut] puzzles: list[SteamCollectionItemOut] responses_by_userid: dict[int, list[PuzzleResponseRankingOut]] ranking_by_puzzle: dict[int, list[PuzzleResponseRankingOut]] diff --git a/polylan_submitter/src/components/Results.vue b/polylan_submitter/src/components/Results.vue index 26dbe1b..9794f5e 100644 --- a/polylan_submitter/src/components/Results.vue +++ b/polylan_submitter/src/components/Results.vue @@ -1,11 +1,279 @@ - +