feat: add assessment_* pages

This commit is contained in:
2025-08-04 20:39:58 +02:00
parent 21aa7015f9
commit 3bd9b56a83
4 changed files with 337 additions and 5 deletions

View File

@@ -178,6 +178,38 @@ def new():
return render_template('assessment_form_unified.html', form=form, title='Nouvelle évaluation complète')
@bp.route('/<int:id>/results')
@handle_db_errors
def results(id):
from sqlalchemy.orm import joinedload
from models import Exercise, GradingElement
assessment = Assessment.query.options(
joinedload(Assessment.class_group),
joinedload(Assessment.exercises).joinedload(Exercise.grading_elements)
).get_or_404(id)
# Calculer les scores des élèves
students_scores, exercise_scores = assessment.calculate_student_scores()
# Trier les élèves par ordre alphabétique
sorted_students = sorted(students_scores.values(),
key=lambda x: (x['student'].last_name.lower(), x['student'].first_name.lower()))
# Calculer les statistiques
statistics = assessment.get_assessment_statistics()
total_max_points = assessment.get_total_max_points()
# Préparer les données pour l'histogramme
scores = [data['total_score'] for data in students_scores.values()]
return render_template('assessment_results.html',
assessment=assessment,
students_scores=sorted_students,
statistics=statistics,
total_max_points=total_max_points,
scores_json=scores)
@bp.route('/<int:id>/delete', methods=['POST'])
@handle_db_errors
def delete(id):