forked from ScoDoc/ScoDoc
Fix choix étudiant
This commit is contained in:
parent
d8dfa0201e
commit
fcc28839c0
@ -75,13 +75,13 @@ def form_search_etud(
|
|||||||
% (",".join(parameters.keys()))
|
% (",".join(parameters.keys()))
|
||||||
)
|
)
|
||||||
elif parameters_keys:
|
elif parameters_keys:
|
||||||
for key in parameters_keys.split(","):
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
vals = request.form
|
vals = request.form
|
||||||
elif request.method == "GET":
|
elif request.method == "GET":
|
||||||
vals = request.args
|
vals = request.args
|
||||||
else:
|
else:
|
||||||
vals = {}
|
vals = {}
|
||||||
|
for key in parameters_keys.split(","):
|
||||||
v = vals.get(key, False)
|
v = vals.get(key, False)
|
||||||
if v:
|
if v:
|
||||||
H.append('<input type="hidden" name="%s" value="%s"/>' % (key, v))
|
H.append('<input type="hidden" name="%s" value="%s"/>' % (key, v))
|
||||||
@ -100,17 +100,18 @@ def form_search_etud(
|
|||||||
return "\n".join(H)
|
return "\n".join(H)
|
||||||
|
|
||||||
|
|
||||||
def search_etud_in_dept(expnom="", REQUEST=None):
|
def search_etud_in_dept(expnom=""):
|
||||||
"""Page recherche d'un etudiant.
|
"""Page recherche d'un etudiant.
|
||||||
|
|
||||||
Affiche la fiche de l'étudiant, ou, si la recherche donne plusieurs résultats,
|
Affiche la fiche de l'étudiant, ou, si la recherche donne plusieurs résultats,
|
||||||
la liste des étudiants correspondants.
|
la liste des étudiants correspondants.
|
||||||
Appelée par boite de recherche barre latérale gauche.
|
Appelée par:
|
||||||
|
- boite de recherche barre latérale gauche.
|
||||||
|
- choix d'un étudiant à inscrire (en POST avec dest_url et parameters_keys)
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
expnom: string, regexp sur le nom ou un code_nip ou un etudid
|
expnom: string, regexp sur le nom ou un code_nip ou un etudid
|
||||||
"""
|
"""
|
||||||
breakpoint()
|
|
||||||
if isinstance(expnom, int) or len(expnom) > 1:
|
if isinstance(expnom, int) or len(expnom) > 1:
|
||||||
try:
|
try:
|
||||||
etudid = int(expnom)
|
etudid = int(expnom)
|
||||||
@ -126,13 +127,26 @@ def search_etud_in_dept(expnom="", REQUEST=None):
|
|||||||
else:
|
else:
|
||||||
etuds = [] # si expnom est trop court, n'affiche rien
|
etuds = [] # si expnom est trop court, n'affiche rien
|
||||||
|
|
||||||
|
if request.method == "POST":
|
||||||
|
vals = request.form
|
||||||
|
elif request.method == "GET":
|
||||||
|
vals = request.args
|
||||||
|
else:
|
||||||
|
vals = {}
|
||||||
|
|
||||||
|
url_args = {"scodoc_dept": g.scodoc_dept}
|
||||||
|
if "dest_url" in request.form:
|
||||||
|
endpoint = request.form["dest_url"]
|
||||||
|
else:
|
||||||
|
endpoint = "scolar.ficheEtud"
|
||||||
|
if "parameters_keys" in request.form:
|
||||||
|
for key in vals["parameters_keys"].split(","):
|
||||||
|
url_args[key] = vals[key]
|
||||||
|
|
||||||
if len(etuds) == 1:
|
if len(etuds) == 1:
|
||||||
# va directement a la fiche
|
# va directement a la fiche
|
||||||
return flask.redirect(
|
url_args["etudid"] = etuds[0]["etudid"]
|
||||||
url_for(
|
return flask.redirect(url_for(endpoint, **url_args))
|
||||||
"scolar.ficheEtud", scodoc_dept=g.scodoc_dept, etudid=etuds[0]["etudid"]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(
|
html_sco_header.sco_header(
|
||||||
@ -140,22 +154,27 @@ def search_etud_in_dept(expnom="", REQUEST=None):
|
|||||||
no_side_bar=True,
|
no_side_bar=True,
|
||||||
init_qtip=True,
|
init_qtip=True,
|
||||||
javascripts=["js/etud_info.js"],
|
javascripts=["js/etud_info.js"],
|
||||||
),
|
)
|
||||||
"""<h2>%d résultats pour "%s": choisissez un étudiant:</h2>"""
|
|
||||||
% (len(etuds), expnom),
|
|
||||||
form_search_etud(
|
|
||||||
dest_url=url_for(
|
|
||||||
"scolar.ficheEtud", scodoc_dept=g.scodoc_dept
|
|
||||||
), # sans l'etudid, post du form
|
|
||||||
title="Autre recherche",
|
|
||||||
),
|
|
||||||
]
|
]
|
||||||
|
if len(etuds) == 0 and len(etuds) <= 1:
|
||||||
|
H.append("""<h2>chercher un étudiant:</h2>""")
|
||||||
|
else:
|
||||||
|
H.append(
|
||||||
|
f"""<h2>{len(etuds)} résultats pour "<tt>{expnom}</tt>": choisissez un étudiant:</h2>"""
|
||||||
|
)
|
||||||
|
H.append(
|
||||||
|
form_search_etud(
|
||||||
|
dest_url=endpoint,
|
||||||
|
parameters=vals.get("parameters"),
|
||||||
|
parameters_keys=vals.get("parameters_keys"),
|
||||||
|
title="Autre recherche",
|
||||||
|
)
|
||||||
|
)
|
||||||
if len(etuds) > 0:
|
if len(etuds) > 0:
|
||||||
# Choix dans la liste des résultats:
|
# Choix dans la liste des résultats:
|
||||||
for e in etuds:
|
for e in etuds:
|
||||||
target = url_for(
|
url_args["etudid"] = e["etudid"]
|
||||||
"scolar.ficheEtud", scodoc_dept=g.scodoc_dept, etudid=e["etudid"]
|
target = url_for(endpoint, **url_args)
|
||||||
)
|
|
||||||
e["_nomprenom_target"] = target
|
e["_nomprenom_target"] = target
|
||||||
e["inscription_target"] = target
|
e["inscription_target"] = target
|
||||||
e["_nomprenom_td_attrs"] = 'id="%s" class="etudinfo"' % (e["etudid"])
|
e["_nomprenom_td_attrs"] = 'id="%s" class="etudinfo"' % (e["etudid"])
|
||||||
@ -178,14 +197,16 @@ def search_etud_in_dept(expnom="", REQUEST=None):
|
|||||||
if len(etuds) > 20: # si la page est grande
|
if len(etuds) > 20: # si la page est grande
|
||||||
H.append(
|
H.append(
|
||||||
form_search_etud(
|
form_search_etud(
|
||||||
dest_url=url_for("scolar.ficheEtud", scodoc_dept=g.scodoc_dept),
|
dest_url=endpoint,
|
||||||
|
parameters=vals.get("parameters"),
|
||||||
|
parameters_keys=vals.get("parameters_keys"),
|
||||||
title="Autre recherche",
|
title="Autre recherche",
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
H.append('<h2 style="color: red;">Aucun résultat pour "%s".</h2>' % expnom)
|
H.append('<h2 style="color: red;">Aucun résultat pour "%s".</h2>' % expnom)
|
||||||
H.append(
|
H.append(
|
||||||
"""<p class="help">La recherche porte sur tout ou partie du NOM ou du NIP de l'étudiant</p>"""
|
"""<p class="help">La recherche porte sur tout ou partie du NOM ou du NIP de l'étudiant. Saisir au moins deux caractères.</p>"""
|
||||||
)
|
)
|
||||||
return "\n".join(H) + html_sco_header.sco_footer()
|
return "\n".join(H) + html_sco_header.sco_footer()
|
||||||
|
|
||||||
|
@ -255,8 +255,9 @@ def formsemestre_inscription_with_modules_etud(
|
|||||||
return sco_find_etud.form_search_etud(
|
return sco_find_etud.form_search_etud(
|
||||||
title="Choix de l'étudiant à inscrire dans ce semestre",
|
title="Choix de l'étudiant à inscrire dans ce semestre",
|
||||||
add_headers=True,
|
add_headers=True,
|
||||||
dest_url="formsemestre_inscription_with_modules_etud",
|
dest_url="notes.formsemestre_inscription_with_modules_etud",
|
||||||
parameters={"formsemestre_id": formsemestre_id},
|
parameters={"formsemestre_id": formsemestre_id},
|
||||||
|
parameters_keys="formsemestre_id",
|
||||||
)
|
)
|
||||||
|
|
||||||
return formsemestre_inscription_with_modules(
|
return formsemestre_inscription_with_modules(
|
||||||
|
Loading…
Reference in New Issue
Block a user