forked from ScoDoc/ScoDoc
ajout offre pouvant etre lié a des depts
This commit is contained in:
parent
d19bc3391f
commit
5444c8e848
@ -31,12 +31,19 @@ from flask_wtf import FlaskForm
|
|||||||
from flask_wtf.file import FileField, FileAllowed, FileRequired
|
from flask_wtf.file import FileField, FileAllowed, FileRequired
|
||||||
from markupsafe import Markup
|
from markupsafe import Markup
|
||||||
from sqlalchemy import text
|
from sqlalchemy import text
|
||||||
from wtforms import StringField, SubmitField, TextAreaField, SelectField, HiddenField
|
from wtforms import (
|
||||||
|
StringField,
|
||||||
|
SubmitField,
|
||||||
|
TextAreaField,
|
||||||
|
SelectField,
|
||||||
|
HiddenField,
|
||||||
|
SelectMultipleField,
|
||||||
|
)
|
||||||
from wtforms.fields import EmailField, DateField
|
from wtforms.fields import EmailField, DateField
|
||||||
from wtforms.validators import ValidationError, DataRequired, Email
|
from wtforms.validators import ValidationError, DataRequired, Email, Optional
|
||||||
|
|
||||||
from app.entreprises.models import Entreprise, EntrepriseContact
|
from app.entreprises.models import Entreprise, EntrepriseContact
|
||||||
from app.models import Identite
|
from app.models import Identite, Departement
|
||||||
from app.auth.models import User
|
from app.auth.models import User
|
||||||
|
|
||||||
CHAMP_REQUIS = "Ce champ est requis"
|
CHAMP_REQUIS = "Ce champ est requis"
|
||||||
@ -125,6 +132,7 @@ class EntrepriseModificationForm(FlaskForm):
|
|||||||
|
|
||||||
|
|
||||||
class OffreCreationForm(FlaskForm):
|
class OffreCreationForm(FlaskForm):
|
||||||
|
|
||||||
intitule = StringField("Intitulé", validators=[DataRequired(message=CHAMP_REQUIS)])
|
intitule = StringField("Intitulé", validators=[DataRequired(message=CHAMP_REQUIS)])
|
||||||
description = TextAreaField(
|
description = TextAreaField(
|
||||||
"Description", validators=[DataRequired(message=CHAMP_REQUIS)]
|
"Description", validators=[DataRequired(message=CHAMP_REQUIS)]
|
||||||
@ -138,11 +146,19 @@ class OffreCreationForm(FlaskForm):
|
|||||||
"Missions", validators=[DataRequired(message=CHAMP_REQUIS)]
|
"Missions", validators=[DataRequired(message=CHAMP_REQUIS)]
|
||||||
)
|
)
|
||||||
duree = StringField("Durée", validators=[DataRequired(message=CHAMP_REQUIS)])
|
duree = StringField("Durée", validators=[DataRequired(message=CHAMP_REQUIS)])
|
||||||
|
depts = SelectMultipleField("Départements", validators=[Optional()], coerce=int)
|
||||||
expiration_date = DateField(
|
expiration_date = DateField(
|
||||||
"Date expiration", validators=[DataRequired(message=CHAMP_REQUIS)]
|
"Date expiration", validators=[DataRequired(message=CHAMP_REQUIS)]
|
||||||
)
|
)
|
||||||
submit = SubmitField("Envoyer", render_kw={"style": "margin-bottom: 10px;"})
|
submit = SubmitField("Envoyer", render_kw={"style": "margin-bottom: 10px;"})
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
self.depts.choices = [
|
||||||
|
(dept.id, dept.acronym) for dept in Departement.query.all()
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class OffreModificationForm(FlaskForm):
|
class OffreModificationForm(FlaskForm):
|
||||||
intitule = StringField("Intitulé", validators=[DataRequired(message=CHAMP_REQUIS)])
|
intitule = StringField("Intitulé", validators=[DataRequired(message=CHAMP_REQUIS)])
|
||||||
|
@ -32,6 +32,7 @@ from app.entreprises.models import (
|
|||||||
EntrepriseLog,
|
EntrepriseLog,
|
||||||
EntrepriseEtudiant,
|
EntrepriseEtudiant,
|
||||||
EntrepriseEnvoiOffre,
|
EntrepriseEnvoiOffre,
|
||||||
|
EntrepriseOffreDepartement,
|
||||||
)
|
)
|
||||||
from app.models import Identite
|
from app.models import Identite
|
||||||
from app.auth.models import User
|
from app.auth.models import User
|
||||||
@ -462,12 +463,20 @@ def add_offre(id):
|
|||||||
duree=form.duree.data.strip(),
|
duree=form.duree.data.strip(),
|
||||||
expiration_date=form.expiration_date.data,
|
expiration_date=form.expiration_date.data,
|
||||||
)
|
)
|
||||||
|
db.session.add(offre)
|
||||||
|
db.session.commit()
|
||||||
|
db.session.refresh(offre)
|
||||||
|
for dept in form.depts.data:
|
||||||
|
offre_dept = EntrepriseOffreDepartement(
|
||||||
|
offre_id=offre.id,
|
||||||
|
dept_id=dept,
|
||||||
|
)
|
||||||
|
db.session.add(offre_dept)
|
||||||
log = EntrepriseLog(
|
log = EntrepriseLog(
|
||||||
authenticated_user=current_user.user_name,
|
authenticated_user=current_user.user_name,
|
||||||
object=entreprise.id,
|
object=entreprise.id,
|
||||||
text="Création d'une offre",
|
text="Création d'une offre",
|
||||||
)
|
)
|
||||||
db.session.add(offre)
|
|
||||||
db.session.add(log)
|
db.session.add(log)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
flash("L'offre a été ajouté à la fiche entreprise.")
|
flash("L'offre a été ajouté à la fiche entreprise.")
|
||||||
|
Loading…
Reference in New Issue
Block a user