diff --git a/app/scodoc/sco_edit_ue.py b/app/scodoc/sco_edit_ue.py
index 17cdc8c07..061bf43c6 100644
--- a/app/scodoc/sco_edit_ue.py
+++ b/app/scodoc/sco_edit_ue.py
@@ -601,7 +601,12 @@ def ue_table(formation_id=None, semestre_idx=1, msg=""): # was ue_list
_add_ue_semestre_id(ues_externes, is_apc)
ues.sort(key=lambda u: (u["semestre_id"], u["numero"]))
ues_externes.sort(key=lambda u: (u["semestre_id"], u["numero"]))
- has_duplicate_ue_codes = len(set([ue["ue_code"] for ue in ues])) != len(ues)
+ # Codes dupliqués (pour aider l'utilisateur)
+ seen = set()
+ duplicated_codes = {
+ ue["ue_code"] for ue in ues if ue["ue_code"] in seen or seen.add(ue["ue_code"])
+ }
+ ues_with_duplicated_code = [ue for ue in ues if ue["ue_code"] in duplicated_codes]
has_perm_change = current_user.has_permission(Permission.ScoChangeFormation)
# editable = (not locked) and has_perm_change
@@ -664,11 +669,17 @@ du programme" (menu "Semestre") si vous avez un semestre en cours);
if msg:
H.append('
' + msg + "
")
- if has_duplicate_ue_codes:
+ if ues_with_duplicated_code:
H.append(
- """Attention: plusieurs UE de cette
- formation ont le même code. Il faut corriger cela ci-dessous,
- sinon les calculs d'ECTS seront erronés !
"""
+ f"""Attention: plusieurs UE de cette
+ formation ont le même code : {
+ ', '.join([
+ '' + ue["acronyme"] + " (code " + ue["ue_code"] + ")"
+ for ue in ues_with_duplicated_code ])
+ }.
+ Il faut corriger cela, sinon les capitalisations et ECTS seront
+ erronés ! """
)
# Description de la formation
@@ -930,8 +941,8 @@ def _ue_table_ues(
if cur_ue_semestre_id != ue["semestre_id"]:
cur_ue_semestre_id = ue["semestre_id"]
- if iue > 0:
- H.append("")
+ # if iue > 0:
+ # H.append("")
if ue["semestre_id"] == sco_codes_parcours.UE_SEM_DEFAULT:
lab = "Pas d'indication de semestre:"
else:
@@ -953,7 +964,6 @@ def _ue_table_ues(
)
else:
H.append(arrow_none)
- iue += 1
ue["acro_titre"] = str(ue["acronyme"])
if ue["titre"] != ue["acronyme"]:
ue["acro_titre"] += " " + str(ue["titre"])
@@ -1001,6 +1011,14 @@ def _ue_table_ues(
delete_disabled_icon,
)
)
+ if (iue >= len(ues) - 1) or ue["semestre_id"] != ues[iue + 1]["semestre_id"]:
+ H.append(
+ f""""""
+ )
+ iue += 1
+
return "\n".join(H)
diff --git a/app/scodoc/sco_formsemestre_validation.py b/app/scodoc/sco_formsemestre_validation.py
index f755bb118..987dc962f 100644
--- a/app/scodoc/sco_formsemestre_validation.py
+++ b/app/scodoc/sco_formsemestre_validation.py
@@ -1250,7 +1250,7 @@ def check_formation_ues(formation_id):
for ue in ues:
# formsemestres utilisant cette ue ?
sems = ndb.SimpleDictFetch(
- """SELECT DISTINCT sem.id AS formsemestre_id, sem.*
+ """SELECT DISTINCT sem.id AS formsemestre_id, sem.*
FROM notes_formsemestre sem, notes_modules mod, notes_moduleimpl mi
WHERE sem.formation_id = %(formation_id)s
AND mod.id = mi.module_id
@@ -1269,11 +1269,11 @@ def check_formation_ues(formation_id):
return "", {}
# Genere message HTML:
H = [
- """Attention: les UE suivantes de cette formation
+ """
Attention: les UE suivantes de cette formation
sont utilisées dans des
- semestres de rangs différents (eg S1 et S3).
Cela peut engendrer des problèmes pour
- la capitalisation des UE. Il serait préférable d'essayer de rectifier cette situation:
- soit modifier le programme de la formation (définir des UE dans chaque semestre),
+ semestres de rangs différents (eg S1 et S3).
Cela peut engendrer des problèmes pour
+ la capitalisation des UE. Il serait préférable d'essayer de rectifier cette situation:
+ soit modifier le programme de la formation (définir des UE dans chaque semestre),
soit veiller à saisir le bon indice de semestre dans le menu lors de la validation d'une
UE extérieure.
@@ -1286,7 +1286,11 @@ def check_formation_ues(formation_id):
for x in ue_multiples[ue["ue_id"]]
]
slist = ", ".join(
- ["%(titreannee)s (semestre %(semestre_id)s)" % s for s in sems]
+ [
+ """%(titreannee)s (semestre %(semestre_id)s)"""
+ % s
+ for s in sems
+ ]
)
H.append("- %s : %s
" % (ue["acronyme"], slist))
H.append("
")
diff --git a/app/static/css/scodoc.css b/app/static/css/scodoc.css
index e88930857..ecd8b0ab0 100644
--- a/app/static/css/scodoc.css
+++ b/app/static/css/scodoc.css
@@ -1707,6 +1707,9 @@ ul.notes_ue_list {
li.notes_ue_list {
margin-top: 9px;
list-style-type: none;
+ border: 1px solid maroon;
+ border-radius: 10px;
+ padding-bottom: 5px;
}
span.ue_type_1 {
color: green;
@@ -1749,6 +1752,7 @@ ul.notes_matiere_list {
background-color: rgb(220,220,220);
font-weight: normal;
font-style: italic;
+ border-top: 1px solid maroon;
}
ul.notes_module_list {
diff --git a/sco_version.py b/sco_version.py
index 96ef7d1da..9e02cffd1 100644
--- a/sco_version.py
+++ b/sco_version.py
@@ -1,7 +1,7 @@
# -*- mode: python -*-
# -*- coding: utf-8 -*-
-SCOVERSION = "9.1.60"
+SCOVERSION = "9.1.61"
SCONAME = "ScoDoc"