From f84e7b10e4bdac6e6a45a030a4167783fa930bb1 Mon Sep 17 00:00:00 2001
From: Emmanuel Viennet <emmanuel.viennet@gmail.com>
Date: Thu, 12 Jan 2023 10:14:54 -0300
Subject: [PATCH] =?UTF-8?q?Impl=C3=A9mente=20#557?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/but/jury_but.py                           |  7 +++---
 app/models/config.py                          |  2 ++
 app/scodoc/sco_codes_parcours.py              | 25 +++++++++++--------
 app/static/js/jury_but.js                     |  4 +--
 .../but/documentation_codes_jury.html         |  6 +++++
 misc/sco_archive_exemple.py                   |  1 -
 6 files changed, 28 insertions(+), 17 deletions(-)

diff --git a/app/but/jury_but.py b/app/but/jury_but.py
index bf0e75eb1..37db1b5df 100644
--- a/app/but/jury_but.py
+++ b/app/but/jury_but.py
@@ -1049,8 +1049,8 @@ class DecisionsProposeesRCUE(DecisionsProposees):
                 for ue_id in (self.rcue.ue_1.id, self.rcue.ue_2.id):
                     dec_ue = deca.decisions_ues.get(ue_id)
                     if dec_ue and dec_ue.code_valide not in CODES_UE_VALIDES:
-                        log(f"rcue.record: force ADJ sur {dec_ue}")
-                        dec_ue.record("ADJ")
+                        log(f"rcue.record: force ADJR sur {dec_ue}")
+                        dec_ue.record("ADJR")
 
         if self.rcue.formsemestre_1 is not None:
             sco_cache.invalidate_formsemestre(
@@ -1100,7 +1100,7 @@ class DecisionsProposeesUE(DecisionsProposees):
     sinon si compensation dans RCUE: CMP
     sinon: ADJ, AJ
 
-    et proposer toujours: RAT, DEF, ABAN, DEM, UEBSL (codes_communs)
+    et proposer toujours: RAT, DEF, ABAN, ADJR, DEM, UEBSL (codes_communs)
     """
 
     # Codes toujours proposés sauf si include_communs est faux:
@@ -1108,6 +1108,7 @@ class DecisionsProposeesUE(DecisionsProposees):
         sco_codes.RAT,
         sco_codes.DEF,
         sco_codes.ABAN,
+        sco_codes.ADJR,
         sco_codes.ATJ,
         sco_codes.DEM,
         sco_codes.UEBSL,
diff --git a/app/models/config.py b/app/models/config.py
index 1b31eb120..6872c6cdf 100644
--- a/app/models/config.py
+++ b/app/models/config.py
@@ -13,6 +13,7 @@ from app.scodoc.sco_codes_parcours import (
     ABL,
     ADC,
     ADJ,
+    ADJR,
     ADM,
     AJ,
     ATB,
@@ -34,6 +35,7 @@ CODES_SCODOC_TO_APO = {
     ABL: "ABL",
     ADC: "ADMC",
     ADJ: "ADM",
+    ADJR: "ADM",
     ADM: "ADM",
     AJ: "AJ",
     ATB: "AJAC",
diff --git a/app/scodoc/sco_codes_parcours.py b/app/scodoc/sco_codes_parcours.py
index 7d90edbcb..21b2b0c87 100644
--- a/app/scodoc/sco_codes_parcours.py
+++ b/app/scodoc/sco_codes_parcours.py
@@ -122,6 +122,7 @@ ABL = "ABL"
 ADM = "ADM"  # moyenne gen., barres UE, assiduité: sem. validé
 ADC = "ADC"  # admis par compensation (eg moy(S1, S2) > 10)
 ADJ = "ADJ"  # admis par le jury
+ADJR = "ADJR"  # UE admise car son RCUE est ADJ
 ATT = "ATT"  #
 ATJ = "ATJ"  # pb assiduité: décision repoussée au semestre suivant
 ATB = "ATB"
@@ -158,6 +159,7 @@ CODES_EXPL = {
     ABL: "Année blanche",
     ADC: "Validé par compensation",
     ADJ: "Validé par le Jury",
+    ADJR: "UE validée car son RCUE est validé ADJ par le jury",
     ADM: "Validé",
     AJ: "Ajourné (ou UE/BC de BUT en attente pour problème de moyenne)",
     ATB: "Décision en attente d'un autre semestre (au moins une UE sous la barre)",
@@ -190,7 +192,7 @@ CODES_SEM_ATTENTES = {ATT: True, ATB: True, ATJ: True}  # semestre en attente
 
 CODES_SEM_REO = {NAR: 1}  # reorientation
 
-CODES_UE_VALIDES = {ADM: True, CMP: True, ADJ: True}  # UE validée
+CODES_UE_VALIDES = {ADM: True, CMP: True, ADJ: True, ADJR: True}  # UE validée
 CODES_RCUE_VALIDES = CODES_UE_VALIDES  # Niveau RCUE validé
 # Pour le BUT:
 CODES_ANNEE_ARRET = {DEF, DEM, ABAN, ABL}
@@ -208,16 +210,17 @@ BUT_CODES_PASSAGE = {
 # les codes, du plus "défavorable" à l'étudiant au plus favorable:
 # (valeur par défaut 0)
 BUT_CODES_ORDERED = {
-    "NAR": 0,
-    "DEF": 0,
-    "AJ": 10,
-    "ATJ": 20,
-    "CMP": 50,
-    "ADC": 50,
-    "PASD": 50,
-    "PAS1NCI": 60,
-    "ADJ": 100,
-    "ADM": 100,
+    NAR: 0,
+    DEF: 0,
+    AJ: 10,
+    ATJ: 20,
+    CMP: 50,
+    ADC: 50,
+    PASD: 50,
+    PAS1NCI: 60,
+    ADJR: 90,
+    ADJ: 100,
+    ADM: 100,
 }
 
 
diff --git a/app/static/js/jury_but.js b/app/static/js/jury_but.js
index b016f110c..7c881c445 100644
--- a/app/static/js/jury_but.js
+++ b/app/static/js/jury_but.js
@@ -18,7 +18,7 @@ function change_menu_code(elt) {
     } else {
         elt.parentElement.parentElement.classList.remove("recorded");
     }
-    // Si RCUE passant en ADJ, change les menus des UEs associées
+    // Si RCUE passant en ADJ, change les menus des UEs associées ADJR
     if (elt.classList.contains("code_rcue")
         && elt.dataset.niveau_id
         && elt.value == "ADJ"
@@ -26,7 +26,7 @@ function change_menu_code(elt) {
         let ue_selects = elt.parentElement.parentElement.parentElement.querySelectorAll(
             "select.ue_rcue_" + elt.dataset.niveau_id);
         ue_selects.forEach(select => {
-            select.value = "ADJ";
+            select.value = "ADJR";
             change_menu_code(select); // pour changer les styles
         });
     }
diff --git a/app/templates/but/documentation_codes_jury.html b/app/templates/but/documentation_codes_jury.html
index bde91be3b..cc4c7e179 100644
--- a/app/templates/but/documentation_codes_jury.html
+++ b/app/templates/but/documentation_codes_jury.html
@@ -189,6 +189,12 @@
                 <td class="amue"></td>
                 <td>Acquis par décision de jury (ECTS acquis)</td>
             </tr>
+            <tr>
+                <td>ADJR</td>
+                <td>{{codes["ADJR"]}}</td>
+                <td class="amue"></td>
+                <td>Acquis par décision de jury sur le RCUE (ECTS acquis)</td>
+            </tr>
             <tr>
                 <td>AJ</td>
                 <td>{{codes["AJ"]}}</td>
diff --git a/misc/sco_archive_exemple.py b/misc/sco_archive_exemple.py
index 38f35e106..12184c7ca 100644
--- a/misc/sco_archive_exemple.py
+++ b/misc/sco_archive_exemple.py
@@ -1,5 +1,4 @@
 # -*- coding: utf-8 -*-
-# -*- coding: utf-8 -*-
 
 ##############################################################################
 #
-- 
GitLab