forked from ScoDoc/DocScoDoc
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.admis = (self.nb_validables == self.nb_competences) and (
|
||||||
self.inscription_etat == scu.INSCRIT
|
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)
|
self.valide_moitie_rcue = self.nb_validables > (self.nb_competences // 2)
|
||||||
# Peut passer si plus de la moitié validables et tous > 8
|
# 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)
|
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 import res_sem
|
||||||
from app.comp.res_compat import NotesTableCompat
|
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.etudiants import Identite
|
||||||
from app.models.groups import GroupDescr
|
from app.models.groups import GroupDescr
|
||||||
import app.scodoc.sco_utils as scu
|
import app.scodoc.sco_utils as scu
|
||||||
@ -371,47 +371,44 @@ def formsemestre_inscription_with_modules(
|
|||||||
Formulaire avec choix groupe.
|
Formulaire avec choix groupe.
|
||||||
"""
|
"""
|
||||||
log(
|
log(
|
||||||
"formsemestre_inscription_with_modules: etudid=%s formsemestre_id=%s group_ids=%s"
|
f"""formsemestre_inscription_with_modules: etudid={etudid} formsemestre_id={
|
||||||
% (etudid, formsemestre_id, group_ids)
|
formsemestre_id} group_ids={group_ids}"""
|
||||||
)
|
)
|
||||||
if multiple_ok:
|
if multiple_ok:
|
||||||
multiple_ok = int(multiple_ok)
|
multiple_ok = int(multiple_ok)
|
||||||
sem = sco_formsemestre.get_formsemestre(formsemestre_id)
|
formsemestre: FormSemestre = FormSemestre.query.get_or_404(formsemestre_id)
|
||||||
etud = sco_etud.get_etud_info(etudid=etudid, filled=True)[0]
|
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 = [
|
H = [
|
||||||
html_sco_header.html_sem_header(
|
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 ?
|
# Check 1: déjà inscrit ici ?
|
||||||
ins = do_formsemestre_inscription_list({"etudid": etudid})
|
inscr = FormSemestreInscription.query.filter_by(
|
||||||
already = False
|
etudid=etud.id, formsemestre_id=formsemestre.id
|
||||||
for i in ins:
|
).first()
|
||||||
if i["formsemestre_id"] == formsemestre_id:
|
if inscr is not None:
|
||||||
already = True
|
|
||||||
if already:
|
|
||||||
H.append(
|
H.append(
|
||||||
'<p class="warning">%s est déjà inscrit dans le semestre %s</p>'
|
f"""
|
||||||
% (etud["nomprenom"], sem["titremois"])
|
<p class="warning">{etud.nomprenom} est déjà inscrit
|
||||||
)
|
dans le semestre {formsemestre.titre_mois()}
|
||||||
H.append(
|
</p>
|
||||||
"""<ul>
|
<ul>
|
||||||
<li><a href="%s">retour à la fiche de %s</a></li>
|
<li><a href="{url_for("scolar.ficheEtud", scodoc_dept=g.scodoc_dept, etudid=etudid)
|
||||||
<li><a href="%s">retour au tableau de bord de %s</a></li>
|
}" class="stdlink">retour à la fiche de {etud.nomprenom}</a>
|
||||||
</ul>"""
|
</li>
|
||||||
% (
|
<li><a href="{url_for(
|
||||||
url_for("scolar.ficheEtud", scodoc_dept=g.scodoc_dept, etudid=etudid),
|
|
||||||
etud["nomprenom"],
|
|
||||||
url_for(
|
|
||||||
"notes.formsemestre_status",
|
"notes.formsemestre_status",
|
||||||
scodoc_dept=g.scodoc_dept,
|
scodoc_dept=g.scodoc_dept,
|
||||||
formsemestre_id=formsemestre_id,
|
formsemestre_id=formsemestre_id,
|
||||||
),
|
)}" class="stdlink">retour au tableau de bord de {formsemestre.titre_mois()}</a></li>
|
||||||
sem["titremois"],
|
</ul>
|
||||||
)
|
"""
|
||||||
)
|
)
|
||||||
return "\n".join(H) + F
|
return "\n".join(H) + footer
|
||||||
# Check 2: déjà inscrit dans un semestre recouvrant les même dates ?
|
# Check 2: déjà inscrit dans un semestre recouvrant les même dates ?
|
||||||
# Informe et propose dé-inscriptions
|
# Informe et propose dé-inscriptions
|
||||||
others = est_inscrit_ailleurs(etudid, formsemestre_id)
|
others = est_inscrit_ailleurs(etudid, formsemestre_id)
|
||||||
@ -419,26 +416,37 @@ def formsemestre_inscription_with_modules(
|
|||||||
l = []
|
l = []
|
||||||
for s in others:
|
for s in others:
|
||||||
l.append(
|
l.append(
|
||||||
'<a class="discretelink" href="formsemestre_status?formsemestre_id=%(formsemestre_id)s">%(titremois)s</a>'
|
f"""<a class="discretelink" href="{
|
||||||
% s
|
url_for("notes.formsemestre_status",
|
||||||
|
scodoc_dept=g.scodoc_dept, formsemestre_id=s['formsemestre_id'])
|
||||||
|
}">{s['titremois']}</a>"""
|
||||||
)
|
)
|
||||||
|
|
||||||
H.append(
|
H.append(
|
||||||
'<p class="warning">Attention: %s est déjà inscrit sur la même période dans: %s.</p>'
|
f"""<p class="warning">Attention: {etud.nomprenom} est déjà inscrit sur
|
||||||
% (etud["nomprenom"], ", ".join(l))
|
la même période dans: {", ".join(l)}.
|
||||||
|
</p>"""
|
||||||
)
|
)
|
||||||
H.append("<ul>")
|
H.append("<ul>")
|
||||||
for s in others:
|
for s in others:
|
||||||
H.append(
|
H.append(
|
||||||
'<li><a href="formsemestre_desinscription?formsemestre_id=%s&etudid=%s">déinscrire de %s</li>'
|
f"""<li><a href="{
|
||||||
% (s["formsemestre_id"], etudid, s["titreannee"])
|
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("</ul>")
|
||||||
H.append(
|
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>"""
|
f"""<p><a href="{ url_for( "notes.formsemestre_inscription_with_modules",
|
||||||
% (etudid, formsemestre_id, sco_groups.make_query_groups(group_ids))
|
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:
|
if group_ids is not None:
|
||||||
# OK, inscription
|
# OK, inscription
|
||||||
@ -455,11 +463,10 @@ def formsemestre_inscription_with_modules(
|
|||||||
else:
|
else:
|
||||||
# formulaire choix groupe
|
# formulaire choix groupe
|
||||||
H.append(
|
H.append(
|
||||||
"""<form method="GET" name="groupesel" action="%s">
|
f"""<form method="GET" name="groupesel" action="{request.base_url}">
|
||||||
<input type="hidden" name="etudid" value="%s">
|
<input type="hidden" name="etudid" value="{etudid}">
|
||||||
<input type="hidden" name="formsemestre_id" value="%s">
|
<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))
|
H.append(sco_groups.form_group_choice(formsemestre_id, allow_none=True))
|
||||||
@ -472,7 +479,7 @@ def formsemestre_inscription_with_modules(
|
|||||||
</form>
|
</form>
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
return "\n".join(H) + F
|
return "\n".join(H) + footer
|
||||||
|
|
||||||
|
|
||||||
def formsemestre_inscription_option(etudid, formsemestre_id):
|
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)
|
formsemestre = FormSemestre.query.get_or_404(formsemestre_id)
|
||||||
nt: NotesTableCompat = res_sem.load_formsemestre_results(formsemestre)
|
nt: NotesTableCompat = res_sem.load_formsemestre_results(formsemestre)
|
||||||
|
|
||||||
F = html_sco_header.sco_footer()
|
footer = html_sco_header.sco_footer()
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header()
|
html_sco_header.sco_header()
|
||||||
+ "<h2>Inscription de %s aux modules de %s (%s - %s)</h2>"
|
+ "<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:
|
if tf[0] == 0:
|
||||||
H.append(
|
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>Voici la liste des modules du semestre choisi.</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>
|
||||||
|
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:
|
elif tf[0] == -1:
|
||||||
return flask.redirect(
|
return flask.redirect(
|
||||||
url_for("scolar.ficheEtud", scodoc_dept=g.scodoc_dept, etudid=etudid)
|
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)
|
% 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>")
|
H.append("<h3>Confirmer les modifications:</h3>")
|
||||||
if a_desinscrire:
|
if a_desinscrire:
|
||||||
@ -704,7 +718,7 @@ function chkbx_select(field_id, state) {
|
|||||||
url_for("scolar.ficheEtud", scodoc_dept=g.scodoc_dept, etudid=etudid),
|
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(
|
def do_moduleimpl_incription_options(
|
||||||
|
Loading…
Reference in New Issue
Block a user