From d57b6638eafc65fdea25f6ec518c93f47764c41a Mon Sep 17 00:00:00 2001
From: Emmanuel Viennet <emmanuel.viennet@gmail.com>
Date: Thu, 22 Jun 2023 21:15:23 +0200
Subject: [PATCH] =?UTF-8?q?N'affiche=20pas=20les=20niveaux=20inexistants?=
 =?UTF-8?q?=20sur=20le=20r=C3=A9sum=C3=A9=20parcours?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/but/cursus_but.py            | 6 ++++++
 app/static/css/cursus_but.css    | 4 ++++
 app/templates/but/cursus_etud.j2 | 5 +++--
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/app/but/cursus_but.py b/app/but/cursus_but.py
index ea1b956ee..5b5b6f29c 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 e998ccda5..83438d250 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 4baaa96f1..34090aa61 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>
-- 
GitLab