diff --git a/app/models/formsemestre.py b/app/models/formsemestre.py index 185e18a4ff1e699dddd55d61256e1727441dc043..34d34aad97fd2cf9a26f43034a7f87ec3ad6c215 100644 --- a/app/models/formsemestre.py +++ b/app/models/formsemestre.py @@ -1063,10 +1063,16 @@ class FormSemestre(models.ScoDocModel): return inscr if self.capacite_accueil is not None: - inscriptions = self.get_inscrits(etats={scu.INSCRIT, scu.DEMISSION}) + # tous sauf démissionnaires: + inscriptions = self.get_inscrits(etats={scu.INSCRIT, scu.DEF}) if len(inscriptions) >= self.capacite_accueil: raise ScoValueError( - f"Semestre {self.titre} complet: {len(self.inscriptions)} inscrits" + f"Semestre {self.titre} complet : {len(self.inscriptions)} inscrits", + dest_url=url_for( + "notes.formsemestre_status", + scodoc_dept=g.scodoc_dept, + formsemestre_id=self.id, + ), ) inscr = FormSemestreInscription( diff --git a/app/scodoc/sco_formsemestre_edit.py b/app/scodoc/sco_formsemestre_edit.py index 87cfadd005767b37fda56c2f1046f789d6920768..f2b33b30e162ea8068cb32938b42c96b9306f73f 100644 --- a/app/scodoc/sco_formsemestre_edit.py +++ b/app/scodoc/sco_formsemestre_edit.py @@ -370,7 +370,7 @@ def do_formsemestre_createwithmodules(edit=False, formsemestre: FormSemestre = N { "title": "Capacité d'accueil", "size": 4, - "explanation": "laisser vide si pas de limite au nombre d'inscrits non démissionnaires", + "explanation": "nombre max d'inscrits (hors démissionnaires). Laisser vide si pas de limite.", "type": "int", "allow_null": True, }, @@ -858,6 +858,14 @@ def do_formsemestre_createwithmodules(edit=False, formsemestre: FormSemestre = N ): msg = '<ul class="tf-msg"><li class="tf-msg">Code étape Apogée manquant</li></ul>' + # check capacité accueil si indiquée + if edit and isinstance(tf[2]["capacite_accueil"], int): + new_capacite_accueil = tf[2]["capacite_accueil"] + inscriptions = formsemestre.get_inscrits(etats={scu.INSCRIT, scu.DEF}) + if len(inscriptions) > new_capacite_accueil: + msg = f"""<ul class="tf-msg"><li class="tf-msg">Capacité d'accueil insuffisante + (il y a {len(inscriptions)} inscrits non démissionaires)</li></ul>""" + if tf[0] == 0 or msg: return f"""<p>Formation <a class="discretelink" href="{ url_for("notes.ue_table", scodoc_dept=g.scodoc_dept, diff --git a/app/scodoc/sco_formsemestre_inscriptions.py b/app/scodoc/sco_formsemestre_inscriptions.py index 746fee7db2cbaecd9cc7fbe44ab8db20b36a118e..f77d1d85e931328f35dc88b966e116a3e4d0c760 100644 --- a/app/scodoc/sco_formsemestre_inscriptions.py +++ b/app/scodoc/sco_formsemestre_inscriptions.py @@ -439,7 +439,7 @@ def formsemestre_inscription_with_modules( H.append("<ul>") for s in others: H.append( - f"""<li><a href="{ + f"""<li><a class="stdlink" href="{ url_for("notes.formsemestre_desinscription", scodoc_dept=g.scodoc_dept, formsemestre_id=s["formsemestre_id"], etudid=etudid ) }" class="stdlink">désinscrire de {s["titreannee"]} @@ -447,13 +447,13 @@ def formsemestre_inscription_with_modules( ) H.append("</ul>") H.append( - f"""<p><a href="{ url_for( "notes.formsemestre_inscription_with_modules", - scodoc_dept=g.scodoc_dept, etudid=etudid, formsemestre_id=formsemestre_id, - multiple_ok=1, - group_ids=group_ids ) + f"""<p><a class="stdlink" href="{ + url_for( "notes.formsemestre_inscription_with_modules", + scodoc_dept=g.scodoc_dept, etudid=etudid, formsemestre_id=formsemestre_id, + multiple_ok=1, + group_ids=group_ids ) }">Continuer quand même l'inscription</a> </p>""" - # was sco_groups.make_query_groups(group_ids) ) return "\n".join(H) + footer #