forked from ScoDoc/ScoDoc
Edition programmes (APC): verrouiller par indice de semestre #599
This commit is contained in:
parent
789449b620
commit
597be47afb
@ -112,9 +112,14 @@ class Formation(db.Model):
|
|||||||
df_cache.ModuleCoefsCache.set(key, modules_coefficients)
|
df_cache.ModuleCoefsCache.set(key, modules_coefficients)
|
||||||
return modules_coefficients
|
return modules_coefficients
|
||||||
|
|
||||||
def has_locked_sems(self):
|
def has_locked_sems(self, semestre_idx: int = None):
|
||||||
"True if there is a locked formsemestre in this formation"
|
"""True if there is a locked formsemestre in this formation.
|
||||||
return len(self.formsemestres.filter_by(etat=False).all()) > 0
|
If semestre_idx is specified, check only this index.
|
||||||
|
"""
|
||||||
|
query = self.formsemestres.filter_by(etat=False)
|
||||||
|
if semestre_idx is not None:
|
||||||
|
query = query.filter_by(semestre_id=semestre_idx)
|
||||||
|
return len(query.all()) > 0
|
||||||
|
|
||||||
def invalidate_module_coefs(self, semestre_idx: int = None):
|
def invalidate_module_coefs(self, semestre_idx: int = None):
|
||||||
"""Invalide le cache des coefficients de modules.
|
"""Invalide le cache des coefficients de modules.
|
||||||
|
@ -161,11 +161,11 @@ def formation_edit(formation_id=None, create=False):
|
|||||||
is_locked = False
|
is_locked = False
|
||||||
else:
|
else:
|
||||||
# edit an existing formation
|
# edit an existing formation
|
||||||
F = sco_formations.formation_list(args={"formation_id": formation_id})
|
formation: Formation = Formation.query.get_or_404(formation_id)
|
||||||
if not F:
|
form_dict = formation.to_dict()
|
||||||
raise ScoValueError("formation inexistante !")
|
form_dict["commentaire"] = form_dict["commentaire"] or ""
|
||||||
initvalues = F[0]
|
initvalues = form_dict[0]
|
||||||
is_locked = sco_formations.formation_has_locked_sems(formation_id)
|
is_locked = formation.has_locked_sems(formation_id)
|
||||||
submitlabel = "Modifier les valeurs"
|
submitlabel = "Modifier les valeurs"
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(page_title="Modification d'une formation"),
|
html_sco_header.sco_header(page_title="Modification d'une formation"),
|
||||||
|
@ -643,11 +643,11 @@ def ue_table(formation_id=None, semestre_idx=1, msg=""): # was ue_list
|
|||||||
raise ScoValueError("invalid formation_id")
|
raise ScoValueError("invalid formation_id")
|
||||||
parcours = formation.get_cursus()
|
parcours = formation.get_cursus()
|
||||||
is_apc = parcours.APC_SAE
|
is_apc = parcours.APC_SAE
|
||||||
locked = formation.has_locked_sems()
|
|
||||||
if semestre_idx == "all" or semestre_idx == "":
|
if semestre_idx == "all" or semestre_idx == "":
|
||||||
semestre_idx = None
|
semestre_idx = None
|
||||||
else:
|
else:
|
||||||
semestre_idx = int(semestre_idx)
|
semestre_idx = int(semestre_idx)
|
||||||
|
locked = formation.has_locked_sems(semestre_idx)
|
||||||
semestre_ids = range(1, parcours.NB_SEM + 1)
|
semestre_ids = range(1, parcours.NB_SEM + 1)
|
||||||
# transition: on requete ici via l'ORM mais on utilise les fonctions ScoDoc7
|
# transition: on requete ici via l'ORM mais on utilise les fonctions ScoDoc7
|
||||||
# basées sur des dicts
|
# basées sur des dicts
|
||||||
|
@ -97,14 +97,6 @@ def formation_list(formation_id=None, args={}):
|
|||||||
return r
|
return r
|
||||||
|
|
||||||
|
|
||||||
def formation_has_locked_sems(formation_id): # XXX to remove
|
|
||||||
"backward compat: True if there is a locked formsemestre in this formation"
|
|
||||||
formation = Formation.query.get(formation_id)
|
|
||||||
if formation is None:
|
|
||||||
return False
|
|
||||||
return formation.has_locked_sems()
|
|
||||||
|
|
||||||
|
|
||||||
def formation_export(
|
def formation_export(
|
||||||
formation_id,
|
formation_id,
|
||||||
export_ids=False,
|
export_ids=False,
|
||||||
|
@ -197,7 +197,7 @@ def edit_modules_ue_coefs():
|
|||||||
formation = models.Formation.query.filter_by(
|
formation = models.Formation.query.filter_by(
|
||||||
formation_id=formation_id
|
formation_id=formation_id
|
||||||
).first_or_404()
|
).first_or_404()
|
||||||
locked = sco_formations.formation_has_locked_sems(formation_id)
|
locked = formation.has_locked_sems(semestre_idx)
|
||||||
if locked:
|
if locked:
|
||||||
lockicon = scu.icontag("lock32_img", title="verrouillé")
|
lockicon = scu.icontag("lock32_img", title="verrouillé")
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user