forked from ScoDoc/ScoDoc
Fix: check suppression formation/ue
This commit is contained in:
parent
c890e21ed0
commit
bde51dc639
@ -75,6 +75,15 @@ class UniteEns(db.Model):
|
|||||||
|
|
||||||
return sco_edit_ue.ue_is_locked(self.id)
|
return sco_edit_ue.ue_is_locked(self.id)
|
||||||
|
|
||||||
|
def can_be_deleted(self) -> bool:
|
||||||
|
"""True si l'UE n'est pas utilisée dans des formsemestre
|
||||||
|
et n'a pas de module rattachés
|
||||||
|
"""
|
||||||
|
# "pas un seul module de cette UE n'a de modimpl...""
|
||||||
|
return (self.modules.count() == 0) or not any(
|
||||||
|
m.modimpls.all() for m in self.modules
|
||||||
|
)
|
||||||
|
|
||||||
def guess_semestre_idx(self) -> None:
|
def guess_semestre_idx(self) -> None:
|
||||||
"""Lorsqu'on prend une ancienne formation non APC,
|
"""Lorsqu'on prend une ancienne formation non APC,
|
||||||
les UE n'ont pas d'indication de semestre.
|
les UE n'ont pas d'indication de semestre.
|
||||||
|
@ -66,8 +66,9 @@ def formation_delete(formation_id=None, dialog_confirmed=False):
|
|||||||
sems = sco_formsemestre.do_formsemestre_list({"formation_id": formation_id})
|
sems = sco_formsemestre.do_formsemestre_list({"formation_id": formation_id})
|
||||||
if sems:
|
if sems:
|
||||||
H.append(
|
H.append(
|
||||||
"""<p class="warning">Impossible de supprimer cette formation, car les sessions suivantes l'utilisent:</p>
|
"""<p class="warning">Impossible de supprimer cette formation,
|
||||||
<ul>"""
|
car les sessions suivantes l'utilisent:</p>
|
||||||
|
<ul>"""
|
||||||
)
|
)
|
||||||
for sem in sems:
|
for sem in sems:
|
||||||
H.append(
|
H.append(
|
||||||
|
@ -142,14 +142,6 @@ def do_ue_create(args):
|
|||||||
return ue_id
|
return ue_id
|
||||||
|
|
||||||
|
|
||||||
def can_delete_ue(ue: UniteEns) -> bool:
|
|
||||||
"""True si l'UE n'est pas utilisée dans des formsemestre
|
|
||||||
et n'a pas de module rattachés
|
|
||||||
"""
|
|
||||||
# "pas un seul module de cette UE n'a de modimpl...""
|
|
||||||
return (ue.modules.count() == 0) and not any(m.modimpls.all() for m in ue.modules)
|
|
||||||
|
|
||||||
|
|
||||||
def do_ue_delete(ue_id, delete_validations=False, force=False):
|
def do_ue_delete(ue_id, delete_validations=False, force=False):
|
||||||
"delete UE and attached matieres (but not modules)"
|
"delete UE and attached matieres (but not modules)"
|
||||||
from app.scodoc import sco_formations
|
from app.scodoc import sco_formations
|
||||||
@ -158,9 +150,9 @@ def do_ue_delete(ue_id, delete_validations=False, force=False):
|
|||||||
ue = UniteEns.query.get_or_404(ue_id)
|
ue = UniteEns.query.get_or_404(ue_id)
|
||||||
formation_id = ue.formation_id
|
formation_id = ue.formation_id
|
||||||
semestre_idx = ue.semestre_idx
|
semestre_idx = ue.semestre_idx
|
||||||
if not can_delete_ue(ue):
|
if not ue.can_be_deleted():
|
||||||
raise ScoNonEmptyFormationObject(
|
raise ScoNonEmptyFormationObject(
|
||||||
"UE",
|
f"UE (id={ue.id}, dud)",
|
||||||
msg=ue.titre,
|
msg=ue.titre,
|
||||||
dest_url=url_for(
|
dest_url=url_for(
|
||||||
"notes.ue_table",
|
"notes.ue_table",
|
||||||
@ -540,9 +532,9 @@ def ue_delete(ue_id=None, delete_validations=False, dialog_confirmed=False):
|
|||||||
semestre_idx=ue.semestre_idx,
|
semestre_idx=ue.semestre_idx,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
if not can_delete_ue(ue):
|
if not ue.can_be_deleted():
|
||||||
raise ScoNonEmptyFormationObject(
|
raise ScoNonEmptyFormationObject(
|
||||||
"UE",
|
f"UE",
|
||||||
msg=ue.titre,
|
msg=ue.titre,
|
||||||
dest_url=url_for(
|
dest_url=url_for(
|
||||||
"notes.ue_table",
|
"notes.ue_table",
|
||||||
|
Loading…
Reference in New Issue
Block a user