From d740244d253713d2df3ab79ff9bac60651a18e4d Mon Sep 17 00:00:00 2001 From: Arthur ZHU Date: Thu, 23 Dec 2021 23:21:47 +0100 Subject: [PATCH] ajout page contacts --- app/entreprises/routes.py | 45 +++++++++++-------- app/templates/entreprises/contacts.html | 43 ++++++++++++++++++ app/templates/entreprises/entreprises.html | 11 +---- .../entreprises/fiche_entreprise.html | 4 +- app/templates/entreprises/form.html | 32 +++++++------ 5 files changed, 92 insertions(+), 43 deletions(-) create mode 100644 app/templates/entreprises/contacts.html diff --git a/app/entreprises/routes.py b/app/entreprises/routes.py index b74390873c..628a523351 100644 --- a/app/entreprises/routes.py +++ b/app/entreprises/routes.py @@ -32,12 +32,30 @@ from app import db from app.scodoc import sco_etud from sqlalchemy import text -@bp.route("/", methods=["GET", "POST"]) +@bp.route("/", methods=["GET"]) def index(): entreprises = Entreprise.query.all() logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).limit(LOGS_LEN).all() return render_template("entreprises/entreprises.html", title=("Entreprises"), entreprises=entreprises, logs=logs) +@bp.route("/contacts", methods=["GET"]) +def contacts(): + contacts = db.session.query(EntrepriseContact, Entreprise).\ + join(Entreprise, EntrepriseContact.entreprise_id == Entreprise.id).all() + logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).limit(LOGS_LEN).all() + return render_template("entreprises/contacts.html", title=("Contacts"), contacts=contacts, logs=logs) + +@bp.route("/fiche_entreprise/", methods=["GET"]) +def fiche_entreprise(id): + entreprise = Entreprise.query.filter_by(id=id).first_or_404() + offres = entreprise.offres + contacts = entreprise.contacts + logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).filter_by(object=id).limit(LOGS_LEN).all() + historique = db.session.query(EntrepriseHistory, Identite).order_by(EntrepriseHistory.date_debut.desc()).\ + filter_by(entreprise_id=id).\ + join(Identite, Identite.id == EntrepriseHistory.etudid).all() + return render_template("entreprises/fiche_entreprise.html", title=("Fiche entreprise"), entreprise=entreprise, contacts=contacts, offres=offres, logs=logs, historique=historique) + @bp.route("/add_entreprise", methods=["GET", "POST"]) def add_entreprise(): form = EntrepriseCreationForm() @@ -147,17 +165,6 @@ def delete_entreprise(id): return redirect(url_for("entreprises.index")) return render_template("entreprises/delete_confirmation.html", title=("Supression entreprise"), form=form) -@bp.route("/fiche_entreprise/", methods=["GET", "POST"]) -def fiche_entreprise(id): - entreprise = Entreprise.query.filter_by(id=id).first_or_404() - offres = entreprise.offres - contacts = entreprise.contacts - logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).filter_by(object=id).limit(LOGS_LEN).all() - historique = db.session.query(EntrepriseHistory, Identite).order_by(EntrepriseHistory.date_debut.desc()).\ - filter_by(entreprise_id=id).\ - join(Identite, Identite.id == EntrepriseHistory.etudid).all() - return render_template("entreprises/fiche_entreprise.html", title=("Fiche entreprise"), entreprise=entreprise, contacts=contacts, offres=offres, logs=logs, historique=historique) - @bp.route("/add_offre/", methods=["GET", "POST"]) def add_offre(id): entreprise = Entreprise.query.filter_by(id=id).first_or_404() @@ -326,6 +333,13 @@ def add_historique(id): return redirect(url_for("entreprises.fiche_entreprise", id=entreprise.id)) return render_template("entreprises/form.html", title=("Ajout historique"), form=form) +@bp.route("/envoyer_offre/", methods=["GET", "POST"]) +def envoyer_offre(id): + form = EnvoiOffreForm() + if form.validate_on_submit(): + print("tmp") # faire l'envoie du mail + return render_template("entreprises/form.html", title=("Envoyer une offre"), form=form) + @bp.route("/etudiants") def json_etudiants(): term = request.args.get('term').strip() @@ -348,13 +362,6 @@ def json_etudiants(): list.append(content) content = {} return jsonify(results=list) - -@bp.route("/envoyer_offre/", methods=["GET", "POST"]) -def envoyer_offre(id): - form = EnvoiOffreForm() - if form.validate_on_submit(): - print("tmp") # faire l'envoie du mail - return render_template("entreprises/form.html", title=("Envoyer une offre"), form=form) @bp.route("/responsables") def json_responsables(): diff --git a/app/templates/entreprises/contacts.html b/app/templates/entreprises/contacts.html new file mode 100644 index 0000000000..7f14333340 --- /dev/null +++ b/app/templates/entreprises/contacts.html @@ -0,0 +1,43 @@ +{% extends 'base.html' %} + +{% block app_content %} + {% if logs %} +
+

Dernières opérations

+
    + {% for log in logs %} +
  • {{ log.date.strftime('%d %b %Hh%M') }}{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet }}
  • + {% endfor %} +
+
+ {% endif %} +
+

Liste des contacts

+ {% if contacts %} +
+ + + + + + + + + {% for contact in contacts %} + + + + + + + + {% endfor %} +
NomPrenomTelephoneMailEntreprise
{{ contact[0].nom }}{{ contact[0].prenom }}{{ contact[0].telephone }}{{ contact[0].mail }}{{ contact[1].nom }}
+
+ {% else %} +
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 4ca2860eea..a33dd7e77c 100644 --- a/app/templates/entreprises/entreprises.html +++ b/app/templates/entreprises/entreprises.html @@ -1,13 +1,6 @@ {% extends 'base.html' %} {% block app_content %} - {% if logs %}

Dernières opérations

@@ -22,7 +15,7 @@

Liste des entreprises

{% if entreprises %}
- +
@@ -35,7 +28,7 @@ {% for entreprise in entreprises %} - + diff --git a/app/templates/entreprises/fiche_entreprise.html b/app/templates/entreprises/fiche_entreprise.html index 5667d1328c..b84980366d 100644 --- a/app/templates/entreprises/fiche_entreprise.html +++ b/app/templates/entreprises/fiche_entreprise.html @@ -21,7 +21,9 @@ {% for data in historique %}
  • {{ data[0].date_debut.strftime('%d/%m/%Y') }} - {{ data[0].date_fin.strftime('%d/%m/%Y') }} - {{ data[0].type_offre }} réalisé par {{ data[1].nom|format_nom }} {{ data[1].prenom|format_prenom }} + + {{ data[0].type_offre }} réalisé par {{ data[1].nom|format_nom }} {{ data[1].prenom|format_prenom }} en {{ data[0].formation_text }} +
  • {% endfor %} diff --git a/app/templates/entreprises/form.html b/app/templates/entreprises/form.html index 2efa5aedc9..25cb579ddd 100644 --- a/app/templates/entreprises/form.html +++ b/app/templates/entreprises/form.html @@ -47,25 +47,29 @@ if(response.ok) return response.json() else { - document.getElementById("nom_entreprise").value = '' - document.getElementById("adresse").value = '' - document.getElementById("codepostal").value = '' - document.getElementById("ville").value = '' - document.getElementById("pays").value = '' - throw new Error("404") + emptyForm() } }) - .then(function(response) { - data = JSON.parse(JSON.stringify(response)) - document.getElementById("nom_entreprise").value = data.etablissement.l1_normalisee - document.getElementById("adresse").value = data.etablissement.l4_normalisee - document.getElementById("codepostal").value = data.etablissement.code_postal - document.getElementById("ville").value = data.etablissement.libelle_commune - document.getElementById("pays").value = 'France' - }) + .then(response => fillForm(response)) .catch(err => err) } } + + function fillForm(response) { + document.getElementById("nom_entreprise").value = response.etablissement.l1_normalisee + document.getElementById("adresse").value = response.etablissement.l4_normalisee + document.getElementById("codepostal").value = response.etablissement.code_postal + document.getElementById("ville").value = response.etablissement.libelle_commune + document.getElementById("pays").value = 'FRANCE' + } + + function emptyForm() { + document.getElementById("nom_entreprise").value = '' + document.getElementById("adresse").value = '' + document.getElementById("codepostal").value = '' + document.getElementById("ville").value = '' + document.getElementById("pays").value = '' + } } {% endblock %} \ No newline at end of file
    SIRET Nom
    {{ entreprise.siret }}{{ entreprise.nom }}{{ entreprise.nom }} {{ entreprise.adresse }} {{ entreprise.codepostal }} {{ entreprise.ville }}