From 8e9599693015da64ae416e8a06c78a2df1957f18 Mon Sep 17 00:00:00 2001 From: Arthur ZHU Date: Mon, 30 May 2022 18:12:26 +0200 Subject: [PATCH] lien vers fiche etudiant (stage ou alternance), refonte import export entreprises --- app/entreprises/app_relations_entreprises.py | 7 +++ app/entreprises/routes.py | 51 +++++++++++++++---- app/static/css/entreprises.css | 9 +++- .../entreprises/fiche_entreprise.html | 11 +++- .../entreprises/import_entreprises.html | 11 ++++ 5 files changed, 77 insertions(+), 12 deletions(-) diff --git a/app/entreprises/app_relations_entreprises.py b/app/entreprises/app_relations_entreprises.py index 95f1264cf..b42fd58b8 100644 --- a/app/entreprises/app_relations_entreprises.py +++ b/app/entreprises/app_relations_entreprises.py @@ -68,6 +68,13 @@ def get_dept_id_by_acronym(acronym): return None +def get_dept_acronym_by_id(id): + dept = Departement.query.filter_by(id=id).first() + if dept is not None: + return dept.acronym + return None + + def check_offre_depts(depts, offre_depts): """ Retourne vrai si l'utilisateur a le droit de visibilité sur l'offre diff --git a/app/entreprises/routes.py b/app/entreprises/routes.py index a57c77e13..3b94fa3c1 100644 --- a/app/entreprises/routes.py +++ b/app/entreprises/routes.py @@ -1323,10 +1323,14 @@ def json_etudiants(): content = { "id": f"{etudiant.id}", "value": value, - "info": f"{etudiant.inscription_courante().formsemestre.titre}", + "info": f"Département {are.get_dept_acronym_by_id(etudiant.dept_id)} - {etudiant.inscription_courante().formsemestre.titre}", } else: - content = {"id": f"{etudiant.id}", "value": value} + content = { + "id": f"{etudiant.id}", + "value": value, + "info": f"Département {are.get_dept_acronym_by_id(etudiant.dept_id)}", + } list.append(content) return jsonify(results=list) @@ -1352,7 +1356,7 @@ def json_responsables(): for responsable in responsables: content = {} value = f"{responsable.get_nomplogin()}" - content = {"id": f"{responsable.id}", "value": value, "info": ""} + content = {"id": f"{responsable.id}", "value": value} list.append(content) return jsonify(results=list) @@ -1386,7 +1390,7 @@ def get_import_entreprises_file_sample(): """ Permet de récupérer un fichier exemple vide pour pouvoir importer des entreprises """ - keys = [ + entreprises_titles = [ "siret", "nom_entreprise", "adresse", @@ -1394,9 +1398,39 @@ def get_import_entreprises_file_sample(): "code_postal", "pays", ] - titles = keys[:] + sites_titles = [ + "siret_entreprise", + "nom_site", + "adresse", + "ville", + "code_postal", + "pays", + ] title = "ImportEntreprises" - xlsx = sco_excel.excel_simple_table(titles=titles, sheet_name="Entreprises") + wb = sco_excel.ScoExcelBook() + ws1 = wb.create_sheet("Entreprises") + ws1.append_row( + [ + ws1.make_cell(it, style, comment) + for (it, style, comment) in zip( + entreprises_titles, + [sco_excel.excel_make_style(bold=True)] * len(entreprises_titles), + [None] * len(entreprises_titles), + ) + ] + ) + ws2 = wb.create_sheet("Sites") + ws2.append_row( + [ + ws2.make_cell(it, style, comment) + for (it, style, comment) in zip( + sites_titles, + [sco_excel.excel_make_style(bold=True)] * len(sites_titles), + [None] * len(sites_titles), + ) + ] + ) + xlsx = wb.generate() filename = title return scu.send_file(xlsx, filename, scu.XLSX_SUFFIX, scu.XLSX_MIMETYPE) @@ -1487,7 +1521,7 @@ def export_correspondants(): correspondants = ( db.session.query(EntrepriseCorrespondant) .join(Entreprise, EntrepriseCorrespondant.entreprise_id == Entreprise.id) - .filter_by(visible=True) + .filter_by(visible=True, active=True) .all() ) if correspondants: @@ -1523,7 +1557,7 @@ def get_import_correspondants_file_sample(): """ Permet de récupérer un fichier exemple vide pour pouvoir importer des correspondants """ - keys = [ + titles = [ "civilite", "nom", "prenom", @@ -1535,7 +1569,6 @@ def get_import_correspondants_file_sample(): "notes", "entreprise_siret", ] - titles = keys[:] title = "ImportCorrespondants" xlsx = sco_excel.excel_simple_table(titles=titles, sheet_name="Correspondants") filename = title diff --git a/app/static/css/entreprises.css b/app/static/css/entreprises.css index 997bc1cba..203b3aeba 100644 --- a/app/static/css/entreprises.css +++ b/app/static/css/entreprises.css @@ -59,14 +59,19 @@ margin-bottom: -5px; } -.entreprise, .correspondant, .offre, .site{ - border: solid 2px; +.entreprise, .correspondant, .offre, .site, .info-active { + border: solid 2px black; border-radius: 10px; padding: 10px; margin-bottom: 10px; margin-top: 10px; } +.info-active { + border-color: red; + background-color: rgb(250, 220, 220); +} + .entreprise { display: flex; justify-content: space-between; diff --git a/app/templates/entreprises/fiche_entreprise.html b/app/templates/entreprises/fiche_entreprise.html index 35c9365f1..6d0896052 100644 --- a/app/templates/entreprises/fiche_entreprise.html +++ b/app/templates/entreprises/fiche_entreprise.html @@ -26,6 +26,15 @@

Fiche entreprise - {{ entreprise.nom }} ({{ entreprise.siret }})

+ {% if not entreprise.active %} +
+ La fiche entreprise est désactivée
+ {% if entreprise.notes_active != "" %} + Notes : {{ entreprise.notes_active }} + {% endif %} +
+ {% endif %} +
SIRET : {{ entreprise.siret }}
@@ -141,7 +150,7 @@ {{ data[0].date_fin.strftime('%d/%m/%Y') }} {{ (data[0].date_fin-data[0].date_debut).days//7 }} semaines {{ data[0].type_offre }} - {{ data[1].nom|format_nom }} {{ data[1].prenom|format_prenom }} + {{ data[1].nom|format_nom }} {{ data[1].prenom|format_prenom }} {% if data[0].formation_text %}{{ data[0].formation_text }}{% endif %} {{ data[0].notes }} {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %} diff --git a/app/templates/entreprises/import_entreprises.html b/app/templates/entreprises/import_entreprises.html index 0b6336603..f0c659512 100644 --- a/app/templates/entreprises/import_entreprises.html +++ b/app/templates/entreprises/import_entreprises.html @@ -23,6 +23,7 @@
{% if not entreprises_import %} +
Feuille Entreprises
@@ -32,6 +33,16 @@
AttributTypeDescription
sirettextsiret de l'entreprise
code_postaltextcode postal de l'entreprise
paystextpays de l'entreprise
+
Feuille Sites
+ + + + + + + + +
AttributTypeDescription
siret_entreprisetextsiret de l'entreprise
nom_sitetextnom du site
adressetextadresse du site
villetextville du site
code_postaltextcode postal du site
paystextpays du site
{% endif %} {% if entreprises_import %}