diff --git a/classquiz/routers/results.py b/classquiz/routers/results.py index dd2e43a..9d96a3b 100644 --- a/classquiz/routers/results.py +++ b/classquiz/routers/results.py @@ -12,14 +12,14 @@ from classquiz.db.models import User, GameResults router = APIRouter() -@router.get("/list", response_model=list[GameResults]) -async def list_game_results(user: User = Depends(get_current_user)): - results = await GameResults.objects.all(user=user.id) +@router.get("/list") +async def list_game_results(user: User = Depends(get_current_user)) -> list[GameResults]: + results = await GameResults.objects.select_related(GameResults.quiz).all(user=user.id) return results -@router.get("/list/{quiz_id}", response_model=list[GameResults]) -async def get_results_by_quiz(quiz_id: UUID, user: User = Depends(get_current_user)): +@router.get("/list/{quiz_id}") +async def get_results_by_quiz(quiz_id: UUID, user: User = Depends(get_current_user)) -> list[GameResults]: res = await GameResults.objects.all(user=user.id, quiz=quiz_id) if res is None: raise HTTPException(status_code=404, detail="Game Result not found") @@ -27,9 +27,9 @@ async def get_results_by_quiz(quiz_id: UUID, user: User = Depends(get_current_us return res -@router.get("/{game_id}", response_model=GameResults) -async def get_game_result(game_id: UUID, user: User = Depends(get_current_user)): - res = await GameResults.objects.get_or_none(user=user.id, id=game_id) +@router.get("/{game_id}") +async def get_game_result(game_id: UUID, user: User = Depends(get_current_user)) -> GameResults: + res = await GameResults.objects.select_related(GameResults.quiz).get_or_none(user=user.id, id=game_id) if res is None: raise HTTPException(status_code=404, detail="Game Result not found") else: @@ -40,8 +40,8 @@ class _SetNoteInput(BaseModel): note: str -@router.post("/set_note", response_model=GameResults) -async def set_note(id: UUID, data: _SetNoteInput, user: User = Depends(get_current_user)): +@router.post("/set_note") +async def set_note(id: UUID, data: _SetNoteInput, user: User = Depends(get_current_user)) -> GameResults: res = await GameResults.objects.get_or_none(user=user.id, id=id) if res is None: raise HTTPException(status_code=404, detail="Game Result not found") diff --git a/frontend/src/lib/i18n/locales/en.json b/frontend/src/lib/i18n/locales/en.json index 4693b61..8abbe8b 100644 --- a/frontend/src/lib/i18n/locales/en.json +++ b/frontend/src/lib/i18n/locales/en.json @@ -254,7 +254,8 @@ "delete_this_session": "Delete this session", "this_session?": "This session?", "change_avatar": "Change avatar", - "security_settings": "Security-Settings" + "security_settings": "Security-Settings", + "add_api_key": "Add API key" }, "explore_page": { "made_by": "Made by", @@ -320,7 +321,10 @@ "no_results_so_far": "No results saved so far...", "quiz_title": "Quiz Title", "date_played": "Date Played", - "player_count": "Player count" + "player_count": "Player count", + "general_overview": { + "sentence": "The quiz \"{{title}}\", which was played on {{date}} had {{player_count}} players with an average score of {{average_score}}." + } }, "result_page": { "player_name": "Player name", @@ -328,7 +332,8 @@ "average_score": "Average score: {{average_score}}", "correct_answer": "{{count}} correct answer", "correct_answer_plural": "{{count}} correct answers", - "time_taken": "Time taken" + "time_taken": "Time taken", + "player_score": "Player Score" }, "navbar": { "donate": "Donate" diff --git a/frontend/src/routes/account/settings/+page.svelte b/frontend/src/routes/account/settings/+page.svelte index 4babc23..9ae6591 100644 --- a/frontend/src/routes/account/settings/+page.svelte +++ b/frontend/src/routes/account/settings/+page.svelte @@ -221,20 +221,25 @@