✨ Added Scores to export
This commit is contained in:
@@ -29,7 +29,7 @@ async def get_meili_data(quiz: Quiz) -> dict:
|
||||
}
|
||||
|
||||
|
||||
async def generate_spreadsheet(quiz_results: dict, quiz: Quiz, player_fields: dict) -> BytesIO:
|
||||
async def generate_spreadsheet(quiz_results: dict, quiz: Quiz, player_fields: dict, player_scores: dict) -> BytesIO:
|
||||
storage = BytesIO()
|
||||
workbook = xlsxwriter.Workbook(storage, {"in_memory": True})
|
||||
player_worksheet = workbook.add_worksheet()
|
||||
@@ -37,9 +37,13 @@ async def generate_spreadsheet(quiz_results: dict, quiz: Quiz, player_fields: di
|
||||
player_worksheet.write(0, 0, "Username")
|
||||
player_worksheet.write(0, 1, "Score")
|
||||
player_worksheet.write(0, 2, "Custom-Field")
|
||||
for i, player in enumerate(player_fields.keys()):
|
||||
for i, player in enumerate(player_scores.keys()):
|
||||
player_worksheet.write(i + 1, 0, player)
|
||||
player_worksheet.write(i + 1, 2, player_fields[player])
|
||||
player_worksheet.write(i + 1, 1, player_scores[player])
|
||||
try:
|
||||
player_worksheet.write(i + 1, 2, player_fields[player])
|
||||
except KeyError:
|
||||
continue
|
||||
|
||||
worksheet = workbook.add_worksheet()
|
||||
worksheet.name = "Questions"
|
||||
|
||||
@@ -258,7 +258,10 @@ async def export_quiz_answers(export_token: str, game_pin: str):
|
||||
raise HTTPException(status_code=404, detail="quiz not found")
|
||||
|
||||
player_fields = await redis.hgetall(f"game:{game_pin}:players:custom_fields")
|
||||
spreadsheet = await generate_spreadsheet(quiz=quiz, quiz_results=data, player_fields=player_fields)
|
||||
score_data = await redis.hgetall(f"game_session:{game_pin}:player_scores")
|
||||
spreadsheet = await generate_spreadsheet(
|
||||
quiz=quiz, quiz_results=data, player_fields=player_fields, player_scores=score_data
|
||||
)
|
||||
|
||||
def iter_file():
|
||||
yield from spreadsheet
|
||||
|
||||
Reference in New Issue
Block a user