From 01e5d1087ee15facffe1afdef04741dde5ac5852 Mon Sep 17 00:00:00 2001
From: Emmanuel Viennet <emmanuel.viennet@gmail.com>
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 %}
+<h2 class="formsemestre">Téléchargement des informations sur les étudiants</h2>
+
+<div class="scobox help explanation">
+ <p>
+ Cette page peut être utilisé pour exporter ou importer / modfiier les informations
+ concernant les étudiants et leur admission.
+ </p>
+ <p>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.
+ </p>
+ <ul>
+ <li>origine des étudiants (lycées, bac, etc);</li>
+ <li>type d'admission (Parcoursup, autre);</li>
+ <li>placement dans les groupes et parcours.</li>
+ </ul>
+
+ <p>
+ 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.
+ </p>
+
+
+ <p>
+ <em>Seules les données "admission" seront modifiées
+ (et pas l'identité de l'étudiant).</em>
+ </p>
+ <p>
+ <em>Les colonnes "nom" et "prenom" sont requises,
+ ou bien une colonne "etudid" si la case
+ "Utiliser l'identifiant d'étudiant ScoDoc" est cochée.
+ </em>
+ </p>
+</div>
+
+<div class="scobox">
+ <div class="scobox-title">Exportation des données</div>
+ Avant d'importer vos données, il est recommandé d'enregistrer
+ les informations actuelles:
+ <div class="vspaced">
+ <a class="stdlink" href="{{
+ url_for('scolar.import_generate_admission_sample',
+ scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id)
+ }}">exporter les données actuelles de ScoDoc</a>
+ </div>
+ (ce fichier peut être ré-importé après d'éventuelles modifications)
+</div>
+
+<div class="scobox">
+ <div class="scobox-title">Importation des données</div>
+
+ {{ tf_form | safe }}
+</div>
+
+<div class="scobox explanation">
+
+Les colonnes importables par cette fonction sont indiquées dans la table ci-dessous.
+Seule la première feuille du classeur sera utilisée.
+
+ <div id="adm_table_description_format">
+ {{adm_table_description_format|safe}}
+ </div>
+
+</div>
+
+{% 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"""
- <h2 class="formsemestre">Téléchargement des informations sur l'admission
- des étudiants</h2>
+ <h2 class="formsemestre">Téléchargement des informations sur
+ les étudiants (admission, ...)</h2>
<p>
<a href="{ url_for('scolar.import_generate_admission_sample',
scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id )
@@ -2369,48 +2369,6 @@ def form_students_import_infos_admissions(formsemestre_id=None):
)
# On a le droit d'importer:
- H = [
- f"""<h2 class="formsemestre">Téléchargement des informations sur l'admission des étudiants
- depuis feuilles import Parcoursup</h2>
- <div style="color: red">
- <p>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.
- </p>
- </div>
- <div class="help">
- <p>
- 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.
- </p>
- <p>
- <em>Seules les données "admission" seront modifiées
- (et pas l'identité de l'étudiant).</em>
- </p>
- <p>
- <em>Les colonnes "nom" et "prenom" sont requises,
- ou bien une colonne "etudid" si la case
- "Utiliser l'identifiant d'étudiant ScoDoc" est cochée.
- </em>
- </p>
- <p>
- Avant d'importer vos données, il est recommandé d'enregistrer
- les informations actuelles:
- <a class="stdlink" href="{
- url_for("scolar.import_generate_admission_sample",
- scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id)
- }">exporter les données actuelles de ScoDoc</a>
- (ce fichier peut être ré-importé après d'éventuelles modifications)
- </p>
- </div>
- """,
- ]
-
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 = (
- """<p>Les colonnes importables par cette fonction sont indiquées
- dans la table ci-dessous.
- Seule la première feuille du classeur sera utilisée.
- <div id="adm_table_description_format">
- """
- + sco_import_etuds.adm_table_description_format().html()
- + """</div>"""
+ 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
--
GitLab