diff --git a/app/but/cursus_but.py b/app/but/cursus_but.py index ea1b956ee43d337cc3b61abbca5845df9e3e9de4..5b5b6f29c26a1f3eacef8ea0914d8df2f1e883e8 100644 --- a/app/but/cursus_but.py +++ b/app/but/cursus_but.py @@ -71,6 +71,7 @@ class SituationEtudCursusBUT(sco_cursus_dut.SituationEtudCursusClassic): class EtudCursusBUT: """L'état de l'étudiant dans son cursus BUT Liste des niveaux validés/à valider + (utilisé pour le résumé sur la fiche étudiant) """ def __init__(self, etud: Identite, formation: Formation): @@ -190,6 +191,11 @@ class EtudCursusBUT: ) return d + def competence_annee_has_niveau(self, competence_id: int, annee: str) -> bool: + "vrai si la compétence à un niveau dans cette annee ('BUT1') pour le parcour de cet etud" + # slow, utile pour affichage fiche + return annee in [n.annee for n in self.competences[competence_id].niveaux] + def load_validation_by_niveau(self) -> dict[int, list[ApcValidationRCUE]]: """Cherche les validations de jury enregistrées pour chaque niveau Résultat: { niveau_id : [ ApcValidationRCUE ] } diff --git a/app/static/css/cursus_but.css b/app/static/css/cursus_but.css index e998ccda54caf0467d93062eb3d1fb8ea04970a6..83438d25072ff31bd4d37a9f62b51313d67abd00 100644 --- a/app/static/css/cursus_but.css +++ b/app/static/css/cursus_but.css @@ -40,6 +40,10 @@ div.code_rcue { position: relative; } +div.no_niveau { + background-color: rgb(245, 237, 200); +} + div.code_jury { padding-right: 4px; padding-left: 4px; diff --git a/app/templates/but/cursus_etud.j2 b/app/templates/but/cursus_etud.j2 index 4baaa96f191cc62d4ddbaecbfb141fb8939bc43e..34090aa611d981a7eba59a3ff633a79d0a2d9d0e 100644 --- a/app/templates/but/cursus_etud.j2 +++ b/app/templates/but/cursus_etud.j2 @@ -9,7 +9,8 @@ <div class="cb_titre_competence">{{ cursus.competences[competence_id].titre }}</div> {% for annee in ('BUT1', 'BUT2', 'BUT3') %} {% set validation = cursus.validation_par_competence_et_annee.get(competence_id, {}).get(annee) %} - <div> + {% set has_niveau = cursus.competence_annee_has_niveau(competence_id, annee) %} + <div class="{{ '' if has_niveau else 'no_niveau' }}"> {% if validation %} <div class="code_rcue with_scoplement"> <div class="code_jury">{{validation.code}}</div> @@ -23,7 +24,7 @@ </div> {% else %} <div class="code_rcue"> - <div class="code_jury">-</div> + <div class="code_jury">{{'-' if has_niveau else ''}}</div> </div> {%endif%} </div>