diff --git a/app/scodoc/sco_find_etud.py b/app/scodoc/sco_find_etud.py index 63bb158cd..027276d9b 100644 --- a/app/scodoc/sco_find_etud.py +++ b/app/scodoc/sco_find_etud.py @@ -75,13 +75,13 @@ def form_search_etud( % (",".join(parameters.keys())) ) elif parameters_keys: + if request.method == "POST": + vals = request.form + elif request.method == "GET": + vals = request.args + else: + vals = {} for key in parameters_keys.split(","): - if request.method == "POST": - vals = request.form - elif request.method == "GET": - vals = request.args - else: - vals = {} v = vals.get(key, False) if v: H.append('' % (key, v)) @@ -100,17 +100,18 @@ def form_search_etud( return "\n".join(H) -def search_etud_in_dept(expnom="", REQUEST=None): +def search_etud_in_dept(expnom=""): """Page recherche d'un etudiant. Affiche la fiche de l'étudiant, ou, si la recherche donne plusieurs résultats, 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: expnom: string, regexp sur le nom ou un code_nip ou un etudid """ - breakpoint() if isinstance(expnom, int) or len(expnom) > 1: try: etudid = int(expnom) @@ -126,13 +127,26 @@ def search_etud_in_dept(expnom="", REQUEST=None): else: 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: # va directement a la fiche - return flask.redirect( - url_for( - "scolar.ficheEtud", scodoc_dept=g.scodoc_dept, etudid=etuds[0]["etudid"] - ) - ) + url_args["etudid"] = etuds[0]["etudid"] + return flask.redirect(url_for(endpoint, **url_args)) H = [ html_sco_header.sco_header( @@ -140,22 +154,27 @@ def search_etud_in_dept(expnom="", REQUEST=None): no_side_bar=True, init_qtip=True, javascripts=["js/etud_info.js"], - ), - """
La recherche porte sur tout ou partie du NOM ou du NIP de l'étudiant
""" + """La recherche porte sur tout ou partie du NOM ou du NIP de l'étudiant. Saisir au moins deux caractères.
""" ) return "\n".join(H) + html_sco_header.sco_footer() diff --git a/app/scodoc/sco_formsemestre_inscriptions.py b/app/scodoc/sco_formsemestre_inscriptions.py index 75b3ef31b..dfeead3e0 100644 --- a/app/scodoc/sco_formsemestre_inscriptions.py +++ b/app/scodoc/sco_formsemestre_inscriptions.py @@ -255,8 +255,9 @@ def formsemestre_inscription_with_modules_etud( return sco_find_etud.form_search_etud( title="Choix de l'étudiant à inscrire dans ce semestre", add_headers=True, - dest_url="formsemestre_inscription_with_modules_etud", + dest_url="notes.formsemestre_inscription_with_modules_etud", parameters={"formsemestre_id": formsemestre_id}, + parameters_keys="formsemestre_id", ) return formsemestre_inscription_with_modules(