diff --git a/app/scodoc/sco_page_etud.py b/app/scodoc/sco_page_etud.py index 7839f7f75a46eb29912d82506b15a0f7ae5d918d..2a5bc1b45f56700a6483bd240a77752588674120 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 54933d7a526a4fc3299f4940713800509b9991fc..a53e4607306603b1613d15e315e3b59e166f5bd6 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