from ninja import Router router = Router() # @router.get("results", response=RankingSchema) # def results(request: HttpRequest) -> dict: # responses_by_userid = defaultdict(list) # responses_by_puzzleid = defaultdict(list) # # for response in list( # PuzzleResponse.objects.filter(needs_manual_validation=False) # .filter_user_best_response() # .prefetch_related("submission__user") # ): # responses_by_userid[response.submission.user.id].append(response) # responses_by_puzzleid[response.puzzle.id].append(response) # # ranking = {} # # for puzzle_id, responses in responses_by_puzzleid.items(): # ranking[puzzle_id] = sorted(responses, key=lambda x: x.rank_points) # # return { # "users": CustomUser.objects.filter(pk__in=responses_by_userid.keys()), # "puzzles": SteamCollectionItem.objects.all(), # "responses_by_userid": responses_by_userid, # "ranking_by_puzzle": ranking, # }