From 37e808e1fa1941b12fb76dd369f85f32cdeee71a Mon Sep 17 00:00:00 2001
From: Emmanuel Viennet <emmanuel.viennet@gmail.com>
Date: Tue, 15 Apr 2025 14:39:19 +0200
Subject: [PATCH] Saisie notes par etud: fixing & cleaning
---
app/scodoc/sco_page_etud.py | 2 +-
app/scodoc/sco_saisie_notes.py | 101 +++++++++++++++++----------------
2 files changed, 52 insertions(+), 51 deletions(-)
diff --git a/app/scodoc/sco_page_etud.py b/app/scodoc/sco_page_etud.py
index 7839f7f7..2a5bc1b4 100644
--- a/app/scodoc/sco_page_etud.py
+++ b/app/scodoc/sco_page_etud.py
@@ -175,7 +175,7 @@ def _menu_scolarite(
{
"title": "Éditer toutes les notes",
"endpoint": "notes.form_saisie_notes_par_etu",
- "args": {"etu_id": etudid, "semestre_id": formsemestre.id},
+ "args": {"etudid": etudid, "formsemestre_id": formsemestre.id},
"enabled": note_enabled,
},
]
diff --git a/app/scodoc/sco_saisie_notes.py b/app/scodoc/sco_saisie_notes.py
index 54933d7a..a53e4607 100644
--- a/app/scodoc/sco_saisie_notes.py
+++ b/app/scodoc/sco_saisie_notes.py
@@ -757,48 +757,6 @@ def saisie_notes(evaluation: Evaluation, group_ids: list[int] | tuple[int] = ())
)
-# US 1030 - DEB
-class DataSection:
- """Agrège les données sur un ensemble de module (Ressources, SAEs, Standard, Malus).
- Nécessaire pour garantir l'ordre de présentation pour les formations en apc.
- data_modmpl: la liste des modules de la section.
- """
-
- def __init__(self, module_type: ModuleType):
- self.name = scu.MODULE_TYPE_NAMES[module_type]
- self.data_modimpl = []
-
- def add_modimpl(self, modimpl: ModuleImpl):
- self.data_modimpl.append(modimpl)
-
-
-class DataModimpl:
- """Aggrège les données sur un module pour un étudiant donné.
- # TODO ?: récupére les notes sur les années précédentes pour aider à la saisie
- # des cursus adaptés (cursus) (sportifs, étalement sur plusieurs années, etc.).
- data_evals: la iste des évaluations du module.
- """
-
- def __init__(self, etudiant: Identite, modimpl: ModuleImpl):
- self.etudiant = etudiant
- self.data_evals = []
- self.modimpl = modimpl
- self.modimpl_id = modimpl.id
- self.module_code = modimpl.module.code
- self.titre = modimpl.module.titre
- href = url_for(
- "notes.moduleimpl_status",
- scodoc_dept=g.scodoc_dept,
- moduleimpl_id=modimpl.id,
- )
- self.link = (
- f'<a class="stdlink" href="{href}">{self.module_code} {self.titre}</a>'
- )
-
- def add_eval(self, data_eval: DataSection):
- self.data_evals.append(data_eval)
-
-
class DataEval:
"""Récupère les données sur une évaluation appliquée à un étudiant"""
@@ -851,6 +809,49 @@ class DataEval:
{get_note_history_menu(self.evaluation.id, self.etudid)}</span>"""
+class DataModimpl:
+ """Aggrège les données sur un module pour un étudiant donné.
+ # TODO ?: récupére les notes sur les années précédentes pour aider à la saisie
+ # des cursus adaptés (cursus) (sportifs, étalement sur plusieurs années, etc.).
+ data_evals: la iste des évaluations du module.
+ """
+
+ def __init__(self, etudiant: Identite, modimpl: ModuleImpl):
+ self.etudiant = etudiant
+ self.data_evals: list[DataEval] = []
+ self.modimpl = modimpl
+ self.modimpl_id = modimpl.id
+ self.module_code = modimpl.module.code
+ self.titre = modimpl.module.titre
+ href = url_for(
+ "notes.moduleimpl_status",
+ scodoc_dept=g.scodoc_dept,
+ moduleimpl_id=modimpl.id,
+ )
+ self.link = (
+ f'<a class="stdlink" href="{href}">{self.module_code} {self.titre}</a>'
+ )
+
+ def add_eval(self, data_eval: DataEval):
+ "Ajoute une évaluation"
+ self.data_evals.append(data_eval)
+
+
+class DataSection:
+ """Agrège les données sur un ensemble de module (Ressources, SAEs, Standard, Malus).
+ Nécessaire pour garantir l'ordre de présentation pour les formations en apc.
+ data_modmpl: la liste des modules de la section.
+ """
+
+ def __init__(self, module_type: ModuleType):
+ self.name: str = scu.MODULE_TYPE_NAMES[module_type]
+ self.data_modimpl: list[DataModimpl] = []
+
+ def add_modimpl(self, modimpl: ModuleImpl):
+ "ajoute un ModuleImpl à la section"
+ self.data_modimpl.append(modimpl)
+
+
class DataForm:
"""
Class qui décrit les données d'une page de saisie par étudiant:
@@ -879,24 +880,24 @@ class DataForm:
"""
-def get_data(semestre: FormSemestre, etudiant: Identite) -> DataForm:
+def get_data(formsemestre: FormSemestre, etud: Identite) -> DataForm:
"""Récupère les infos pour une page (donc un étudiant (cf ticket 1030))"""
- res = res_sem.load_formsemestre_results(semestre)
+ res = res_sem.load_formsemestre_results(formsemestre)
data = DataForm(
- etudiant, semestre, res.etud_has_decision(etudiant.etudid, include_rcues=False)
+ etud, formsemestre, res.etud_has_decision(etud.etudid, include_rcues=False)
)
- if semestre.formation.is_apc():
+ if formsemestre.formation.is_apc():
for module_type in ModuleType:
data.data_sections[module_type] = DataSection(module_type)
else:
for module_type in [ModuleType.STANDARD, ModuleType.MALUS]:
data.data_sections[module_type] = DataSection(module_type)
- for modimpl in semestre.modimpls_sorted:
+ for modimpl in formsemestre.modimpls_sorted:
module_type = modimpl.module.module_type
- if res.modimpl_inscr_df[modimpl.id][etudiant.id]:
- data_modimpl = DataModimpl(etudiant, modimpl)
+ if res.modimpl_inscr_df[modimpl.id][etud.id]:
+ data_modimpl = DataModimpl(etud, modimpl)
for evaluation in modimpl.evaluations:
- data_modimpl.add_eval(DataEval(etudiant.etudid, evaluation))
+ data_modimpl.add_eval(DataEval(etud.etudid, evaluation))
data.data_sections[module_type].add_modimpl(data_modimpl)
return data
--
GitLab