From 6d7a7a7c4b2c8abbb7152431b85b369c1dba4601 Mon Sep 17 00:00:00 2001 From: Arthur ZHU Date: Tue, 8 Feb 2022 16:40:32 +0100 Subject: [PATCH] supprime fichiers lors des suppressions, correctifs --- app/entreprises/routes.py | 75 ++++++++++++++++--- .../entreprises/ajout_entreprise.html | 2 +- .../entreprises/ajout_historique.html | 2 +- app/templates/entreprises/contacts.html | 2 +- app/templates/entreprises/entreprises.html | 2 +- .../entreprises/entreprises_validation.html | 5 +- .../entreprises/envoi_offre_form.html | 2 +- .../fiche_entreprise_validation.html | 4 + .../entreprises/import_entreprises.html | 2 +- app/templates/entreprises/logs.html | 62 ++++++++------- .../entreprises/logs_entreprise.html | 51 +++++++------ app/templates/entreprises/offres_recues.html | 33 ++++---- .../entreprises/validate_confirmation.html | 2 +- 13 files changed, 152 insertions(+), 92 deletions(-) diff --git a/app/entreprises/routes.py b/app/entreprises/routes.py index 640c49cb59..1b01f96348 100644 --- a/app/entreprises/routes.py +++ b/app/entreprises/routes.py @@ -1,4 +1,5 @@ import os +from queue import Empty from config import Config from datetime import datetime, date import glob @@ -75,7 +76,11 @@ def logs(): logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).paginate( page=page, per_page=20 ) - return render_template("entreprises/logs.html", title=("Logs"), logs=logs) + return render_template( + "entreprises/logs.html", + title=("Logs"), + logs=logs, + ) @bp.route("/validation", methods=["GET"]) @@ -107,7 +112,10 @@ def contacts(): ) logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).limit(LOGS_LEN).all() return render_template( - "entreprises/contacts.html", title=("Contacts"), contacts=contacts, logs=logs + "entreprises/contacts.html", + title=("Contacts"), + contacts=contacts, + logs=logs, ) @@ -392,7 +400,9 @@ def edit_entreprise(id): form.ville.data = entreprise.ville form.pays.data = entreprise.pays return render_template( - "entreprises/form.html", title=("Modification entreprise"), form=form + "entreprises/form.html", + title=("Modification entreprise"), + form=form, ) @@ -406,6 +416,14 @@ def delete_entreprise(id): form = SuppressionConfirmationForm() if form.validate_on_submit(): db.session.delete(entreprise) + # supprime les fichiers attachés aux offres + path = os.path.join( + Config.SCODOC_VAR_DIR, + "entreprises", + f"{entreprise.id}", + ) + if os.path.isdir(path): + shutil.rmtree(path) log = EntrepriseLog( authenticated_user=current_user.user_name, object=entreprise.id, @@ -484,7 +502,11 @@ def add_offre(id): db.session.commit() flash("L'offre a été ajouté à la fiche entreprise.") return redirect(url_for("entreprises.fiche_entreprise", id=entreprise.id)) - return render_template("entreprises/form.html", title=("Ajout offre"), form=form) + return render_template( + "entreprises/form.html", + title=("Ajout offre"), + form=form, + ) @bp.route("/edit_offre/", methods=["GET", "POST"]) @@ -536,7 +558,9 @@ def edit_offre(id): form.expiration_date.data = offre.expiration_date form.depts.data = offre_depts_list return render_template( - "entreprises/form.html", title=("Modification offre"), form=form + "entreprises/form.html", + title=("Modification offre"), + form=form, ) @@ -551,6 +575,14 @@ def delete_offre(id): form = SuppressionConfirmationForm() if form.validate_on_submit(): db.session.delete(offre) + path = os.path.join( + Config.SCODOC_VAR_DIR, + "entreprises", + f"{entreprise_id}", + f"{offre.id}", + ) + if os.path.isdir(path): + shutil.rmtree(path) log = EntrepriseLog( authenticated_user=current_user.user_name, object=offre.entreprise_id, @@ -561,7 +593,9 @@ def delete_offre(id): flash("L'offre a été supprimé de la fiche entreprise.") return redirect(url_for("entreprises.fiche_entreprise", id=entreprise_id)) return render_template( - "entreprises/delete_confirmation.html", title=("Supression offre"), form=form + "entreprises/delete_confirmation.html", + title=("Supression offre"), + form=form, ) @@ -593,7 +627,11 @@ def add_contact(id): db.session.commit() flash("Le contact a été ajouté à la fiche entreprise.") return redirect(url_for("entreprises.fiche_entreprise", id=entreprise.id)) - return render_template("entreprises/form.html", title=("Ajout contact"), form=form) + return render_template( + "entreprises/form.html", + title=("Ajout contact"), + form=form, + ) @bp.route("/edit_contact/", methods=["GET", "POST"]) @@ -633,7 +671,9 @@ def edit_contact(id): form.poste.data = contact.poste form.service.data = contact.service return render_template( - "entreprises/form.html", title=("Modification contact"), form=form + "entreprises/form.html", + title=("Modification contact"), + form=form, ) @@ -667,7 +707,9 @@ def delete_contact(id): flash("Le contact a été supprimé de la fiche entreprise.") return redirect(url_for("entreprises.fiche_entreprise", id=entreprise_id)) return render_template( - "entreprises/delete_confirmation.html", title=("Supression contact"), form=form + "entreprises/delete_confirmation.html", + title=("Supression contact"), + form=form, ) @@ -708,7 +750,9 @@ def add_historique(id): flash("L'étudiant a été ajouté sur la fiche entreprise.") return redirect(url_for("entreprises.fiche_entreprise", id=entreprise.id)) return render_template( - "entreprises/ajout_historique.html", title=("Ajout historique"), form=form + "entreprises/ajout_historique.html", + title=("Ajout historique"), + form=form, ) @@ -738,7 +782,9 @@ def envoyer_offre(id): flash(f"L'offre a été envoyé à {responsable.get_nomplogin()}.") return redirect(url_for("entreprises.fiche_entreprise", id=offre.entreprise_id)) return render_template( - "entreprises/envoi_offre_form.html", title=("Envoyer une offre"), form=form + "entreprises/envoi_offre_form.html", + title=("Envoyer une offre"), + form=form, ) @@ -840,6 +886,9 @@ def get_import_entreprises_file_sample(): @bp.route("/import_entreprises", methods=["GET", "POST"]) @permission_required(Permission.RelationsEntreprisesExport) def import_entreprises(): + """ + Permet d'importer des entreprises a l'aide d'un fichier excel (.xlsx) + """ form = ImportEntreprisesForm() if form.validate_on_submit(): path = os.path.join(Config.SCODOC_VAR_DIR, "tmp") @@ -974,7 +1023,9 @@ def add_offre_file(offre_id): flash("Le fichier a été ajouté a l'offre.") return redirect(url_for("entreprises.fiche_entreprise", id=offre.entreprise_id)) return render_template( - "entreprises/form.html", title=("Ajout fichier à une offre"), form=form + "entreprises/form.html", + title=("Ajout fichier à une offre"), + form=form, ) diff --git a/app/templates/entreprises/ajout_entreprise.html b/app/templates/entreprises/ajout_entreprise.html index 348c608826..f07d1632ca 100644 --- a/app/templates/entreprises/ajout_entreprise.html +++ b/app/templates/entreprises/ajout_entreprise.html @@ -3,7 +3,7 @@ {% import 'bootstrap/wtf.html' as wtf %} {% block app_content %} -

{{ title }}

+

Ajout entreprise avec contact


diff --git a/app/templates/entreprises/ajout_historique.html b/app/templates/entreprises/ajout_historique.html index 9b492112ff..db659229f8 100644 --- a/app/templates/entreprises/ajout_historique.html +++ b/app/templates/entreprises/ajout_historique.html @@ -9,7 +9,7 @@ {% endblock %} {% block app_content %} -

{{ title }}

+

Ajout historique


diff --git a/app/templates/entreprises/contacts.html b/app/templates/entreprises/contacts.html index 3c1fe29503..264205e520 100644 --- a/app/templates/entreprises/contacts.html +++ b/app/templates/entreprises/contacts.html @@ -75,7 +75,7 @@ Page {{ contacts.page }} sur {{ contacts.pages }}

{% else %} -
Aucun contact présent dans la base
+
Aucun contact présent dans la base
{% endif %}
{% endblock %} \ No newline at end of file diff --git a/app/templates/entreprises/entreprises.html b/app/templates/entreprises/entreprises.html index f5615a435f..ab6582433d 100644 --- a/app/templates/entreprises/entreprises.html +++ b/app/templates/entreprises/entreprises.html @@ -95,7 +95,7 @@ Page {{ entreprises.page }} sur {{ entreprises.pages }}

{% else %} -
Aucune entreprise présent dans la base
+
Aucune entreprise présent dans la base
{% endif %}
{% endblock %} \ No newline at end of file diff --git a/app/templates/entreprises/entreprises_validation.html b/app/templates/entreprises/entreprises_validation.html index 39463fe922..60c6a19425 100644 --- a/app/templates/entreprises/entreprises_validation.html +++ b/app/templates/entreprises/entreprises_validation.html @@ -43,10 +43,9 @@ {% endfor %} - {% else %} -
Aucune entreprise à valider
-
+ {% else %} +
Aucune entreprise à valider
{% endif %}
{% endblock %} \ No newline at end of file diff --git a/app/templates/entreprises/envoi_offre_form.html b/app/templates/entreprises/envoi_offre_form.html index cf210893e8..bfab89e4d9 100644 --- a/app/templates/entreprises/envoi_offre_form.html +++ b/app/templates/entreprises/envoi_offre_form.html @@ -9,7 +9,7 @@ {% endblock %} {% block app_content %} -

{{ title }}

+

Envoyer une offre


diff --git a/app/templates/entreprises/fiche_entreprise_validation.html b/app/templates/entreprises/fiche_entreprise_validation.html index ee36ca7425..9d67ac83b0 100644 --- a/app/templates/entreprises/fiche_entreprise_validation.html +++ b/app/templates/entreprises/fiche_entreprise_validation.html @@ -24,8 +24,12 @@
Nom : {{ contact.nom }}
Prénom : {{ contact.prenom }}
+ {% if contact.telephone %} Téléphone : {{ contact.telephone }}
+ {% endif %} + {% if contact.mail %} Mail : {{ contact.mail }}
+ {% endif %} {% if contact.poste %} Poste : {{ contact.poste }}
{% endif %} diff --git a/app/templates/entreprises/import_entreprises.html b/app/templates/entreprises/import_entreprises.html index 7bb32a44ae..5e1a50d775 100644 --- a/app/templates/entreprises/import_entreprises.html +++ b/app/templates/entreprises/import_entreprises.html @@ -7,7 +7,7 @@ {% endblock %} {% block app_content %} -

{{ title }}

+

Importation entreprises


Obtenir la feuille excel à remplir diff --git a/app/templates/entreprises/logs.html b/app/templates/entreprises/logs.html index ffdb67c421..8bdc9c9d77 100644 --- a/app/templates/entreprises/logs.html +++ b/app/templates/entreprises/logs.html @@ -4,34 +4,40 @@ {% block app_content %}

Dernières opérations

-
    - {% for log in logs.items %} -
  • {{ log.date.strftime('%d %b %Hh%M') }}{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet }}
  • - {% endfor %} -
+ {% if logs.items %} +
    + {% for log in logs.items %} +
  • {{ log.date.strftime('%d %b %Hh%M') }}{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet }}
  • + {% endfor %} +
+ +
+ + « + + {% for page_num in logs.iter_pages(left_edge=1, right_edge=1, left_current=1, right_current=2) %} + {% if page_num %} + {% if logs.page == page_num %} + {{ page_num }} + {% else %} + {{ page_num }} + {% endif %} + {% else %} + ... + {% endif %} + {% endfor %} + + » + +
+ +

+ Page {{ logs.page }} sur {{ logs.pages }} +

+ {% else %} +
Aucune opération
+ {% endif %}
-
- - « - - {% for page_num in logs.iter_pages(left_edge=1, right_edge=1, left_current=1, right_current=2) %} - {% if page_num %} - {% if logs.page == page_num %} - {{ page_num }} - {% else %} - {{ page_num }} - {% endif %} - {% else %} - ... - {% endif %} - {% endfor %} - - » - -
- -

- Page {{ logs.page }} sur {{ logs.pages }} -

+ {% endblock %} \ No newline at end of file diff --git a/app/templates/entreprises/logs_entreprise.html b/app/templates/entreprises/logs_entreprise.html index a9b806ee2a..7d213187fa 100644 --- a/app/templates/entreprises/logs_entreprise.html +++ b/app/templates/entreprises/logs_entreprise.html @@ -4,34 +4,39 @@ {% block app_content %}

Dernières opérations - {{ entreprise.nom }}

+ {% if logs.items %}
    {% for log in logs.items %}
  • {{ log.date.strftime('%d %b %Hh%M') }}{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet }}
  • {% endfor %}
+ +
+ + « + + {% for page_num in logs.iter_pages(left_edge=1, right_edge=1, left_current=1, right_current=2) %} + {% if page_num %} + {% if logs.page == page_num %} + {{ page_num }} + {% else %} + {{ page_num }} + {% endif %} + {% else %} + ... + {% endif %} + {% endfor %} + + » + +
+ +

+ Page {{ logs.page }} sur {{ logs.pages }} +

+ {% else %} +
Aucune opération
+ {% endif %}
-
- - « - - {% for page_num in logs.iter_pages(left_edge=1, right_edge=1, left_current=1, right_current=2) %} - {% if page_num %} - {% if logs.page == page_num %} - {{ page_num }} - {% else %} - {{ page_num }} - {% endif %} - {% else %} - ... - {% endif %} - {% endfor %} - - » - -
- -

- Page {{ logs.page }} sur {{ logs.pages }} -

{% endblock %} \ No newline at end of file diff --git a/app/templates/entreprises/offres_recues.html b/app/templates/entreprises/offres_recues.html index 5f31fb74ba..63bbdb65d8 100644 --- a/app/templates/entreprises/offres_recues.html +++ b/app/templates/entreprises/offres_recues.html @@ -5,31 +5,26 @@ {% include 'entreprises/nav.html' %}
-

{{ title }}

+

Offres reçues

{% if offres_recues %} -
-
{% for offre in offres_recues %} -
-
- Envoyé le {{ offre[0].date_envoi.strftime('%d %B %Y à %H:%M') }} par {{ offre[0].sender_id|get_nomcomplet_by_id }}
- Intitulé : {{ offre[1].intitule }}
- Description : {{ offre[1].description }}
- Type de l'offre : {{ offre[1].type_offre }}
- Missions : {{ offre[1].missions }}
- Durée : {{ offre[1].duree }}
+
+
+ Envoyé le {{ offre[0].date_envoi.strftime('%d %B %Y à %H:%M') }} par {{ offre[0].sender_id|get_nomcomplet_by_id }}
+ Intitulé : {{ offre[1].intitule }}
+ Description : {{ offre[1].description }}
+ Type de l'offre : {{ offre[1].type_offre }}
+ Missions : {{ offre[1].missions }}
+ Durée : {{ offre[1].duree }}
- {% for fichier in offre[2] %} - {{ fichier[1] }}
- {% endfor %} -
+ {% for fichier in offre[2] %} + {{ fichier[1] }}
+ {% endfor %}
- {% endfor %}
-
- {% else %} + {% endfor %} + {% else %}
Aucune offre reçue
-
{% endif %}
{% endblock %} \ No newline at end of file diff --git a/app/templates/entreprises/validate_confirmation.html b/app/templates/entreprises/validate_confirmation.html index 04ab1eac15..277bf237cd 100644 --- a/app/templates/entreprises/validate_confirmation.html +++ b/app/templates/entreprises/validate_confirmation.html @@ -3,7 +3,7 @@ {% import 'bootstrap/wtf.html' as wtf %} {% block app_content %} -

{{ title }}

+

Validation entreprise


Cliquez sur le bouton Valider pour confirmer votre validation