forked from ScoDoc/ScoDoc
Vérification unicité UE bonus / semestre
This commit is contained in:
parent
29d295db61
commit
154dc5283e
@ -289,7 +289,10 @@ def module_create(
|
|||||||
"type": "int",
|
"type": "int",
|
||||||
"title": "UE de rattachement",
|
"title": "UE de rattachement",
|
||||||
"explanation": "utilisée notamment pour les malus",
|
"explanation": "utilisée notamment pour les malus",
|
||||||
"labels": [f"{u.acronyme} {u.titre}" for u in ues],
|
"labels": [
|
||||||
|
f"S{u.semestre_idx if u.semestre_idx is not None else '.'} / {u.acronyme} {u.titre}"
|
||||||
|
for u in ues
|
||||||
|
],
|
||||||
"allowed_values": [u.id for u in ues],
|
"allowed_values": [u.id for u in ues],
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
@ -118,10 +118,16 @@ def formsemestre_editwithmodules(formsemestre_id):
|
|||||||
vals = scu.get_request_args()
|
vals = scu.get_request_args()
|
||||||
if not vals.get("tf_submitted", False):
|
if not vals.get("tf_submitted", False):
|
||||||
H.append(
|
H.append(
|
||||||
"""<p class="help">Seuls les modules cochés font partie de ce semestre. Pour les retirer, les décocher et appuyer sur le bouton "modifier".
|
"""<p class="help">Seuls les modules cochés font partie de ce semestre.
|
||||||
</p>
|
Pour les retirer, les décocher et appuyer sur le bouton "modifier".
|
||||||
<p class="help">Attention : s'il y a déjà des évaluations dans un module, il ne peut pas être supprimé !</p>
|
</p>
|
||||||
<p class="help">Les modules ont toujours un responsable. Par défaut, c'est le directeur des études.</p>"""
|
<p class="help">Attention : s'il y a déjà des évaluations dans un module,
|
||||||
|
il ne peut pas être supprimé !</p>
|
||||||
|
<p class="help">Les modules ont toujours un responsable.
|
||||||
|
Par défaut, c'est le directeur des études.</p>
|
||||||
|
<p class="help">Un semestre ne peut comporter qu'une seule UE "bonus
|
||||||
|
sport/culture"</p>
|
||||||
|
"""
|
||||||
)
|
)
|
||||||
|
|
||||||
return "\n".join(H) + html_sco_header.sco_footer()
|
return "\n".join(H) + html_sco_header.sco_footer()
|
||||||
@ -739,6 +745,7 @@ def do_formsemestre_createwithmodules(edit=False):
|
|||||||
# Modules sélectionnés:
|
# Modules sélectionnés:
|
||||||
# (retire le "MI" du début du nom de champs)
|
# (retire le "MI" du début du nom de champs)
|
||||||
module_ids_checked = [int(x[2:]) for x in tf[2]["tf-checked"]]
|
module_ids_checked = [int(x[2:]) for x in tf[2]["tf-checked"]]
|
||||||
|
_formsemestre_check_ue_bonus_unicity(module_ids_checked)
|
||||||
if not edit:
|
if not edit:
|
||||||
if formation.is_apc():
|
if formation.is_apc():
|
||||||
_formsemestre_check_module_list(
|
_formsemestre_check_module_list(
|
||||||
@ -882,6 +889,18 @@ def _formsemestre_check_module_list(module_ids, semestre_idx):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _formsemestre_check_ue_bonus_unicity(module_ids):
|
||||||
|
"""Vérifie qu'il n'y a qu'une seule UE bonus associée aux modules choisis"""
|
||||||
|
ues = [Module.query.get_or_404(module_id).ue for module_id in module_ids]
|
||||||
|
ues_bonus = {ue.id for ue in ues if ue.type == sco_codes_parcours.UE_SPORT}
|
||||||
|
if len(ues_bonus) > 1:
|
||||||
|
raise ScoValueError(
|
||||||
|
"""Les modules de bonus sélectionnés ne sont pas tous dans la même UE bonus.
|
||||||
|
Changez la sélection ou modifiez la structure du programme de formation.""",
|
||||||
|
dest_url="javascript:history.back();",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def formsemestre_delete_moduleimpls(formsemestre_id, module_ids_to_del):
|
def formsemestre_delete_moduleimpls(formsemestre_id, module_ids_to_del):
|
||||||
"""Delete moduleimpls
|
"""Delete moduleimpls
|
||||||
module_ids_to_del: list of module_id (warning: not moduleimpl)
|
module_ids_to_del: list of module_id (warning: not moduleimpl)
|
||||||
|
Loading…
Reference in New Issue
Block a user