forked from ScoDoc/ScoDoc
Fix parcours DUT si étudiant désinscrit. Cosmetic/cleaning.
This commit is contained in:
parent
26b59ee547
commit
068b6a5c6a
@ -261,7 +261,7 @@ class ScoDocSiteConfig(db.Model):
|
||||
|
||||
@classmethod
|
||||
def is_bul_pdf_disabled(cls) -> bool:
|
||||
"""True si on interdit les exports PDF des bulltins"""
|
||||
"""True si on interdit les exports PDF des bulletins"""
|
||||
cfg = ScoDocSiteConfig.query.filter_by(name="disable_bul_pdf").first()
|
||||
return cfg is not None and cfg.value
|
||||
|
||||
|
@ -77,7 +77,7 @@ class DecisionSem(object):
|
||||
def __init__(
|
||||
self,
|
||||
code_etat=None,
|
||||
code_etat_ues={}, # { ue_id : code }
|
||||
code_etat_ues: dict = None, # { ue_id : code }
|
||||
new_code_prev="",
|
||||
explication="", # aide pour le jury
|
||||
formsemestre_id_utilise_pour_compenser=None, # None si code != ADC
|
||||
@ -86,7 +86,7 @@ class DecisionSem(object):
|
||||
rule_id=None, # id regle correspondante
|
||||
):
|
||||
self.code_etat = code_etat
|
||||
self.code_etat_ues = code_etat_ues
|
||||
self.code_etat_ues = code_etat_ues or {}
|
||||
self.new_code_prev = new_code_prev
|
||||
self.explication = explication
|
||||
self.formsemestre_id_utilise_pour_compenser = (
|
||||
@ -114,7 +114,6 @@ class DecisionSem(object):
|
||||
|
||||
class SituationEtudCursus:
|
||||
"Semestre dans un cursus"
|
||||
pass
|
||||
|
||||
|
||||
class SituationEtudCursusClassic(SituationEtudCursus):
|
||||
@ -198,7 +197,7 @@ class SituationEtudCursusClassic(SituationEtudCursus):
|
||||
fiduc = None
|
||||
# Detection d'incoherences (regles BUG)
|
||||
if rule.conclusion[5] == BUG:
|
||||
log("get_possible_choices: inconsistency: state=%s" % str(state))
|
||||
log(f"get_possible_choices: inconsistency: state={state}")
|
||||
#
|
||||
# valid_semestre = code_semestre_validant(rule.conclusion[0])
|
||||
choices.append(
|
||||
@ -224,9 +223,9 @@ class SituationEtudCursusClassic(SituationEtudCursus):
|
||||
else:
|
||||
next_s = self._get_next_semestre_id()
|
||||
# log('s=%s next=%s' % (s, next_s))
|
||||
SA = self.parcours.SESSION_ABBRV # 'S' ou 'A'
|
||||
sess_abrv = self.parcours.SESSION_ABBRV # 'S' ou 'A'
|
||||
if self.semestre_non_terminal and not self.all_other_validated():
|
||||
passage = "Passe en %s%s" % (SA, next_s)
|
||||
passage = f"Passe en {sess_abrv}{next_s}"
|
||||
else:
|
||||
passage = "Formation terminée"
|
||||
if devenir == NEXT:
|
||||
@ -234,29 +233,23 @@ class SituationEtudCursusClassic(SituationEtudCursus):
|
||||
elif devenir == REO:
|
||||
return "Réorienté"
|
||||
elif devenir == REDOANNEE:
|
||||
return "Redouble année (recommence %s%s)" % (SA, (s_idx - 1))
|
||||
return f"Redouble année (recommence {sess_abrv}{s_idx - 1})"
|
||||
elif devenir == REDOSEM:
|
||||
return "Redouble semestre (recommence en %s%s)" % (SA, s_idx)
|
||||
return f"Redouble semestre (recommence en {sess_abrv}{s_idx})"
|
||||
elif devenir == RA_OR_NEXT:
|
||||
return passage + ", ou redouble année (en %s%s)" % (SA, (s_idx - 1))
|
||||
return passage + ", ou redouble année (en {sess_abrv}{s_idx - 1})"
|
||||
elif devenir == RA_OR_RS:
|
||||
return "Redouble semestre %s%s, ou redouble année (en %s%s)" % (
|
||||
SA,
|
||||
s_idx,
|
||||
SA,
|
||||
s_idx - 1,
|
||||
)
|
||||
return f"""Redouble semestre {sess_abrv}{s_idx}, ou redouble année (en {
|
||||
sess_abrv}{s_idx - 1})"""
|
||||
elif devenir == RS_OR_NEXT:
|
||||
return passage + ", ou semestre %s%s" % (SA, s_idx)
|
||||
return f"{passage}, ou semestre {sess_abrv}{s_idx}"
|
||||
elif devenir == NEXT_OR_NEXT2:
|
||||
return passage + ", ou en semestre %s%s" % (
|
||||
SA,
|
||||
s_idx + 2,
|
||||
) # coherent avec get_next_semestre_ids
|
||||
# coherent avec get_next_semestre_ids
|
||||
return f"{passage}, ou en semestre {sess_abrv}{s_idx + 2}"
|
||||
elif devenir == NEXT2:
|
||||
return "Passe en %s%s" % (SA, s_idx + 2)
|
||||
return f"Passe en {sess_abrv}{s_idx + 2}"
|
||||
else:
|
||||
log("explique_devenir: code devenir inconnu: %s" % devenir)
|
||||
log(f"explique_devenir: code devenir inconnu: {devenir}")
|
||||
return "Code devenir inconnu !"
|
||||
|
||||
def all_other_validated(self):
|
||||
@ -364,7 +357,7 @@ class SituationEtudCursusClassic(SituationEtudCursus):
|
||||
l'étudiant (quelle que soit la formation), le plus ancien en tête"""
|
||||
return self.sems
|
||||
|
||||
def get_cursus_descr(self, filter_futur=False, filter_formation_code=False):
|
||||
def get_cursus_descr(self, filter_futur=False, filter_formation_code=False) -> str:
|
||||
"""Description brève du parcours: "S1, S2, ..."
|
||||
Si filter_futur, ne mentionne pas les semestres qui sont après le semestre courant.
|
||||
Si filter_formation_code, restreint aux semestres de même code formation que le courant.
|
||||
@ -375,7 +368,7 @@ class SituationEtudCursusClassic(SituationEtudCursus):
|
||||
for formsemestre in self.formsemestres:
|
||||
inscription = formsemestre.etuds_inscriptions.get(self.etud.id)
|
||||
if inscription is None:
|
||||
raise ValueError("Etudiant non inscrit au semestre") # bug
|
||||
return "non inscrit" # !!!
|
||||
if inscription.etat == scu.DEMISSION:
|
||||
dem = " (dem.)"
|
||||
else:
|
||||
@ -461,7 +454,8 @@ class SituationEtudCursusClassic(SituationEtudCursus):
|
||||
break
|
||||
if not cur or cur.id != self.formsemestre_id:
|
||||
log(
|
||||
f"*** SituationEtudCursus: search_prev: cur not found (formsemestre_id={self.formsemestre_id}, etudid={self.etudid})"
|
||||
f"""*** SituationEtudCursus: search_prev: cur not found (formsemestre_id={
|
||||
self.formsemestre_id}, etudid={self.etudid})"""
|
||||
)
|
||||
return None # pas de semestre courant !!!
|
||||
# Cherche semestre antérieur de même formation (code) et semestre_id precedent
|
||||
@ -630,7 +624,8 @@ class SituationEtudCursusClassic(SituationEtudCursus):
|
||||
self.prev_formsemestre.id,
|
||||
self.etudid,
|
||||
decision.new_code_prev,
|
||||
decision.assiduite, # attention: en toute rigueur il faudrait utiliser une indication de l'assiduite au sem. precedent, que nous n'avons pas...
|
||||
decision.assiduite, # attention: en toute rigueur il faudrait utiliser
|
||||
# une indication de l'assiduite au sem. precedent, que nous n'avons pas...
|
||||
)
|
||||
|
||||
sco_cache.invalidate_formsemestre(
|
||||
@ -760,14 +755,6 @@ class SituationEtudCursusECTS(SituationEtudCursusClassic):
|
||||
|
||||
# -------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
def int_or_null(s):
|
||||
if s == "":
|
||||
return None
|
||||
else:
|
||||
return int(s)
|
||||
|
||||
|
||||
_scolar_formsemestre_validation_editor = ndb.EditableTable(
|
||||
"scolar_formsemestre_validation",
|
||||
"formsemestre_validation_id",
|
||||
|
@ -2587,7 +2587,7 @@ def sco_bug_report_form():
|
||||
|
||||
form = CreateBugReport()
|
||||
if request.method == "POST" and form.cancel.data: # cancel button
|
||||
return flask.redirect(url_for("scodoc.index"))
|
||||
return flask.redirect(url_for("scolar.index_html", scodoc_dept=g.scodoc_dept))
|
||||
if form.validate_on_submit():
|
||||
r = sco_bug_report.sco_bug_report(
|
||||
form.title.data, form.message.data, form.etab.data, form.include_dump.data
|
||||
|
Loading…
Reference in New Issue
Block a user