feat: add commentary in concil prep
This commit is contained in:
@@ -33,6 +33,26 @@ class CouncilPreparationService:
|
||||
class StudentEvaluationService:
|
||||
def get_students_summaries(class_id, trimester) -> List[StudentTrimesterSummary]
|
||||
def calculate_student_trimester_average(student_id, trimester) -> float
|
||||
|
||||
# Nouvelles méthodes 2025
|
||||
def get_student_special_values_summary(student_id, trimester) -> Dict[str, Any]
|
||||
def get_student_competence_domain_breakdown(student_id, trimester) -> Dict[str, List[Dict]]
|
||||
```
|
||||
|
||||
#### GradeRepository (Nouvelles méthodes 2025)
|
||||
```python
|
||||
# Repository étendu pour valeurs spéciales et commentaires
|
||||
class GradeRepository:
|
||||
# Méthodes existantes...
|
||||
|
||||
# Nouvelles méthodes pour valeurs spéciales
|
||||
def get_special_values_counts_by_student_trimester(student_id, trimester) -> Dict[str, int]
|
||||
def get_special_values_counts_by_student_assessment(student_id, assessment_id) -> Dict[str, int]
|
||||
def get_special_values_details_by_student_trimester(student_id, trimester) -> Dict[str, List[Dict]]
|
||||
def get_special_values_details_by_student_assessment(student_id, assessment_id) -> Dict[str, List[Dict]]
|
||||
|
||||
# Nouvelle méthode pour commentaires organisés
|
||||
def get_all_comments_by_student_trimester(student_id, trimester) -> Dict[str, Any]
|
||||
```
|
||||
|
||||
#### AppreciationService
|
||||
@@ -55,6 +75,56 @@ class StudentTrimesterSummary:
|
||||
grades_by_assessment: Dict[int, Dict] # {assessment_id: {score, max, title}}
|
||||
appreciation: Optional[CouncilAppreciation]
|
||||
performance_status: str # 'excellent', 'good', 'average', 'struggling'
|
||||
competence_domain_breakdown: Optional[Dict] = None # Données compétences/domaines
|
||||
special_values_summary: Optional[Dict] = None # Nouvelle: résumé valeurs spéciales et commentaires
|
||||
```
|
||||
|
||||
#### Structure special_values_summary (Nouveau 2025)
|
||||
```python
|
||||
special_values_summary = {
|
||||
# Résumé global des valeurs spéciales pour le trimestre
|
||||
"global": {
|
||||
".": {"count": 2, "label": "Pas de réponse", "color": "#ef4444", "details": [...]},
|
||||
"d": {"count": 1, "label": "Dispensé", "color": "#6b7280", "details": [...]},
|
||||
"a": {"count": 1, "label": "Absent", "color": "#f59e0b", "details": [...]}
|
||||
},
|
||||
|
||||
# Détail par évaluation
|
||||
"by_assessment": {
|
||||
1: {
|
||||
"title": "Contrôle Chapitre 1",
|
||||
"date": "2025-08-10",
|
||||
"special_values": {
|
||||
".": {"count": 1, "label": "Pas de réponse", "details": [...]}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
# Commentaires organisés par évaluations (Nouveau)
|
||||
"comments_by_assessments": {
|
||||
"assessments": [
|
||||
{
|
||||
"id": 1,
|
||||
"title": "Contrôle Chapitre 1 - Nombres entiers",
|
||||
"date": "2025-08-10",
|
||||
"comments": [
|
||||
{
|
||||
"element_label": "Additions",
|
||||
"element_description": "Calculs simples",
|
||||
"value": ".",
|
||||
"comment": "Élève absent lors de cette question"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"total_comments": 3,
|
||||
"has_comments": true
|
||||
},
|
||||
|
||||
# Métadonnées
|
||||
"total_special_values": 4,
|
||||
"has_special_values": true
|
||||
}
|
||||
```
|
||||
|
||||
#### CouncilPreparationData
|
||||
@@ -113,6 +183,14 @@ class CouncilPreparationData:
|
||||
<div class="appreciation-status">[Rédigée|À rédiger]</div>
|
||||
</div>
|
||||
|
||||
<!-- Résumé compact des valeurs spéciales -->
|
||||
<div class="special-values-summary">
|
||||
<span class="text-gray-500">Valeurs spéciales:</span>
|
||||
<span class="badge-absent">. 2</span> <!-- Absent/Pas de réponse -->
|
||||
<span class="badge-excused">d 1</span> <!-- Dispensé -->
|
||||
<span class="badge-away">a 1</span> <!-- Absent justifié -->
|
||||
</div>
|
||||
|
||||
<!-- Résultats par évaluation -->
|
||||
<div class="assessment-results">
|
||||
<div class="assessment-item">
|
||||
@@ -131,6 +209,100 @@ class CouncilPreparationData:
|
||||
</div>
|
||||
```
|
||||
|
||||
### Vue détaillée expandable
|
||||
|
||||
Chaque carte élève peut être étendue pour révéler des informations complémentaires essentielles à la préparation du conseil de classe.
|
||||
|
||||
#### Valeurs spéciales par évaluation
|
||||
```html
|
||||
<!-- Section des valeurs spéciales détaillées -->
|
||||
<div class="special-values-detail">
|
||||
<h6>Valeurs spéciales</h6>
|
||||
<div class="assessment-special-values">
|
||||
<div class="assessment-row">
|
||||
<span>Contrôle Chapitre 1</span>
|
||||
<div class="special-badges">
|
||||
<span class="badge" title="Pas de réponse (2)">. 2</span>
|
||||
<span class="badge" title="Dispensé (1)">d 1</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
#### Commentaires enseignant organisés 📝
|
||||
**Nouvelle fonctionnalité 2025** : Affichage compact et structuré de tous les commentaires saisis par l'enseignant.
|
||||
|
||||
```html
|
||||
<!-- Section des commentaires par évaluation -->
|
||||
<div class="comments-section">
|
||||
<h6>Commentaires (3)</h6>
|
||||
|
||||
<!-- Regroupement par évaluation -->
|
||||
<div class="assessment-comments">
|
||||
<div class="assessment-group">
|
||||
<div class="assessment-header">
|
||||
<span class="assessment-title">Contrôle Chapitre 1 - Nombres entiers</span>
|
||||
<span class="comment-count">3 commentaire(s)</span>
|
||||
</div>
|
||||
|
||||
<!-- Commentaires compacts sur 2 lignes -->
|
||||
<div class="comments-list">
|
||||
<div class="comment-item">
|
||||
<!-- Ligne 1: Label • Description -->
|
||||
<div class="element-info">Additions • Calculs simples</div>
|
||||
<!-- Ligne 2: [Valeur] Commentaire -->
|
||||
<div class="comment-content">
|
||||
<span class="value-badge">.</span>
|
||||
<span class="comment-text">Élève absent lors de cette question</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="comment-item">
|
||||
<div class="element-info">Multiplications • Tables et calculs</div>
|
||||
<div class="comment-content">
|
||||
<span class="value-badge">d</span>
|
||||
<span class="comment-text">Dispensé par décision médicale</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
#### Structure des données commentaires
|
||||
```python
|
||||
# Nouvelle structure pour les commentaires
|
||||
comments_by_assessments = {
|
||||
"assessments": [
|
||||
{
|
||||
"id": 1,
|
||||
"title": "Contrôle Chapitre 1 - Nombres entiers",
|
||||
"date": "2025-08-10",
|
||||
"comments": [
|
||||
{
|
||||
"element_label": "Additions",
|
||||
"element_description": "Calculs simples",
|
||||
"value": ".", # Valeur optionnelle (peut être None)
|
||||
"comment": "Élève absent lors de cette question",
|
||||
"exercise_title": "Exercice 1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"total_comments": 3,
|
||||
"has_comments": true
|
||||
}
|
||||
```
|
||||
|
||||
#### Avantages de l'affichage compact
|
||||
- **Gain d'espace** : 2 lignes par commentaire maximum
|
||||
- **Contexte complet** : Label, description, valeur et commentaire visibles
|
||||
- **Organisation logique** : Regroupement par évaluation chronologique
|
||||
- **Lecture rapide** : Information hiérarchisée et codes couleur cohérents
|
||||
- **Positionnement optimal** : Après résultats et valeurs spéciales, avant compétences
|
||||
|
||||
## 🎛️ Modes de Visualisation
|
||||
|
||||
### Mode Liste (par défaut)
|
||||
@@ -299,6 +471,28 @@ this.state = {
|
||||
|
||||
## 🎯 Fonctionnalités Avancées
|
||||
|
||||
### Analyse des valeurs spéciales et commentaires 📊
|
||||
|
||||
**Nouveauté 2025** : Système complet d'analyse des valeurs spéciales (absences, dispenses) et des commentaires enseignant pour faciliter la préparation des conseils de classe.
|
||||
|
||||
#### Valeurs spéciales configurables
|
||||
- **Configuration dynamique** : Valeurs et couleurs modifiables via interface d'administration
|
||||
- **Valeurs par défaut** : `.` (Pas de réponse), `d` (Dispensé), `a` (Absent)
|
||||
- **Comptage automatique** : Calcul global et par évaluation en temps réel
|
||||
- **Tooltips informatifs** : Détail des éléments concernés au survol
|
||||
|
||||
#### Commentaires structurés
|
||||
- **Regroupement intelligent** : Organisation automatique par évaluation
|
||||
- **Affichage compact** : 2 lignes par commentaire (contexte + contenu)
|
||||
- **Métadonnées complètes** : Label, description, valeur associée
|
||||
- **Tri chronologique** : Évaluations les plus récentes en premier
|
||||
|
||||
#### Bénéfices pédagogiques
|
||||
- **Vue d'ensemble rapide** : Identification immédiate des difficultés
|
||||
- **Contexte enrichi** : Commentaires précédents accessibles lors des discussions
|
||||
- **Suivi longitudinal** : Évolution des problématiques par trimestre
|
||||
- **Préparation optimisée** : Toutes les informations centralisées
|
||||
|
||||
### Raccourcis clavier globaux
|
||||
```javascript
|
||||
// Raccourcis disponibles
|
||||
@@ -409,13 +603,20 @@ console.log('⬅️ Navigation vers élève précédent');
|
||||
- **Structuration** : Commencer par les cas prioritaires
|
||||
- **Révision** : Mode Liste final pour cohérence globale
|
||||
|
||||
## 🔄 Évolutions Futures
|
||||
## 🔄 Évolutions Récentes et Futures
|
||||
|
||||
### Version 2.1
|
||||
### Version 2.0.1 (Août 2025) ✅
|
||||
- [x] **Valeurs spéciales** : Comptage et affichage automatiques (`.`, `d`, `a`)
|
||||
- [x] **Commentaires structurés** : Organisation par évaluation avec affichage compact
|
||||
- [x] **Repository étendu** : Nouvelles méthodes optimisées pour l'analyse
|
||||
- [x] **Interface enrichie** : Vue détaillée expandable avec toutes les données contextuelles
|
||||
|
||||
### Version 2.1 (Roadmap)
|
||||
- [ ] **Collaboration** : Plusieurs enseignants simultanément
|
||||
- [ ] **Templates** : Appréciations pré-rédigées personnalisables
|
||||
- [ ] **IA Assistant** : Suggestions d'amélioration automatiques
|
||||
- [ ] **Analytics** : Tendances longitudinales élèves
|
||||
- [ ] **Export enrichi** : PDF avec valeurs spéciales et commentaires
|
||||
|
||||
### Version 2.2
|
||||
- [ ] **Mobile App** : Application native iOS/Android
|
||||
@@ -434,6 +635,9 @@ La **Préparation du Conseil de Classe** de Notytex révolutionne le workflow tr
|
||||
- ✅ **Analyse statistique** automatique des performances
|
||||
- ✅ **Navigation optimisée** avec raccourcis clavier
|
||||
- ✅ **Architecture robuste** avec gestion d'erreurs complète
|
||||
- 🆕 **Valeurs spéciales** : Comptage automatique des absences et dispenses
|
||||
- 🆕 **Commentaires structurés** : Historique organisé par évaluation
|
||||
- 🆕 **Vue contextuelle** : Toutes les données pédagogiques centralisées
|
||||
|
||||
Cette fonctionnalité transforme une tâche chronophage en un processus fluide et efficace, permettant aux enseignants de se concentrer sur l'essentiel : l'analyse pédagogique et la rédaction d'appréciations personnalisées.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user