🐛 Fixed some small bugs in results and on the account settings page
This commit is contained in:
@@ -12,14 +12,14 @@ from classquiz.db.models import User, GameResults
|
|||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
@router.get("/list", response_model=list[GameResults])
|
@router.get("/list")
|
||||||
async def list_game_results(user: User = Depends(get_current_user)):
|
async def list_game_results(user: User = Depends(get_current_user)) -> list[GameResults]:
|
||||||
results = await GameResults.objects.all(user=user.id)
|
results = await GameResults.objects.select_related(GameResults.quiz).all(user=user.id)
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|
||||||
@router.get("/list/{quiz_id}", response_model=list[GameResults])
|
@router.get("/list/{quiz_id}")
|
||||||
async def get_results_by_quiz(quiz_id: UUID, user: User = Depends(get_current_user)):
|
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)
|
res = await GameResults.objects.all(user=user.id, quiz=quiz_id)
|
||||||
if res is None:
|
if res is None:
|
||||||
raise HTTPException(status_code=404, detail="Game Result not found")
|
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
|
return res
|
||||||
|
|
||||||
|
|
||||||
@router.get("/{game_id}", response_model=GameResults)
|
@router.get("/{game_id}")
|
||||||
async def get_game_result(game_id: UUID, user: User = Depends(get_current_user)):
|
async def get_game_result(game_id: UUID, user: User = Depends(get_current_user)) -> GameResults:
|
||||||
res = await GameResults.objects.get_or_none(user=user.id, id=game_id)
|
res = await GameResults.objects.select_related(GameResults.quiz).get_or_none(user=user.id, id=game_id)
|
||||||
if res is None:
|
if res is None:
|
||||||
raise HTTPException(status_code=404, detail="Game Result not found")
|
raise HTTPException(status_code=404, detail="Game Result not found")
|
||||||
else:
|
else:
|
||||||
@@ -40,8 +40,8 @@ class _SetNoteInput(BaseModel):
|
|||||||
note: str
|
note: str
|
||||||
|
|
||||||
|
|
||||||
@router.post("/set_note", response_model=GameResults)
|
@router.post("/set_note")
|
||||||
async def set_note(id: UUID, data: _SetNoteInput, user: User = Depends(get_current_user)):
|
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)
|
res = await GameResults.objects.get_or_none(user=user.id, id=id)
|
||||||
if res is None:
|
if res is None:
|
||||||
raise HTTPException(status_code=404, detail="Game Result not found")
|
raise HTTPException(status_code=404, detail="Game Result not found")
|
||||||
|
|||||||
@@ -254,7 +254,8 @@
|
|||||||
"delete_this_session": "Delete this session",
|
"delete_this_session": "Delete this session",
|
||||||
"this_session?": "This session?",
|
"this_session?": "This session?",
|
||||||
"change_avatar": "Change avatar",
|
"change_avatar": "Change avatar",
|
||||||
"security_settings": "Security-Settings"
|
"security_settings": "Security-Settings",
|
||||||
|
"add_api_key": "Add API key"
|
||||||
},
|
},
|
||||||
"explore_page": {
|
"explore_page": {
|
||||||
"made_by": "Made by",
|
"made_by": "Made by",
|
||||||
@@ -320,7 +321,10 @@
|
|||||||
"no_results_so_far": "No results saved so far...",
|
"no_results_so_far": "No results saved so far...",
|
||||||
"quiz_title": "Quiz Title",
|
"quiz_title": "Quiz Title",
|
||||||
"date_played": "Date Played",
|
"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": {
|
"result_page": {
|
||||||
"player_name": "Player name",
|
"player_name": "Player name",
|
||||||
@@ -328,7 +332,8 @@
|
|||||||
"average_score": "Average score: {{average_score}}",
|
"average_score": "Average score: {{average_score}}",
|
||||||
"correct_answer": "{{count}} correct answer",
|
"correct_answer": "{{count}} correct answer",
|
||||||
"correct_answer_plural": "{{count}} correct answers",
|
"correct_answer_plural": "{{count}} correct answers",
|
||||||
"time_taken": "Time taken"
|
"time_taken": "Time taken",
|
||||||
|
"player_score": "Player Score"
|
||||||
},
|
},
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"donate": "Donate"
|
"donate": "Donate"
|
||||||
|
|||||||
@@ -221,20 +221,25 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div>
|
<div>
|
||||||
<button on:click={add_api_key}>{$t('settings_page.security_settings')}</button>
|
<div class="w-fit">
|
||||||
|
<BrownButton on:click={add_api_key}
|
||||||
|
>{$t('settings_page.add_api_key')}</BrownButton
|
||||||
|
>
|
||||||
|
</div>
|
||||||
{#await api_keys}
|
{#await api_keys}
|
||||||
<Spinner />
|
<Spinner />
|
||||||
{:then keys}
|
{:then keys}
|
||||||
{#each keys as key}
|
{#each keys as key}
|
||||||
<div>
|
<div>
|
||||||
{key.key}
|
{key.key}
|
||||||
<button
|
<div class="inline-block">
|
||||||
|
<BrownButton
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
delete_api_key(key.key);
|
delete_api_key(key.key);
|
||||||
}}
|
}}
|
||||||
class="admin-button"
|
|
||||||
>{$t('words.delete')}
|
>{$t('words.delete')}
|
||||||
</button>
|
</BrownButton>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
{/await}
|
{/await}
|
||||||
|
|||||||
Reference in New Issue
Block a user