diff --git a/app/scodoc/sco_groups_view.py b/app/scodoc/sco_groups_view.py index 0e46b1b451ce1d519920c07ab6cab57c811c3bef..c44e3c0cd141004c32f596ab02779a81c158b3a3 100644 --- a/app/scodoc/sco_groups_view.py +++ b/app/scodoc/sco_groups_view.py @@ -172,7 +172,7 @@ def form_groups_choice(groups_infos, with_selectall_butt=False, submit_on_change """<form id="group_selector" method="get"> <input type="hidden" name="formsemestre_id" id="formsemestre_id" value="%s"/> <input type="hidden" name="default_group_id" id="default_group_id" value="%s"/> - Groupes: + Groupes: """ % (groups_infos.formsemestre_id, default_group_id) ] @@ -693,7 +693,7 @@ def groups_table( % (tab.base_url,), """<li> <a class="stdlink" href="export_groups_as_moodle_csv?formsemestre_id=%s">Fichier CSV pour Moodle (tous les groupes)</a> - <em>(voir le paramétrage pour modifier le format des fichiers Moodle exportés)</em> + <em>(voir le paramétrage pour modifier le format des fichiers Moodle exportés)</em> </li>""" % groups_infos.formsemestre_id, ] @@ -840,7 +840,7 @@ def tab_absences_html(groups_infos, etat=None): group_ids=group_ids, date_debut=formsemestre.date_debut.isoformat(), date_fin=formsemestre.date_fin.isoformat() - ) + ) }">État de l'assiduité du groupe</a></li>""", "</ul>", "<h3>Feuilles</h3>", @@ -867,14 +867,21 @@ def tab_absences_html(groups_infos, etat=None): group_id = sco_groups.get_default_group(groups_infos.formsemestre_id) if authuser.has_permission(Permission.EtudInscrit): H.append( - '<li><a class="stdlink" href="check_group_apogee?group_id=%s&etat=%s">Vérifier codes Apogée</a> (de tous les groupes)</li>' - % (group_id, etat or "") + f"""<li><a class="stdlink" href="{ + url_for('scolar.check_group_apogee', + scodoc_dept=g.scodoc_dept, + group_id=group_id, etat=etat or "") + }">Vérifier codes Apogée</a> (de tous les groupes)</li> + """ ) # Lien pour ajout fichiers étudiants if authuser.has_permission(Permission.EtudAddAnnotations): H.append( - """<li><a class="stdlink" href="etudarchive_import_files_form?group_id=%s">Télécharger des fichiers associés aux étudiants (e.g. dossiers d'admission)</a></li>""" - % (group_id) + f"""<li><a class="stdlink" href="{ + url_for('scolar.etudarchive_import_files_form', + scodoc_dept=g.scodoc_dept, + group_id=group_id + )}">Télécharger des fichiers associés aux étudiants (e.g. dossiers d'admission)</a></li>""" ) H.append("</ul></div>") diff --git a/app/scodoc/sco_synchro_etuds.py b/app/scodoc/sco_synchro_etuds.py index 10c9662a7e00c48f026ee9eeb48ae9c12e483c1c..3f3a691e9b9ce7cfd851e85d6eb0ce4d1699c317 100644 --- a/app/scodoc/sco_synchro_etuds.py +++ b/app/scodoc/sco_synchro_etuds.py @@ -150,7 +150,7 @@ def formsemestre_synchro_etuds( ) = list_synch(sem, annee_apogee=annee_apogee) if export_cat_xls: filename = export_cat_xls - xls = build_page( + xls = _build_page( sem, etuds_by_cat, annee_apogee, @@ -167,7 +167,7 @@ def formsemestre_synchro_etuds( H = [header] if not submitted: - H += build_page( + H += _build_page( sem, etuds_by_cat, annee_apogee, @@ -288,7 +288,7 @@ def formsemestre_synchro_etuds( return "\n".join(H) -def build_page( +def _build_page( sem, etuds_by_cat, annee_apogee, @@ -332,26 +332,23 @@ def build_page( + len(etuds_by_cat["etuds_nonapogee"]["etuds"]) + len(etuds_by_cat["inscrits_without_key"]["etuds"]) ), - """<p>Code étape Apogée: %(etape_apo_str)s</p> + f"""<p>Code étape Apogée: {sem['etape_apo_str']}</p> <form method="post" action="formsemestre_synchro_etuds"> - """ - % sem, - """ - Année Apogée: <select id="anne_eapogee" name="annee_apogee" - onchange="document.location='formsemestre_synchro_etuds?formsemestre_id=%s&annee_apogee='+document.getElementById('annee_apogee').value">""" - % (sem["formsemestre_id"]), + Année Apogée: <select id="annee_apogee" name="annee_apogee" + onchange="document.location='formsemestre_synchro_etuds?formsemestre_id={ + sem['formsemestre_id'] + }&annee_apogee='+document.getElementById('annee_apogee').value"> + """, "\n".join(options), - """ - </select> + """</select> """, "" if read_only - else """ - <input type="hidden" name="formsemestre_id" value="%(formsemestre_id)s"/> + else f""" + <input type="hidden" name="formsemestre_id" value="{sem['formsemestre_id']}"/> <input type="submit" name="submitted" value="Appliquer les modifications"/> <a href="#help">aide</a> - """ - % sem, # " + """, sco_inscr_passage.etuds_select_boxes( etuds_by_cat, sel_inscrits=False, @@ -454,7 +451,7 @@ def list_synch(sem, annee_apogee=None): "infos": { "id": "etuds_a_importer", "title": "Étudiants dans Apogée à importer", - "help": """Ces étudiants sont inscrits dans cette étape Apogée mais ne sont pas connus par ScoDoc: + "help": """Ces étudiants sont inscrits dans cette étape Apogée mais ne sont pas connus par ScoDoc: cocher les noms à importer et inscrire puis appuyer sur le bouton "Appliquer".""", "title_target": "", "with_checkbox": True, @@ -508,7 +505,7 @@ def list_synch(sem, annee_apogee=None): "infos": { "id": "etuds_ok", "title": "Étudiants dans Apogée et déjà inscrits", - "help": """Ces etudiants sont inscrits dans le semestre ScoDoc et sont présents dans Apogée: + "help": """Ces etudiants sont inscrits dans le semestre ScoDoc et sont présents dans Apogée: tout est donc correct. Décocher les étudiants que vous souhaitez désinscrire.""", "title_target": "", "with_checkbox": True, @@ -556,13 +553,16 @@ def list_all(etudsapo_set): def formsemestre_synchro_etuds_help(sem): - sem["default_group_id"] = sco_groups.get_default_group(sem["formsemestre_id"]) - return ( - """<div class="pas_help pas_help_left"><h3><a name="help">Explications</a></h3> + formsemestre_id = sem["formsemestre_id"] + default_group_id = sco_groups.get_default_group(sem["formsemestre_id"]) + return f"""<div class="pas_help pas_help_left"><h3><a name="help">Explications</a></h3> <p>Cette page permet d'importer dans le semestre destination <a class="stdlink" - href="formsemestre_status?formsemestre_id=%(formsemestre_id)s">%(titreannee)s</a> - les étudiants inscrits dans l'étape Apogée correspondante (<b><tt>%(etape_apo_str)s</tt></b>) + href="{url_for('notes.formsemestre_status', scodoc_dept=g.scodoc_dept, + formsemestre_id=formsemestre_id) + }">{sem['titreannee']}</a> + les étudiants inscrits dans l'étape Apogée correspondante + (<b><tt>{sem['etape_apo_str']}</tt></b>) </p> <p>Au départ, tous les étudiants d'Apogée sont sélectionnés; vous pouvez en déselectionner certains. Tous les étudiants cochés seront inscrits au semestre ScoDoc, @@ -571,15 +571,19 @@ def formsemestre_synchro_etuds_help(sem): <h4>Autres fonctions utiles</h4> <ul> - <li><a href="check_group_apogee?group_id=%(default_group_id)s">vérification - des codes Apogée</a> (des étudiants déjà inscrits)</li> - <li>le <a href="formsemestre_inscr_passage?formsemestre_id=%(formsemestre_id)s"> + <li><a class="stdlink" href="{ + url_for("scolar.check_group_apogee", scodoc_dept=g.scodoc_dept, + group_id=default_group_id) + }">vérification des codes Apogée</a> (des étudiants déjà inscrits) + </li> + <li>le <a class="stdlink" href="{url_for('notes.formsemestre_inscr_passage', + scodoc_dept=g.scodoc_dept, + formsemestre_id=formsemestre_id)}"> formulaire de passage</a> qui permet aussi de désinscrire des étudiants en cas d'erreur, etc.</li> </ul> - </div>""" - % sem - ) + </div> + """ def gender2civilite(gender): diff --git a/sco_version.py b/sco_version.py index df7c410ab8094815b3aa56e41fe6f4217a409f61..b523ac6b59216d396a3c810e7cc7ba5ba7c07fe0 100644 --- a/sco_version.py +++ b/sco_version.py @@ -1,7 +1,7 @@ # -*- mode: python -*- # -*- coding: utf-8 -*- -SCOVERSION = "9.6.45" +SCOVERSION = "9.6.46" SCONAME = "ScoDoc" @@ -46,7 +46,7 @@ SCONEWS = """ <h4>Année 2021</h4> <ul> -<li>ScoDoc 9.2: +<li>ScoDoc 9.2: <ul> <li>Tableau récap. complet pour BUT et autres formations.</li> <li>Tableau état évaluations</li>