feat: add assessment_* pages
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user