from flask import Blueprint, render_template from auth_utils import current_user, login_required from quiz import get_all from db import get_user_results, get_best_score protected_bp = Blueprint('protected', __name__) @protected_bp.route('/profil/') @login_required def profil(): user = current_user() results = get_user_results(user['sub']) quizzes = get_all() # Calcule le meilleur score par quiz best_scores = {} for q in quizzes: row = get_best_score(user['sub'], q['id']) if row: best_scores[q['id']] = {'score': row['best'], 'total': row['total']} # Statistiques globales completed_ids = {r['quiz_id'] for r in results} stats = { 'quizzes_done': len(completed_ids), 'quizzes_total': len(quizzes), 'attempts': len(results), } return render_template('profil/index.html', user=user, results=results, quizzes={q['id']: q for q in quizzes}, best_scores=best_scores, stats=stats)