forked from ScoDoc/ScoDoc
formsemestre_inscription_with_modules: modernise code
This commit is contained in:
parent
b44cd7a575
commit
e7257bd18e
@ -304,7 +304,7 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
||||
self.admis = (self.nb_validables == self.nb_competences) and (
|
||||
self.inscription_etat == scu.INSCRIT
|
||||
)
|
||||
"vrai si l'année est réussie, tous niveaux validables"
|
||||
"vrai si l'année est réussie, tous niveaux validables ou validés par le jury"
|
||||
self.valide_moitie_rcue = self.nb_validables > (self.nb_competences // 2)
|
||||
# Peut passer si plus de la moitié validables et tous > 8
|
||||
self.passage_de_droit = self.valide_moitie_rcue and (self.nb_rcues_under_8 == 0)
|
||||
|
@ -34,7 +34,7 @@ from flask import flash, url_for, g, request
|
||||
|
||||
from app.comp import res_sem
|
||||
from app.comp.res_compat import NotesTableCompat
|
||||
from app.models import FormSemestre
|
||||
from app.models import FormSemestre, FormSemestreInscription
|
||||
from app.models.etudiants import Identite
|
||||
from app.models.groups import GroupDescr
|
||||
import app.scodoc.sco_utils as scu
|
||||
@ -371,47 +371,44 @@ def formsemestre_inscription_with_modules(
|
||||
Formulaire avec choix groupe.
|
||||
"""
|
||||
log(
|
||||
"formsemestre_inscription_with_modules: etudid=%s formsemestre_id=%s group_ids=%s"
|
||||
% (etudid, formsemestre_id, group_ids)
|
||||
f"""formsemestre_inscription_with_modules: etudid={etudid} formsemestre_id={
|
||||
formsemestre_id} group_ids={group_ids}"""
|
||||
)
|
||||
if multiple_ok:
|
||||
multiple_ok = int(multiple_ok)
|
||||
sem = sco_formsemestre.get_formsemestre(formsemestre_id)
|
||||
etud = sco_etud.get_etud_info(etudid=etudid, filled=True)[0]
|
||||
formsemestre: FormSemestre = FormSemestre.query.get_or_404(formsemestre_id)
|
||||
etud: Identite = Identite.query.get_or_404(etudid)
|
||||
if etud.dept_id != formsemestre.dept_id:
|
||||
raise ScoValueError("l'étudiant n'est pas dans ce département")
|
||||
H = [
|
||||
html_sco_header.html_sem_header(
|
||||
"Inscription de %s dans ce semestre" % etud["nomprenom"],
|
||||
f"Inscription de {etud.nomprenom} dans ce semestre",
|
||||
)
|
||||
]
|
||||
F = html_sco_header.sco_footer()
|
||||
footer = html_sco_header.sco_footer()
|
||||
# Check 1: déjà inscrit ici ?
|
||||
ins = do_formsemestre_inscription_list({"etudid": etudid})
|
||||
already = False
|
||||
for i in ins:
|
||||
if i["formsemestre_id"] == formsemestre_id:
|
||||
already = True
|
||||
if already:
|
||||
inscr = FormSemestreInscription.query.filter_by(
|
||||
etudid=etud.id, formsemestre_id=formsemestre.id
|
||||
).first()
|
||||
if inscr is not None:
|
||||
H.append(
|
||||
'<p class="warning">%s est déjà inscrit dans le semestre %s</p>'
|
||||
% (etud["nomprenom"], sem["titremois"])
|
||||
)
|
||||
H.append(
|
||||
"""<ul>
|
||||
<li><a href="%s">retour à la fiche de %s</a></li>
|
||||
<li><a href="%s">retour au tableau de bord de %s</a></li>
|
||||
</ul>"""
|
||||
% (
|
||||
url_for("scolar.ficheEtud", scodoc_dept=g.scodoc_dept, etudid=etudid),
|
||||
etud["nomprenom"],
|
||||
url_for(
|
||||
f"""
|
||||
<p class="warning">{etud.nomprenom} est déjà inscrit
|
||||
dans le semestre {formsemestre.titre_mois()}
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="{url_for("scolar.ficheEtud", scodoc_dept=g.scodoc_dept, etudid=etudid)
|
||||
}" class="stdlink">retour à la fiche de {etud.nomprenom}</a>
|
||||
</li>
|
||||
<li><a href="{url_for(
|
||||
"notes.formsemestre_status",
|
||||
scodoc_dept=g.scodoc_dept,
|
||||
formsemestre_id=formsemestre_id,
|
||||
),
|
||||
sem["titremois"],
|
||||
)}" class="stdlink">retour au tableau de bord de {formsemestre.titre_mois()}</a></li>
|
||||
</ul>
|
||||
"""
|
||||
)
|
||||
)
|
||||
return "\n".join(H) + F
|
||||
return "\n".join(H) + footer
|
||||
# Check 2: déjà inscrit dans un semestre recouvrant les même dates ?
|
||||
# Informe et propose dé-inscriptions
|
||||
others = est_inscrit_ailleurs(etudid, formsemestre_id)
|
||||
@ -419,26 +416,37 @@ def formsemestre_inscription_with_modules(
|
||||
l = []
|
||||
for s in others:
|
||||
l.append(
|
||||
'<a class="discretelink" href="formsemestre_status?formsemestre_id=%(formsemestre_id)s">%(titremois)s</a>'
|
||||
% s
|
||||
f"""<a class="discretelink" href="{
|
||||
url_for("notes.formsemestre_status",
|
||||
scodoc_dept=g.scodoc_dept, formsemestre_id=s['formsemestre_id'])
|
||||
}">{s['titremois']}</a>"""
|
||||
)
|
||||
|
||||
H.append(
|
||||
'<p class="warning">Attention: %s est déjà inscrit sur la même période dans: %s.</p>'
|
||||
% (etud["nomprenom"], ", ".join(l))
|
||||
f"""<p class="warning">Attention: {etud.nomprenom} est déjà inscrit sur
|
||||
la même période dans: {", ".join(l)}.
|
||||
</p>"""
|
||||
)
|
||||
H.append("<ul>")
|
||||
for s in others:
|
||||
H.append(
|
||||
'<li><a href="formsemestre_desinscription?formsemestre_id=%s&etudid=%s">déinscrire de %s</li>'
|
||||
% (s["formsemestre_id"], etudid, s["titreannee"])
|
||||
f"""<li><a 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"]}
|
||||
</li>"""
|
||||
)
|
||||
H.append("</ul>")
|
||||
H.append(
|
||||
"""<p><a href="formsemestre_inscription_with_modules?etudid=%s&formsemestre_id=%s&multiple_ok=1&%s">Continuer quand même l'inscription</a></p>"""
|
||||
% (etudid, formsemestre_id, sco_groups.make_query_groups(group_ids))
|
||||
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 )
|
||||
}">Continuer quand même l'inscription</a>
|
||||
</p>"""
|
||||
# was sco_groups.make_query_groups(group_ids)
|
||||
)
|
||||
return "\n".join(H) + F
|
||||
return "\n".join(H) + footer
|
||||
#
|
||||
if group_ids is not None:
|
||||
# OK, inscription
|
||||
@ -455,11 +463,10 @@ def formsemestre_inscription_with_modules(
|
||||
else:
|
||||
# formulaire choix groupe
|
||||
H.append(
|
||||
"""<form method="GET" name="groupesel" action="%s">
|
||||
<input type="hidden" name="etudid" value="%s">
|
||||
<input type="hidden" name="formsemestre_id" value="%s">
|
||||
f"""<form method="GET" name="groupesel" action="{request.base_url}">
|
||||
<input type="hidden" name="etudid" value="{etudid}">
|
||||
<input type="hidden" name="formsemestre_id" value="{formsemestre_id}">
|
||||
"""
|
||||
% (request.base_url, etudid, formsemestre_id)
|
||||
)
|
||||
|
||||
H.append(sco_groups.form_group_choice(formsemestre_id, allow_none=True))
|
||||
@ -472,7 +479,7 @@ def formsemestre_inscription_with_modules(
|
||||
</form>
|
||||
"""
|
||||
)
|
||||
return "\n".join(H) + F
|
||||
return "\n".join(H) + footer
|
||||
|
||||
|
||||
def formsemestre_inscription_option(etudid, formsemestre_id):
|
||||
@ -485,7 +492,7 @@ def formsemestre_inscription_option(etudid, formsemestre_id):
|
||||
formsemestre = FormSemestre.query.get_or_404(formsemestre_id)
|
||||
nt: NotesTableCompat = res_sem.load_formsemestre_results(formsemestre)
|
||||
|
||||
F = html_sco_header.sco_footer()
|
||||
footer = html_sco_header.sco_footer()
|
||||
H = [
|
||||
html_sco_header.sco_header()
|
||||
+ "<h2>Inscription de %s aux modules de %s (%s - %s)</h2>"
|
||||
@ -594,12 +601,19 @@ function chkbx_select(field_id, state) {
|
||||
)
|
||||
if tf[0] == 0:
|
||||
H.append(
|
||||
"""<p>Voici la liste des modules du semestre choisi.</p><p>
|
||||
Les modules cochés sont ceux dans lesquels l'étudiant est inscrit. Vous pouvez l'inscrire ou le désincrire d'un ou plusieurs modules.</p>
|
||||
<p>Attention: cette méthode ne devrait être utilisée que pour les modules <b>optionnels</b> (ou les activités culturelles et sportives) et pour désinscrire les étudiants dispensés (UE validées).</p>
|
||||
"""
|
||||
<p>Voici la liste des modules du semestre choisi.</p>
|
||||
<p>
|
||||
Les modules cochés sont ceux dans lesquels l'étudiant est inscrit.
|
||||
Vous pouvez l'inscrire ou le désincrire d'un ou plusieurs modules.
|
||||
</p>
|
||||
<p>Attention: cette méthode ne devrait être utilisée que pour les modules
|
||||
<b>optionnels</b> (ou les activités culturelles et sportives) et pour désinscrire
|
||||
les étudiants dispensés (UE validées).
|
||||
</p>
|
||||
"""
|
||||
)
|
||||
return "\n".join(H) + "\n" + tf[1] + F
|
||||
return "\n".join(H) + "\n" + tf[1] + footer
|
||||
elif tf[0] == -1:
|
||||
return flask.redirect(
|
||||
url_for("scolar.ficheEtud", scodoc_dept=g.scodoc_dept, etudid=etudid)
|
||||
@ -645,7 +659,7 @@ function chkbx_select(field_id, state) {
|
||||
"""
|
||||
% url_for("scolar.ficheEtud", scodoc_dept=g.scodoc_dept, etudid=etudid)
|
||||
)
|
||||
return "\n".join(H) + F
|
||||
return "\n".join(H) + footer
|
||||
|
||||
H.append("<h3>Confirmer les modifications:</h3>")
|
||||
if a_desinscrire:
|
||||
@ -704,7 +718,7 @@ function chkbx_select(field_id, state) {
|
||||
url_for("scolar.ficheEtud", scodoc_dept=g.scodoc_dept, etudid=etudid),
|
||||
)
|
||||
)
|
||||
return "\n".join(H) + F
|
||||
return "\n".join(H) + footer
|
||||
|
||||
|
||||
def do_moduleimpl_incription_options(
|
||||
|
Loading…
Reference in New Issue
Block a user