Couleurs par défaut des UEs
This commit is contained in:
parent
4469d61221
commit
a780b1e78a
@ -254,7 +254,10 @@ def ue_edit(ue_id=None, create=False, formation_id=None, default_semestre_idx=No
|
|||||||
else:
|
else:
|
||||||
ue = None
|
ue = None
|
||||||
title = "Création d'une UE"
|
title = "Création d'une UE"
|
||||||
initvalues = {"semestre_idx": default_semestre_idx}
|
initvalues = {
|
||||||
|
"semestre_idx": default_semestre_idx,
|
||||||
|
"color": ue_guess_color_default(formation_id, default_semestre_idx),
|
||||||
|
}
|
||||||
submitlabel = "Créer cette UE"
|
submitlabel = "Créer cette UE"
|
||||||
can_change_semestre_id = True
|
can_change_semestre_id = True
|
||||||
formation = Formation.query.get(formation_id)
|
formation = Formation.query.get(formation_id)
|
||||||
@ -577,14 +580,15 @@ def ue_table(formation_id=None, semestre_idx=1, msg=""): # was ue_list
|
|||||||
formation_id=formation_id, is_external=True
|
formation_id=formation_id, is_external=True
|
||||||
)
|
)
|
||||||
if is_apc:
|
if is_apc:
|
||||||
# pour faciliter la transition des anciens programmes non APC
|
# Pour faciliter la transition des anciens programmes non APC
|
||||||
for ue in ues_obj:
|
for ue in ues_obj:
|
||||||
ue.guess_semestre_idx()
|
ue.guess_semestre_idx()
|
||||||
# vérifie qu'on a bien au moins une matière dans chaque UE
|
# vérifie qu'on a bien au moins une matière dans chaque UE
|
||||||
for ue in ues_obj:
|
|
||||||
if ue.matieres.count() < 1:
|
if ue.matieres.count() < 1:
|
||||||
mat = Matiere(ue_id=ue.id)
|
mat = Matiere(ue_id=ue.id)
|
||||||
db.session.add(mat)
|
db.session.add(mat)
|
||||||
|
# donne des couleurs aux UEs crées avant
|
||||||
|
colorie_anciennes_ues(ues_obj)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
ues = [ue.to_dict() for ue in ues_obj]
|
ues = [ue.to_dict() for ue in ues_obj]
|
||||||
ues_externes = [ue.to_dict() for ue in ues_externes_obj]
|
ues_externes = [ue.to_dict() for ue in ues_externes_obj]
|
||||||
@ -1400,7 +1404,7 @@ def formation_table_recap(formation_id, format="html"):
|
|||||||
return tab.make_page(format=format)
|
return tab.make_page(format=format)
|
||||||
|
|
||||||
|
|
||||||
def ue_list_semestre_ids(ue):
|
def ue_list_semestre_ids(ue: dict):
|
||||||
"""Liste triée des numeros de semestres des modules dans cette UE
|
"""Liste triée des numeros de semestres des modules dans cette UE
|
||||||
Il est recommandable que tous les modules d'une UE aient le même indice de semestre.
|
Il est recommandable que tous les modules d'une UE aient le même indice de semestre.
|
||||||
Mais cela n'a pas toujours été le cas dans les programmes pédagogiques officiels,
|
Mais cela n'a pas toujours été le cas dans les programmes pédagogiques officiels,
|
||||||
@ -1408,3 +1412,45 @@ def ue_list_semestre_ids(ue):
|
|||||||
"""
|
"""
|
||||||
modules = sco_edit_module.module_list(args={"ue_id": ue["ue_id"]})
|
modules = sco_edit_module.module_list(args={"ue_id": ue["ue_id"]})
|
||||||
return sorted(list(set([mod["semestre_id"] for mod in modules])))
|
return sorted(list(set([mod["semestre_id"] for mod in modules])))
|
||||||
|
|
||||||
|
|
||||||
|
UE_PALETTE = [
|
||||||
|
"#EFA00B",
|
||||||
|
"#99C24D",
|
||||||
|
"#EC9192",
|
||||||
|
"#0075C4",
|
||||||
|
"#D65108",
|
||||||
|
"#DEC0F1",
|
||||||
|
"#B02E0C",
|
||||||
|
"#151E3F",
|
||||||
|
"#FB3640",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def colorie_anciennes_ues(ues: list[UniteEns]) -> None:
|
||||||
|
"""Avant ScoDoc 9.2, les ue n'avaient pas de couleurs
|
||||||
|
Met des défauts raisonnables
|
||||||
|
"""
|
||||||
|
nb_colors = len(UE_PALETTE)
|
||||||
|
index = 0
|
||||||
|
last_sem_idx = 0
|
||||||
|
for ue in ues:
|
||||||
|
if ue.semestre_idx != last_sem_idx:
|
||||||
|
last_sem_idx = ue.semestre_idx
|
||||||
|
index = 0
|
||||||
|
if ue.color is None:
|
||||||
|
ue.color = UE_PALETTE[index % nb_colors]
|
||||||
|
index += 1
|
||||||
|
db.session.add(ue)
|
||||||
|
|
||||||
|
|
||||||
|
def ue_guess_color_default(formation_id: int, default_semestre_idx: int) -> str:
|
||||||
|
"""Un code couleur pour une nouvelle UE dans ce semestre"""
|
||||||
|
nb_colors = len(UE_PALETTE)
|
||||||
|
# UE existantes dans ce semestre:
|
||||||
|
nb_ues = UniteEns.query.filter(
|
||||||
|
UniteEns.formation_id == formation_id,
|
||||||
|
UniteEns.semestre_idx == default_semestre_idx,
|
||||||
|
).count()
|
||||||
|
index = nb_ues
|
||||||
|
return UE_PALETTE[index % nb_colors]
|
||||||
|
Loading…
Reference in New Issue
Block a user