diff --git a/app/forms/main/config_apo.py b/app/forms/main/config_apo.py index 551727fcb..946e6ff29 100644 --- a/app/forms/main/config_apo.py +++ b/app/forms/main/config_apo.py @@ -41,6 +41,7 @@ from app.scodoc import sco_codes_parcours def _build_code_field(code): return StringField( label=code, + default=code, description=sco_codes_parcours.CODES_EXPL[code], validators=[ validators.regexp( diff --git a/app/models/config.py b/app/models/config.py index 53ac96e9b..817125c37 100644 --- a/app/models/config.py +++ b/app/models/config.py @@ -9,6 +9,8 @@ from app.comp import bonus_spo from app.scodoc.sco_exceptions import ScoValueError from app.scodoc.sco_codes_parcours import ( + ABAN, + ABL, ADC, ADJ, ADM, @@ -19,11 +21,16 @@ from app.scodoc.sco_codes_parcours import ( CMP, DEF, DEM, + EXCLU, NAR, + PASD, + PAS1NCI, RAT, ) CODES_SCODOC_TO_APO = { + ABAN: "ABAN", + ABL: "ABL", ADC: "ADMC", ADJ: "ADM", ADM: "ADM", @@ -34,7 +41,10 @@ CODES_SCODOC_TO_APO = { CMP: "COMP", DEF: "NAR", DEM: "NAR", + EXCLU: "EXC", NAR: "NAR", + PASD: "PASD", + PAS1NCI: "PAS1NCI", RAT: "ATT", "NOTES_FMT": "%3.2f", } @@ -161,9 +171,8 @@ class ScoDocSiteConfig(db.Model): @classmethod def get_code_apo(cls, code: str) -> str: """La représentation d'un code pour les exports Apogée. - Par exemple, à l'iUT du H., le code ADM est réprésenté par VAL + Par exemple, à l'IUT du H., le code ADM est réprésenté par VAL Les codes par défaut sont donnés dans sco_apogee_csv. - """ cfg = ScoDocSiteConfig.query.filter_by(name=code).first() if not cfg: @@ -172,6 +181,11 @@ class ScoDocSiteConfig(db.Model): code_apo = cfg.value return code_apo + @classmethod + def get_codes_apo_dict(cls) -> dict[str:str]: + "Un dict avec code jury : code exporté" + return {code: cls.get_code_apo(code) for code in CODES_SCODOC_TO_APO} + @classmethod def set_code_apo(cls, code: str, code_apo: str): """Enregistre nouvelle représentation du code""" diff --git a/app/static/css/jury_but.css b/app/static/css/jury_but.css index e933b6fd5..2804eab9a 100644 --- a/app/static/css/jury_but.css +++ b/app/static/css/jury_but.css @@ -156,4 +156,9 @@ div.but_doc table tbody tr { div.but_doc table tbody tr:nth-child(odd) { background-color: #ffffff; +} + +div.but_doc table tr td.amue { + color: rgb(127, 127, 206); + font-size: 90%; } \ No newline at end of file diff --git a/app/templates/but/documentation_codes_jury.html b/app/templates/but/documentation_codes_jury.html index 090a830a2..499dabb57 100644 --- a/app/templates/but/documentation_codes_jury.html +++ b/app/templates/but/documentation_codes_jury.html @@ -9,69 +9,82 @@ + - + - + + - + + - + + - + + - + + - + + - + + - - + + + - + + - + + - - + + + - + +
ScoDoc{{nom_univ}} AMUESignification
ADM{{codes["ADM"]}} Admis
ADJ{{codes["ADJ"]}} Admis par décision jury
PASDPASD{{codes["PASD"]}}PASD Non admis, mais passage de droit
PAS1NCIPAS1NCI{{codes["PAS1NCI"]}}PAS1NCI Non admis, mais passage par décision de jury (Passage en Année Supérieure avec au moins 1 Niveau de Compétence Insuffisant (RCUE<8))
REDRED{{codes["RED"]}}RED Ajourné, mais autorisé à redoubler
NARREO{{codes["NAR"]}}REO Non admis, réorientation
DEM{{codes["DEM"]}} Démission
ABANABAN ABANdon constaté (sans lettre de démission){{codes["ABAN"]}}ABANABANdon constaté (sans lettre de démission)
RAT{{codes["RAT"]}} En attente d’un rattrapage
EXCLUEXC{{codes["EXCLU"]}}EXC EXClusion, décision réservée à des décisions disciplinaires
DEF (défaillance) Non évalué par manque assiduité{{codes["DEF"]}}(défaillance) Non évalué par manque assiduité
ABLABL{{codes["ABL"]}}ABL Année Blanche
@@ -81,39 +94,52 @@
+ + + + + + + - + + - + + - + + + - + + - + +
ScoDoc{{nom_univ}}AMUESignification
ADM - VAL + {{codes["ADM"]}}VAL Acquis
CMP{{codes["CMP"]}} Acquis par compensation annuelle
ADJCODJ{{codes["ADJ"]}}CODJ Acquis par décision du jury
AJAJ{{codes["AJ"]}}AJ Attente pour problème de moyenne
RAT{{codes["RAT"]}} En attente d’un rattrapage
DEF{{codes["DEF"]}} Défaillant
ABAN{{codes["ABAN"]}} Non évalué pour manque assiduité
@@ -123,42 +149,66 @@
+ + + + + + - + + + - + + - + + + - + + + - + + + - + + + - + + + - + + + - + + +
ScoDoc{{nom_univ}}AMUESignification
ADM Acquis (ECTS acquis){{codes["ADM"]}}VALAcquis (ECTS acquis)
CMP Acquis par compensation UE compensée avec l’UE de même compétence et de même année (ECTS acquis) + {{codes["CMP"]}}COMPAcquis par compensation UE compensée avec l’UE de même compétence et de même année (ECTS acquis)
ADJ Acquis par décision de jury (ECTS acquis){{codes["ADJ"]}}Acquis par décision de jury (ECTS acquis)
AJ Attente pour problème de moyenne{{codes["AJ"]}}AJAttente pour problème de moyenne
RAT En attente d’un rattrapage{{codes["RAT"]}}En attente d’un rattrapage
DEF Défaillant Pas ou peu de notes par arrêt de la formation{{codes["DEF"]}}ABANDéfaillant Pas ou peu de notes par arrêt de la formation
ABAN Non évalué pour manque d’assiduité Non présentation des notes de l’étudiant au jury{{codes["ABAN"]}}ABANNon évalué pour manque d’assiduité Non présentation des notes de l’étudiant au jury
DEM Démission{{codes["DEM"]}}Démission
UEBSL UE blanchie {{codes["UEBSL"]}}UEBSLUE blanchie
diff --git a/app/views/notes.py b/app/views/notes.py index 005e7963a..005f5796d 100644 --- a/app/views/notes.py +++ b/app/views/notes.py @@ -46,6 +46,7 @@ from app.but.forms import jury_but_forms from app.comp import res_sem from app.comp.res_but import ResultatsSemestreBUT from app.comp.res_compat import NotesTableCompat +from app.models.config import ScoDocSiteConfig from app.models.etudiants import Identite from app.models.formsemestre import FormSemestre from app.models.formsemestre import FormSemestreUEComputationExpr @@ -2359,7 +2360,15 @@ def formsemestre_validation_but(formsemestre_id: int, etudid: int): ) H.append("") # but_annee - H.append(render_template("but/documentation_codes_jury.html")) + H.append( + render_template( + "but/documentation_codes_jury.html", + nom_univ=f"""Export {sco_preferences.get_preference("InstituteName") + or sco_preferences.get_preference("UnivName") + or "Apogée"}""", + codes=ScoDocSiteConfig.get_codes_apo_dict(), + ) + ) return "\n".join(H) + html_sco_header.sco_footer()