ajout page offres, insertion en base des différents objets, enrichissement des champs

This commit is contained in:
Arthur ZHU 2021-12-24 16:07:36 +01:00
parent 9477106e9a
commit 178016b682
4 changed files with 59 additions and 6 deletions

View File

@ -67,11 +67,13 @@ class OffreModificationForm(FlaskForm):
submit = SubmitField("Modifier")
class ContactCreationForm(FlaskForm):
hidden_entreprise_id = HiddenField()
nom = StringField("Nom", validators=[DataRequired(message=DATA_REQUIRED_ERROR_MESSAGE)])
prenom = StringField("Prénom", validators=[DataRequired(message=DATA_REQUIRED_ERROR_MESSAGE)])
telephone = StringField("Téléphone", validators=[DataRequired(message=DATA_REQUIRED_ERROR_MESSAGE)])
mail = EmailField("Mail", validators=[DataRequired(message=DATA_REQUIRED_ERROR_MESSAGE), Email(message="Adresse e-mail invalide")])
hidden_entreprise_id = HiddenField()
poste = StringField("Poste", validators=[])
service = StringField("Service", validators=[])
submit = SubmitField("Envoyer")
def validate(self):

View File

@ -21,7 +21,8 @@ from app.entreprises.models import (
EntrepriseOffre,
EntrepriseContact,
EntrepriseLog,
EntrepriseEtudiant
EntrepriseEtudiant,
EntrepriseEnvoiOffre
)
from app.models import (
Identite
@ -52,10 +53,16 @@ def fiche_entreprise(id):
contacts = entreprise.contacts
logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).filter_by(object=id).limit(LOGS_LEN).all()
historique = db.session.query(EntrepriseEtudiant, Identite).order_by(EntrepriseEtudiant.date_debut.desc()).\
filter_by(entreprise_id=id).\
filter(EntrepriseEtudiant.entreprise_id == id).\
join(Identite, Identite.id == EntrepriseEtudiant.etudid).all()
return render_template("entreprises/fiche_entreprise.html", title=("Fiche entreprise"), entreprise=entreprise, contacts=contacts, offres=offres, logs=logs, historique=historique)
@bp.route("/offres", methods=["GET"])
def offres():
offres_recus = db.session.query(EntrepriseEnvoiOffre, EntrepriseOffre).filter(EntrepriseEnvoiOffre.user_id == current_user.id).\
join(EntrepriseOffre, EntrepriseOffre.id == EntrepriseEnvoiOffre.offre_id).all()
return render_template("entreprises/offres.html", title=("Offres"), offres_recus=offres_recus)
@bp.route("/add_entreprise", methods=["GET", "POST"])
def add_entreprise():
form = EntrepriseCreationForm()
@ -245,7 +252,9 @@ def add_contact(id):
nom=form.nom.data.strip(),
prenom=form.prenom.data.strip(),
telephone=form.telephone.data.strip(),
mail=form.mail.data.strip()
mail=form.mail.data.strip(),
poste=form.poste.data.strip(),
service=form.service.data.strip()
)
log = EntrepriseLog(
authenticated_user = current_user.user_name,
@ -268,6 +277,8 @@ def edit_contact(id):
contact.prenom = form.prenom.data.strip()
contact.telephone = form.telephone.data.strip()
contact.mail = form.mail.data.strip()
contact.poste = form.poste.data.strip()
contact.service = form.service.data.strip()
log = EntrepriseLog(
authenticated_user = current_user.user_name,
object = contact.entreprise_id,
@ -282,6 +293,8 @@ def edit_contact(id):
form.prenom.data = contact.prenom
form.telephone.data = contact.telephone
form.mail.data = contact.mail
form.poste.data = contact.poste
form.service.data = contact.service
return render_template("entreprises/form.html", title=("Modification contact"), form=form)
@bp.route("/delete_contact/<id>", methods=["GET", "POST"])
@ -335,9 +348,20 @@ def add_historique(id):
@bp.route("/envoyer_offre/<id>", methods=["GET", "POST"])
def envoyer_offre(id):
offre = EntrepriseOffre.query.filter_by(id=id).first_or_404()
form = EnvoiOffreForm()
if form.validate_on_submit():
print("tmp") # faire l'envoie du mail
responsable_data = form.responsable.data.upper().strip()
stm = text("SELECT id, UPPER(CONCAT(nom, ' ', prenom, ' ', '(', user_name, ')')) FROM \"user\" WHERE UPPER(CONCAT(nom, ' ', prenom, ' ', '(', user_name, ')'))=:responsable_data")
responsable = User.query.from_statement(stm).params(responsable_data=responsable_data).first()
envoi_offre = EntrepriseEnvoiOffre(
user_id = responsable.id,
offre_id = offre.id
)
db.session.add(envoi_offre)
db.session.commit()
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)
@bp.route("/etudiants")

View File

@ -36,7 +36,6 @@
<br>
{% else %}
<div>Aucun contact présent dans la base</div>
<br>
</div>
{% endif %}
</div>

View File

@ -0,0 +1,28 @@
{% extends 'base.html' %}
{% block app_content %}
<div class="container">
<h1>{{ title }}</h1>
{% if offres_recus %}
<div class="table-responsive">
<div>
{% for offre in offres_recus %}
<div>
<p>
Date envoi : {{ offre[0].date_envoi.strftime('%d/%m/%Y %H:%M') }}<br>
Intitulé : {{ offre[1].intitule }}<br>
Description : {{ offre[1].description }}<br>
Type de l'offre : {{ offre[1].type_offre }}<br>
Missions : {{ offre[1].missions }}<br>
Durée : {{ offre[1].duree }}<br>
</p>
</div>
{% endfor %}
</div>
<br>
{% else %}
<div>Aucune offre reçue</div>
</div>
{% endif %}
</div>
{% endblock %}