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