diff --git a/app/but/jury_but.py b/app/but/jury_but.py
index 273d1451..90978a23 100644
--- a/app/but/jury_but.py
+++ b/app/but/jury_but.py
@@ -94,6 +94,7 @@ from app.scodoc import sco_codes_parcours as sco_codes
from app.scodoc.sco_codes_parcours import (
BUT_CODES_ORDERED,
CODES_RCUE_VALIDES,
+ CODES_UE_CAPITALISANTS,
CODES_UE_VALIDES,
RED,
UE_STANDARD,
@@ -566,7 +567,7 @@ class DecisionsProposeesAnnee(DecisionsProposees):
# l'UE paire DOIT être capitalisée pour être utilisée
if (
self.decisions_ues[ue_pair.id].code_valide
- not in CODES_UE_VALIDES
+ not in CODES_UE_CAPITALISANTS
):
continue # ignore cette UE antérieure non capitalisée
# et l'UE impaire doit être actuellement meilleure que
diff --git a/app/scodoc/sco_codes_parcours.py b/app/scodoc/sco_codes_parcours.py
index df5484fb..013f59cc 100644
--- a/app/scodoc/sco_codes_parcours.py
+++ b/app/scodoc/sco_codes_parcours.py
@@ -196,6 +196,8 @@ CODES_SEM_REO = {NAR} # reorientation
CODES_UE_VALIDES_DE_DROIT = {ADM, CMP} # validation "de droit"
CODES_UE_VALIDES = CODES_UE_VALIDES_DE_DROIT | {ADJ, ADJR}
"UE validée"
+CODES_UE_CAPITALISANTS = {ADM}
+"UE capitalisée"
CODES_RCUE_VALIDES_DE_DROIT = {ADM, CMP}
CODES_RCUE_VALIDES = CODES_RCUE_VALIDES_DE_DROIT | {ADJ}
diff --git a/app/templates/but/documentation_codes_jury.j2 b/app/templates/but/documentation_codes_jury.j2
index f54807f2..9cd90fd1 100644
--- a/app/templates/but/documentation_codes_jury.j2
+++ b/app/templates/but/documentation_codes_jury.j2
@@ -174,7 +174,7 @@
ADM |
{{codes["ADM"]}} |
VAL |
- Acquis (ECTS acquis) |
+ Acquis (ECTS acquis, UE capitalisée) |
CMP |
diff --git a/sco_version.py b/sco_version.py
index 64c7dc2c..b4ee5fb4 100644
--- a/sco_version.py
+++ b/sco_version.py
@@ -1,7 +1,7 @@
# -*- mode: python -*-
# -*- coding: utf-8 -*-
-SCOVERSION = "9.4.38"
+SCOVERSION = "9.4.39"
SCONAME = "ScoDoc"
diff --git a/tests/unit/cursus_but_geii_lyon.yaml b/tests/unit/cursus_but_geii_lyon.yaml
index 8d64c976..38349ac9 100644
--- a/tests/unit/cursus_but_geii_lyon.yaml
+++ b/tests/unit/cursus_but_geii_lyon.yaml
@@ -1,6 +1,9 @@
# Tests unitaires jury BUT - IUT Lyon GEII
# Essais avec un BUT GEII, 2 UE en BUT1 / 4 UE en BUT2-BUT3 et 3 parcours
# Contrib Pascal B.
+# Voir tests/unit/test_but_jury.py
+# pytest --pdb -m lyon tests/unit/test_but_jury.py
+
ReferentielCompetences:
filename: but-GEII-05012022-081639.xml
@@ -1103,3 +1106,81 @@ Etudiants:
rcue:
moy_rcue: 11.25
est_compensable: False
+ geii88:
+ prenom: M88
+ civilite: F
+ formsemestres:
+ S1:
+ notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
+ "S1.1": 9.2200
+ "S1.2": 7.8200
+ attendu: # les codes jury que l'on doit vérifier
+ deca:
+ passage_de_droit: False
+ nb_competences: 2
+ nb_rcue_annee: 0
+ decisions_ues:
+ "UE11":
+ codes: [ "AJ", "..." ]
+ code_valide: AJ
+ decision_jury: ADJR
+ moy_ue: 9.2200
+ "UE12":
+ codes: [ "AJ", "..." ]
+ code_valide: AJ
+ decision_jury: AJ
+ moy_ue: 7.8200
+ S2:
+ notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
+ "S2.1": 9.9600
+ "S2.2": 9.5600
+ attendu: # les codes jury que l'on doit vérifier
+ deca:
+ passage_de_droit: False
+ nb_competences: 2
+ nb_rcue_annee: 2
+ valide_moitie_rcue: False
+ codes: [ "RED", "..." ]
+ decisions_ues:
+ "UE21":
+ codes: [ "AJ", "..." ]
+ code_valide: AJ
+ decision_jury: ADJR
+ moy_ue: 9.9600
+ "UE22":
+ codes: [ "AJ", "..." ]
+ code_valide: AJ
+ moy_ue: 9.5600
+ decisions_rcues: # on repère ici les RCUE par l'acronyme de leur 1ere UE (donc du S1)
+ "UE11":
+ code_valide: AJ
+ decision_jury: ADJ
+ rcue:
+ moy_rcue: 9.5900
+ est_compensable: False
+ "UE12":
+ code_valide: AJ
+ decision_jury: AJ # ? à confirmer, il était écrit "False"
+ rcue:
+ moy_rcue: 8.6900
+ est_compensable: False
+ decision_annee: RED
+ S1-red:
+ notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
+ "S1.1": 14.0100
+ "S1.2": 13.5000
+ attendu: # les codes jury que l'on doit vérifier
+ deca:
+ passage_de_droit: False
+ nb_competences: 2
+ nb_rcue_annee: 0
+ decisions_ues:
+ "UE11":
+ codes: [ "ADM", "..." ]
+ code_valide: ADM
+ "UE12":
+ codes: [ "ADM", "..." ]
+ code_valide: ADM
+ moy_ue: 13.5000
+ # decisions_rcues: aucun RCUE en S1-red
+ decision_annee: AJ