diff --git a/app/scodoc/sco_report.py b/app/scodoc/sco_report.py index a558bce129..203865eb73 100644 --- a/app/scodoc/sco_report.py +++ b/app/scodoc/sco_report.py @@ -524,11 +524,11 @@ def table_suivi_cohorte( # 3-- Regroupe les semestres par date de debut P = [] # liste de periodsem - class periodsem(object): + class PeriodSem: pass # semestre de depart: - porigin = periodsem() + porigin = PeriodSem() d, m, y = [int(x) for x in sem["date_debut"].split("/")] porigin.datedebut = datetime.datetime(y, m, d) porigin.sems = [sem] @@ -543,7 +543,7 @@ def table_suivi_cohorte( merged = True break if not merged: - p = periodsem() + p = PeriodSem() p.datedebut = s["date_debut_dt"] p.sems = [s] P.append(p) @@ -743,7 +743,7 @@ def formsemestre_suivi_cohorte( civilite=None, statut="", only_primo=False, -): +) -> str: """Affiche suivi cohortes par numero de semestre""" annee_bac = str(annee_bac or "") annee_admission = str(annee_admission or "") @@ -794,14 +794,6 @@ def formsemestre_suivi_cohorte( '
Afficher les résultats en pourcentages
' % burl ) - help = ( - pplink - + """ -Nombre d'étudiants dans chaque semestre. Les dates indiquées sont les dates approximatives de début des semestres (les semestres commençant à des dates proches sont groupés). Le nombre de diplômés est celui à la fin du semestre correspondant. Lorsqu'il y a moins de %s étudiants dans une case, vous pouvez afficher leurs noms en passant le curseur sur le chiffre.
-Les menus permettent de n'étudier que certaines catégories d'étudiants (titulaires d'un type de bac, garçons ou filles). La case "restreindre aux primo-entrants" permet de ne considérer que les étudiants qui n'ont jamais été inscrits dans ScoDoc avant le semestre considéré.
- """ - % (MAX_ETUD_IN_DESCR,) - ) H = [ html_sco_header.sco_header(page_title=tab.page_title), @@ -824,7 +816,20 @@ def formsemestre_suivi_cohorte( percent=percent, ), t, - help, + f"""{pplink} +Nombre d'étudiants dans chaque semestre. + Les dates indiquées sont les dates approximatives de début des semestres + (les semestres commençant à des dates proches sont groupés). Le nombre de diplômés + est celui à la fin du semestre correspondant. + Lorsqu'il y a moins de {MAX_ETUD_IN_DESCR} étudiants dans une case, vous pouvez + afficher leurs noms en passant le curseur sur le chiffre. +
+Les menus permettent de n'étudier que certaines catégories + d'étudiants (titulaires d'un type de bac, garçons ou filles). + La case "restreindre aux primo-entrants" permet de ne considérer que les étudiants + qui n'ont jamais été inscrits dans ScoDoc avant le semestre considéré. +
+ """, expl, html_sco_header.sco_footer(), ] @@ -870,35 +875,33 @@ def _gen_form_selectetuds( else: selected = 'selected="selected"' F = [ - """ + """ ) - F.append( - '' % formsemestre_id - ) - F.append('' % percent) - F.append("") + return "\n".join(F) @@ -964,7 +965,7 @@ def _gen_select_annee(field, values, value) -> str: return menu_html + "" -def _descr_etud_set(etudids): +def _descr_etud_set(etudids) -> str: "textual html description of a set of etudids" etuds = [] for etudid in etudids: @@ -980,15 +981,22 @@ def _count_dem_reo(formsemestre_id, etudids): "count nb of demissions and reorientation in this etud set" formsemestre = FormSemestre.get_formsemestre(formsemestre_id) nt: NotesTableCompat = res_sem.load_formsemestre_results(formsemestre) - + validations_annuelles = nt.get_validations_annee() if nt.is_apc else {} dems = set() reos = set() for etudid in etudids: if nt.get_etud_etat(etudid) == "D": dems.add(etudid) - dec = nt.get_etud_decision_sem(etudid) - if dec and dec["code"] in codes_cursus.CODES_SEM_REO: - reos.add(etudid) + if nt.is_apc: + # BUT: utilise les validations annuelles + validation = validations_annuelles.get(etudid) + if validation and validation.code in codes_cursus.CODES_SEM_REO: + reos.add(etudid) + else: + # Autres formations: validations de semestres + dec = nt.get_etud_decision_sem(etudid) + if dec and dec["code"] in codes_cursus.CODES_SEM_REO: + reos.add(etudid) return dems, reos diff --git a/sco_version.py b/sco_version.py index 7ab85f2407..68196cdec1 100644 --- a/sco_version.py +++ b/sco_version.py @@ -1,7 +1,7 @@ # -*- mode: python -*- # -*- coding: utf-8 -*- -SCOVERSION = "9.6.37" +SCOVERSION = "9.6.38" SCONAME = "ScoDoc"