From 01e5d1087ee15facffe1afdef04741dde5ac5852 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Tue, 3 Sep 2024 00:29:50 +0200 Subject: [PATCH] =?UTF-8?q?Am=C3=A9liore=20pr=C3=A9sentation=20page=20impo?= =?UTF-8?q?rt=20admission?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/scodoc/sco_formsemestre_status.py | 2 +- app/scodoc/sco_import_etuds.py | 6 +- app/static/css/scodoc.css | 5 ++ .../form_import_infos_admissions.j2 | 76 +++++++++++++++++ app/views/scolar.py | 84 ++++--------------- sco_version.py | 2 +- tests/unit/test_formsemestre.py | 2 +- 7 files changed, 103 insertions(+), 74 deletions(-) create mode 100644 app/templates/formsemestre/form_import_infos_admissions.j2 diff --git a/app/scodoc/sco_formsemestre_status.py b/app/scodoc/sco_formsemestre_status.py index ba49dec9..c530bd17 100755 --- a/app/scodoc/sco_formsemestre_status.py +++ b/app/scodoc/sco_formsemestre_status.py @@ -320,7 +320,7 @@ def formsemestre_status_menubar(formsemestre: FormSemestre | None) -> str: }, { "title": "Import/export des données admission", - "endpoint": "scolar.form_students_import_infos_admissions", + "endpoint": "scolar.form_import_infos_admissions", "args": {"formsemestre_id": formsemestre_id}, "enabled": current_user.has_permission(Permission.ScoView), }, diff --git a/app/scodoc/sco_import_etuds.py b/app/scodoc/sco_import_etuds.py index 74d7a5aa..5e129d69 100644 --- a/app/scodoc/sco_import_etuds.py +++ b/app/scodoc/sco_import_etuds.py @@ -687,7 +687,7 @@ def scolars_import_admission( else "colonnes nom et prenom requises" ), dest_url=url_for( - "scolar.form_students_import_infos_admissions", + "scolar.form_import_infos_admissions", scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id, ), @@ -732,7 +732,7 @@ def scolars_import_admission( f"""scolars_import_admission: valeur invalide, ligne { nline} colonne {field_name}: '{line[idx]}'""", dest_url=url_for( - "scolar.form_students_import_infos_admissions", + "scolar.form_import_infos_admissions", scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id, ), @@ -829,7 +829,7 @@ def adm_get_fields(titles, formsemestre_id: int, use_etudid: bool = False): raise ScoFormatError( f"""scolars_import_admission: titre "{title}" en double (ligne 1)""", dest_url=url_for( - "scolar.form_students_import_infos_admissions", + "scolar.form_import_infos_admissions", scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id, ), diff --git a/app/static/css/scodoc.css b/app/static/css/scodoc.css index 99c44367..2bd994ec 100644 --- a/app/static/css/scodoc.css +++ b/app/static/css/scodoc.css @@ -58,6 +58,11 @@ div.sco-app-content { margin-right: 12px; } +.vspaced { + margin-top: 18px !important; + margin-bottom: 18px !important; +} + .space-before-18 { margin-top: 18px !important; } diff --git a/app/templates/formsemestre/form_import_infos_admissions.j2 b/app/templates/formsemestre/form_import_infos_admissions.j2 new file mode 100644 index 00000000..c3aaa8ce --- /dev/null +++ b/app/templates/formsemestre/form_import_infos_admissions.j2 @@ -0,0 +1,76 @@ +{% extends "sco_page.j2" %} +{% import 'wtf.j2' as wtf %} + +{% block styles %} +{{super()}} +{% endblock %} + +{% block app_content %} +

Téléchargement des informations sur les étudiants

+ +
+

+ Cette page peut être utilisé pour exporter ou importer / modfiier les informations + concernant les étudiants et leur admission. +

+

Ces informations sont facultatives mais souvent utiles pour mieux connaitre les étudiants + et aussi pour effectuer des statistiques (résultats suivant le type de bac...). + Les données sont affichées sur les fiches individuelles des étudiants. +

+ + +

+ Seuls les étudiants actuellement inscrits dans ce semestre ScoDoc seront affectés, + les autres lignes de la feuille seront ignorées. + Et seules les colonnes intéressant ScoDoc + seront importées: il est inutile d'éliminer les autres. +

+ + +

+ Seules les données "admission" seront modifiées + (et pas l'identité de l'étudiant). +

+

+ Les colonnes "nom" et "prenom" sont requises, + ou bien une colonne "etudid" si la case + "Utiliser l'identifiant d'étudiant ScoDoc" est cochée. + +

+
+ +
+
Exportation des données
+ Avant d'importer vos données, il est recommandé d'enregistrer + les informations actuelles: + + (ce fichier peut être ré-importé après d'éventuelles modifications) +
+ +
+
Importation des données
+ + {{ tf_form | safe }} +
+ +
+ +Les colonnes importables par cette fonction sont indiquées dans la table ci-dessous. +Seule la première feuille du classeur sera utilisée. + +
+ {{adm_table_description_format|safe}} +
+ +
+ +{% endblock %} \ No newline at end of file diff --git a/app/views/scolar.py b/app/views/scolar.py index 28ead66f..b5c8a126 100644 --- a/app/views/scolar.py +++ b/app/views/scolar.py @@ -2343,11 +2343,11 @@ def import_generate_admission_sample(formsemestre_id): # --- Données admission depuis fichier excel (version nov 2016) -@bp.route("/form_students_import_infos_admissions", methods=["GET", "POST"]) +@bp.route("/form_import_infos_admissions", methods=["GET", "POST"]) @scodoc @permission_required(Permission.ScoView) @scodoc7func -def form_students_import_infos_admissions(formsemestre_id=None): +def form_import_infos_admissions(formsemestre_id=None): "formulaire import xls" authuser = current_user if not authuser.has_permission(Permission.EtudInscrit): @@ -2356,8 +2356,8 @@ def form_students_import_infos_admissions(formsemestre_id=None): "sco_page.j2", title="Export données admissions (Parcoursup ou autre)", content=f""" -

Téléchargement des informations sur l'admission - des étudiants

+

Téléchargement des informations sur + les étudiants (admission, ...)

Téléchargement des informations sur l'admission des étudiants - depuis feuilles import Parcoursup -

-

A utiliser pour renseigner les informations sur l'origine des étudiants (lycées, bac, etc). - Ces informations sont facultatives mais souvent utiles pour mieux connaitre les étudiants - et aussi pour effectuer des statistiques (résultats suivant le type de bac...). - Les données sont affichées sur les fiches individuelles des étudiants. -

-
-
-

- Vous pouvez importer ici la feuille excel utilisée pour envoyer - le classement Parcoursup. - Seuls les étudiants actuellement inscrits dans ce semestre ScoDoc seront affectés, - les autres lignes de la feuille seront ignorées. - Et seules les colonnes intéressant ScoDoc - seront importées: il est inutile d'éliminer les autres. -

-

- Seules les données "admission" seront modifiées - (et pas l'identité de l'étudiant). -

-

- Les colonnes "nom" et "prenom" sont requises, - ou bien une colonne "etudid" si la case - "Utiliser l'identifiant d'étudiant ScoDoc" est cochée. - -

-

- Avant d'importer vos données, il est recommandé d'enregistrer - les informations actuelles: - exporter les données actuelles de ScoDoc - (ce fichier peut être ré-importé après d'éventuelles modifications) -

-
- """, - ] - tf = TrivialFormulator( request.base_url, scu.get_request_args(), @@ -2439,26 +2397,17 @@ def form_students_import_infos_admissions(formsemestre_id=None): ), ("formsemestre_id", {"input_type": "hidden"}), ), - submitlabel="Télécharger", - ) - - help_text = ( - """

Les colonnes importables par cette fonction sont indiquées - dans la table ci-dessous. - Seule la première feuille du classeur sera utilisée. -

- """ - + sco_import_etuds.adm_table_description_format().html() - + """
""" + submitlabel="Importer", ) if tf[0] == 0: return render_template( - "sco_page.j2", - title="Import données admissions Parcoursup", - content="\n".join(H) + tf[1] + help_text, + "formsemestre/form_import_infos_admissions.j2", + title="Import données admissions", + tf_form=tf[1], + adm_table_description_format=sco_import_etuds.adm_table_description_format().html(), ) - elif tf[0] == -1: + if tf[0] == -1: return flask.redirect( url_for( "notes.formsemestre_status", @@ -2466,13 +2415,12 @@ def form_students_import_infos_admissions(formsemestre_id=None): formsemestre_id=formsemestre_id, ) ) - else: - return sco_import_etuds.students_import_admission( - tf[2]["csvfile"], - type_admission=tf[2]["type_admission"], - formsemestre_id=formsemestre_id, - use_etudid=tf[2]["use_etudid"], - ) + return sco_import_etuds.students_import_admission( + tf[2]["csvfile"], + type_admission=tf[2]["type_admission"], + formsemestre_id=formsemestre_id, + use_etudid=tf[2]["use_etudid"], + ) @bp.route("/formsemestre_import_etud_admission") diff --git a/sco_version.py b/sco_version.py index 5f1901f3..8c0bf966 100644 --- a/sco_version.py +++ b/sco_version.py @@ -1,7 +1,7 @@ # -*- mode: python -*- # -*- coding: utf-8 -*- -SCOVERSION = "9.7.14" +SCOVERSION = "9.7.15" SCONAME = "ScoDoc" diff --git a/tests/unit/test_formsemestre.py b/tests/unit/test_formsemestre.py index 783c1232..64a7b307 100644 --- a/tests/unit/test_formsemestre.py +++ b/tests/unit/test_formsemestre.py @@ -133,7 +133,7 @@ def test_formsemestre_misc_views(test_client): ans = sco_inscr_passage.formsemestre_inscr_passage(formsemestre.id) ans = call_view(scolar.form_students_import_excel, formsemestre.id) assert isinstance(ans, str) - ans = call_view(scolar.form_students_import_infos_admissions, formsemestre.id) + ans = call_view(scolar.form_import_infos_admissions, formsemestre.id) ans = sco_formsemestre_inscriptions.formsemestre_inscrits_ailleurs(formsemestre.id) # ----- MENU GROUPES