forked from ScoDoc/DocScoDoc
ajout boutons annuler
This commit is contained in:
parent
809b5a992d
commit
a200add8df
@ -123,6 +123,7 @@ class EntrepriseCreationForm(FlaskForm):
|
|||||||
notes = _build_string_field("Notes sur le correspondant", required=False)
|
notes = _build_string_field("Notes sur le correspondant", required=False)
|
||||||
|
|
||||||
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
validate = True
|
validate = True
|
||||||
@ -200,6 +201,7 @@ class EntrepriseModificationForm(FlaskForm):
|
|||||||
ville = _build_string_field("Ville (*)")
|
ville = _build_string_field("Ville (*)")
|
||||||
pays = _build_string_field("Pays", required=False)
|
pays = _build_string_field("Pays", required=False)
|
||||||
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
@ -245,6 +247,7 @@ class SiteCreationForm(FlaskForm):
|
|||||||
ville = _build_string_field("Ville (*)")
|
ville = _build_string_field("Ville (*)")
|
||||||
pays = _build_string_field("Pays", required=False)
|
pays = _build_string_field("Pays", required=False)
|
||||||
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
validate = True
|
validate = True
|
||||||
@ -271,6 +274,7 @@ class SiteModificationForm(FlaskForm):
|
|||||||
ville = _build_string_field("Ville (*)")
|
ville = _build_string_field("Ville (*)")
|
||||||
pays = _build_string_field("Pays", required=False)
|
pays = _build_string_field("Pays", required=False)
|
||||||
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
validate = True
|
validate = True
|
||||||
@ -321,6 +325,7 @@ class OffreCreationForm(FlaskForm):
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
@ -368,6 +373,7 @@ class OffreModificationForm(FlaskForm):
|
|||||||
expiration_date = DateField("Date expiration", validators=[Optional()])
|
expiration_date = DateField("Date expiration", validators=[Optional()])
|
||||||
correspondant = SelectField("Correspondant à contacté", validators=[Optional()])
|
correspondant = SelectField("Correspondant à contacté", validators=[Optional()])
|
||||||
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
@ -450,7 +456,8 @@ class CorrespondantCreationForm(FlaskForm):
|
|||||||
class CorrespondantsCreationForm(FlaskForm):
|
class CorrespondantsCreationForm(FlaskForm):
|
||||||
hidden_site_id = HiddenField()
|
hidden_site_id = HiddenField()
|
||||||
correspondants = FieldList(FormField(CorrespondantCreationForm), min_entries=1)
|
correspondants = FieldList(FormField(CorrespondantCreationForm), min_entries=1)
|
||||||
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Envoyer")
|
||||||
|
cancel = SubmitField("Annuler")
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
validate = True
|
validate = True
|
||||||
@ -506,6 +513,7 @@ class CorrespondantModificationForm(FlaskForm):
|
|||||||
origine = _build_string_field("Origine", required=False)
|
origine = _build_string_field("Origine", required=False)
|
||||||
notes = _build_string_field("Notes", required=False)
|
notes = _build_string_field("Notes", required=False)
|
||||||
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
validate = True
|
validate = True
|
||||||
@ -543,6 +551,7 @@ class ContactCreationForm(FlaskForm):
|
|||||||
)
|
)
|
||||||
notes = TextAreaField("Notes (*)", validators=[DataRequired(message=CHAMP_REQUIS)])
|
notes = TextAreaField("Notes (*)", validators=[DataRequired(message=CHAMP_REQUIS)])
|
||||||
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
def validate_utilisateur(self, utilisateur):
|
def validate_utilisateur(self, utilisateur):
|
||||||
utilisateur_data = self.utilisateur.data.upper().strip()
|
utilisateur_data = self.utilisateur.data.upper().strip()
|
||||||
@ -569,6 +578,7 @@ class ContactModificationForm(FlaskForm):
|
|||||||
)
|
)
|
||||||
notes = TextAreaField("Notes (*)", validators=[DataRequired(message=CHAMP_REQUIS)])
|
notes = TextAreaField("Notes (*)", validators=[DataRequired(message=CHAMP_REQUIS)])
|
||||||
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
def validate_utilisateur(self, utilisateur):
|
def validate_utilisateur(self, utilisateur):
|
||||||
utilisateur_data = self.utilisateur.data.upper().strip()
|
utilisateur_data = self.utilisateur.data.upper().strip()
|
||||||
@ -602,6 +612,7 @@ class StageApprentissageCreationForm(FlaskForm):
|
|||||||
)
|
)
|
||||||
notes = TextAreaField("Notes")
|
notes = TextAreaField("Notes")
|
||||||
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
validate = True
|
validate = True
|
||||||
@ -649,6 +660,7 @@ class StageApprentissageModificationForm(FlaskForm):
|
|||||||
)
|
)
|
||||||
notes = TextAreaField("Notes")
|
notes = TextAreaField("Notes")
|
||||||
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
validate = True
|
validate = True
|
||||||
@ -705,6 +717,7 @@ class TaxeApprentissageForm(FlaskForm):
|
|||||||
)
|
)
|
||||||
notes = TextAreaField("Notes")
|
notes = TextAreaField("Notes")
|
||||||
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
validate = True
|
validate = True
|
||||||
@ -738,6 +751,7 @@ class TaxeApprentissageModificationForm(FlaskForm):
|
|||||||
)
|
)
|
||||||
notes = TextAreaField("Notes")
|
notes = TextAreaField("Notes")
|
||||||
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
@ -755,7 +769,8 @@ class EnvoiOffreForm(FlaskForm):
|
|||||||
),
|
),
|
||||||
min_entries=1,
|
min_entries=1,
|
||||||
)
|
)
|
||||||
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Envoyer")
|
||||||
|
cancel = SubmitField("Annuler")
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
validate = True
|
validate = True
|
||||||
@ -795,23 +810,28 @@ class AjoutFichierForm(FlaskForm):
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
submit = SubmitField("Ajouter", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Ajouter", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
|
|
||||||
class SuppressionConfirmationForm(FlaskForm):
|
class SuppressionConfirmationForm(FlaskForm):
|
||||||
submit = SubmitField("Supprimer", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Supprimer", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
|
|
||||||
class DesactivationConfirmationForm(FlaskForm):
|
class DesactivationConfirmationForm(FlaskForm):
|
||||||
notes_active = TextAreaField("Notes sur la désactivation", validators=[Optional()])
|
notes_active = TextAreaField("Notes sur la désactivation", validators=[Optional()])
|
||||||
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
|
|
||||||
class ActivationConfirmationForm(FlaskForm):
|
class ActivationConfirmationForm(FlaskForm):
|
||||||
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
|
|
||||||
class ValidationConfirmationForm(FlaskForm):
|
class ValidationConfirmationForm(FlaskForm):
|
||||||
submit = SubmitField("Valider", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Valider", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
|
|
||||||
class ImportForm(FlaskForm):
|
class ImportForm(FlaskForm):
|
||||||
@ -833,3 +853,4 @@ class PreferencesForm(FlaskForm):
|
|||||||
)
|
)
|
||||||
check_siret = BooleanField("Vérification SIRET")
|
check_siret = BooleanField("Vérification SIRET")
|
||||||
submit = SubmitField("Valider", render_kw=SUBMIT_MARGE)
|
submit = SubmitField("Valider", render_kw=SUBMIT_MARGE)
|
||||||
|
cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE)
|
||||||
|
@ -115,20 +115,6 @@ def logs():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/validation", methods=["GET"])
|
|
||||||
@permission_required(Permission.RelationsEntreprisesValidate)
|
|
||||||
def validation():
|
|
||||||
"""
|
|
||||||
Permet d'afficher une page avec la liste des entreprises a valider (non visible)
|
|
||||||
"""
|
|
||||||
entreprises = Entreprise.query.filter_by(visible=False).all()
|
|
||||||
return render_template(
|
|
||||||
"entreprises/entreprises_validation.html",
|
|
||||||
title="Validation entreprises",
|
|
||||||
entreprises=entreprises,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/correspondants", methods=["GET"])
|
@bp.route("/correspondants", methods=["GET"])
|
||||||
@permission_required(Permission.RelationsEntreprisesCorrespondants)
|
@permission_required(Permission.RelationsEntreprisesCorrespondants)
|
||||||
def correspondants():
|
def correspondants():
|
||||||
@ -155,68 +141,17 @@ def correspondants():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/fiche_entreprise/<int:entreprise_id>", methods=["GET"])
|
@bp.route("/validation", methods=["GET"])
|
||||||
@permission_required(Permission.RelationsEntreprisesView)
|
@permission_required(Permission.RelationsEntreprisesValidate)
|
||||||
def fiche_entreprise(entreprise_id):
|
def validation():
|
||||||
"""
|
"""
|
||||||
Permet d'afficher la fiche entreprise d'une entreprise avec une liste des dernières opérations et
|
Permet d'afficher une page avec la liste des entreprises a valider (non visible)
|
||||||
l'historique des étudiants ayant réaliser un stage ou une alternance dans cette entreprise.
|
|
||||||
La fiche entreprise comporte les informations de l'entreprise, les correspondants de l'entreprise et
|
|
||||||
les offres de l'entreprise.
|
|
||||||
"""
|
"""
|
||||||
entreprise = Entreprise.query.filter_by(
|
entreprises = Entreprise.query.filter_by(visible=False).all()
|
||||||
id=entreprise_id, visible=True
|
|
||||||
).first_or_404(description=f"fiche entreprise {entreprise_id} inconnue")
|
|
||||||
offres_with_files = are.get_offres_non_expirees_with_files(entreprise.offres)
|
|
||||||
logs = (
|
|
||||||
EntrepriseHistorique.query.order_by(EntrepriseHistorique.date.desc())
|
|
||||||
.filter(EntrepriseHistorique.entreprise_id == entreprise.id)
|
|
||||||
.limit(LOGS_LEN)
|
|
||||||
.all()
|
|
||||||
)
|
|
||||||
stages_apprentissages = (
|
|
||||||
db.session.query(EntrepriseStageApprentissage, Identite)
|
|
||||||
.order_by(EntrepriseStageApprentissage.date_debut.desc())
|
|
||||||
.filter(EntrepriseStageApprentissage.entreprise_id == entreprise.id)
|
|
||||||
.join(Identite, Identite.id == EntrepriseStageApprentissage.etudid)
|
|
||||||
.all()
|
|
||||||
)
|
|
||||||
taxes = (
|
|
||||||
EntrepriseTaxeApprentissage.query.filter_by(entreprise_id=entreprise.id)
|
|
||||||
.order_by(EntrepriseTaxeApprentissage.annee.desc())
|
|
||||||
.all()
|
|
||||||
)
|
|
||||||
return render_template(
|
return render_template(
|
||||||
"entreprises/fiche_entreprise.html",
|
"entreprises/entreprises_validation.html",
|
||||||
title="Fiche entreprise",
|
title="Validation entreprises",
|
||||||
entreprise=entreprise,
|
entreprises=entreprises,
|
||||||
offres=offres_with_files,
|
|
||||||
logs=logs,
|
|
||||||
stages_apprentissages=stages_apprentissages,
|
|
||||||
taxes=taxes,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/fiche_entreprise/<int:entreprise_id>/logs", methods=["GET"])
|
|
||||||
@permission_required(Permission.RelationsEntreprisesView)
|
|
||||||
def logs_entreprise(entreprise_id):
|
|
||||||
"""
|
|
||||||
Permet d'afficher les logs d'une entreprise
|
|
||||||
"""
|
|
||||||
page = request.args.get("page", 1, type=int)
|
|
||||||
entreprise = Entreprise.query.filter_by(
|
|
||||||
id=entreprise_id, visible=True
|
|
||||||
).first_or_404(description=f"logs fiche entreprise {entreprise_id} inconnu")
|
|
||||||
logs = (
|
|
||||||
EntrepriseHistorique.query.order_by(EntrepriseHistorique.date.desc())
|
|
||||||
.filter(EntrepriseHistorique.entreprise_id == entreprise.id)
|
|
||||||
.paginate(page=page, per_page=20)
|
|
||||||
)
|
|
||||||
return render_template(
|
|
||||||
"entreprises/logs_entreprise.html",
|
|
||||||
title="Logs",
|
|
||||||
logs=logs,
|
|
||||||
entreprise=entreprise,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -238,6 +173,82 @@ def fiche_entreprise_validation(entreprise_id):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route(
|
||||||
|
"/fiche_entreprise_validation/<int:entreprise_id>/validate_entreprise",
|
||||||
|
methods=["GET", "POST"],
|
||||||
|
)
|
||||||
|
@permission_required(Permission.RelationsEntreprisesValidate)
|
||||||
|
def validate_entreprise(entreprise_id):
|
||||||
|
"""
|
||||||
|
Permet de valider une entreprise
|
||||||
|
"""
|
||||||
|
form = ValidationConfirmationForm()
|
||||||
|
entreprise = Entreprise.query.filter_by(
|
||||||
|
id=entreprise_id, visible=False
|
||||||
|
).first_or_404(description=f"entreprise (validation) {entreprise_id} inconnue")
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for(
|
||||||
|
"entreprises.fiche_entreprise_validation", entreprise_id=entreprise_id
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if form.validate_on_submit():
|
||||||
|
entreprise.visible = True
|
||||||
|
nom_entreprise = f"<a href=/ScoDoc/entreprises/fiche_entreprise/{entreprise.id}>{entreprise.nom}</a>"
|
||||||
|
log = EntrepriseHistorique(
|
||||||
|
authenticated_user=current_user.user_name,
|
||||||
|
entreprise_id=entreprise.id,
|
||||||
|
text=f"{nom_entreprise} - Validation de la fiche entreprise ({entreprise.nom})",
|
||||||
|
)
|
||||||
|
db.session.add(log)
|
||||||
|
db.session.commit()
|
||||||
|
flash("L'entreprise a été validé et ajouté à la liste.")
|
||||||
|
return redirect(url_for("entreprises.validation"))
|
||||||
|
return render_template(
|
||||||
|
"entreprises/form_validate_confirmation.html",
|
||||||
|
title="Validation entreprise",
|
||||||
|
form=form,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route(
|
||||||
|
"/fiche_entreprise_validation/<int:entreprise_id>/delete_validation_entreprise",
|
||||||
|
methods=["GET", "POST"],
|
||||||
|
)
|
||||||
|
@permission_required(Permission.RelationsEntreprisesValidate)
|
||||||
|
def delete_validation_entreprise(entreprise_id):
|
||||||
|
"""
|
||||||
|
Permet de supprimer une entreprise en attente de validation avec une formulaire de validation
|
||||||
|
"""
|
||||||
|
entreprise = Entreprise.query.filter_by(
|
||||||
|
id=entreprise_id, visible=False
|
||||||
|
).first_or_404(description=f"entreprise (validation) {entreprise_id} inconnue")
|
||||||
|
form = SuppressionConfirmationForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for(
|
||||||
|
"entreprises.fiche_entreprise_validation", entreprise_id=entreprise_id
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if form.validate_on_submit():
|
||||||
|
db.session.delete(entreprise)
|
||||||
|
db.session.commit()
|
||||||
|
log = EntrepriseHistorique(
|
||||||
|
authenticated_user=current_user.user_name,
|
||||||
|
entreprise_id=entreprise.id,
|
||||||
|
text=f"Non validation de la fiche entreprise ({entreprise.nom})",
|
||||||
|
)
|
||||||
|
db.session.add(log)
|
||||||
|
flash("L'entreprise a été supprimé de la liste des entreprise à valider.")
|
||||||
|
return redirect(url_for("entreprises.validation"))
|
||||||
|
return render_template(
|
||||||
|
"entreprises/form_confirmation.html",
|
||||||
|
title="Supression entreprise",
|
||||||
|
form=form,
|
||||||
|
info_message="Cliquez sur le bouton Supprimer pour confirmer votre supression",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/offres_recues", methods=["GET"])
|
@bp.route("/offres_recues", methods=["GET"])
|
||||||
@permission_required(Permission.RelationsEntreprisesView)
|
@permission_required(Permission.RelationsEntreprisesView)
|
||||||
def offres_recues():
|
def offres_recues():
|
||||||
@ -277,21 +288,42 @@ def offres_recues():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/fiche_entreprise/<int:entreprise_id>/offres_expirees")
|
@bp.route(
|
||||||
|
"/offres_recues/delete_offre_recue/<int:envoi_offre_id>", methods=["GET", "POST"]
|
||||||
|
)
|
||||||
@permission_required(Permission.RelationsEntreprisesView)
|
@permission_required(Permission.RelationsEntreprisesView)
|
||||||
def offres_expirees(entreprise_id):
|
def delete_offre_recue(envoi_offre_id):
|
||||||
"""
|
"""
|
||||||
Permet d'afficher la liste des offres expirés d'une entreprise
|
Permet de supprimer une offre reçue
|
||||||
"""
|
"""
|
||||||
entreprise = Entreprise.query.filter_by(
|
offre_recue = EntrepriseEnvoiOffre.query.filter_by(
|
||||||
id=entreprise_id, visible=True
|
id=envoi_offre_id, receiver_id=current_user.id
|
||||||
).first_or_404(description=f"fiche entreprise {entreprise_id} inconnue")
|
).first_or_404(description=f"offre recu {envoi_offre_id} inconnue")
|
||||||
offres_with_files = are.get_offres_expirees_with_files(entreprise.offres)
|
db.session.delete(offre_recue)
|
||||||
|
db.session.commit()
|
||||||
|
return redirect(url_for("entreprises.offres_recues"))
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route("/preferences", methods=["GET", "POST"])
|
||||||
|
@permission_required(Permission.RelationsEntreprisesValidate)
|
||||||
|
def preferences():
|
||||||
|
"""
|
||||||
|
Permet d'afficher la page des préférences du module gestion des relations entreprises
|
||||||
|
"""
|
||||||
|
form = PreferencesForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(url_for("entreprises.index"))
|
||||||
|
if form.validate_on_submit():
|
||||||
|
EntreprisePreferences.set_email_notifications(form.mail_entreprise.data.strip())
|
||||||
|
EntreprisePreferences.set_check_siret(int(form.check_siret.data))
|
||||||
|
return redirect(url_for("entreprises.index"))
|
||||||
|
elif request.method == "GET":
|
||||||
|
form.mail_entreprise.data = EntreprisePreferences.get_email_notifications()
|
||||||
|
form.check_siret.data = int(EntreprisePreferences.get_check_siret())
|
||||||
return render_template(
|
return render_template(
|
||||||
"entreprises/offres_expirees.html",
|
"entreprises/preferences.html",
|
||||||
title="Offres expirées",
|
title="Préférences",
|
||||||
entreprise=entreprise,
|
form=form,
|
||||||
offres_expirees=offres_with_files,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -302,6 +334,8 @@ def add_entreprise():
|
|||||||
Permet d'ajouter une entreprise dans la base avec un formulaire
|
Permet d'ajouter une entreprise dans la base avec un formulaire
|
||||||
"""
|
"""
|
||||||
form = EntrepriseCreationForm()
|
form = EntrepriseCreationForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(url_for("entreprises.index"))
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
entreprise = Entreprise(
|
entreprise = Entreprise(
|
||||||
nom=form.nom_entreprise.data.strip(),
|
nom=form.nom_entreprise.data.strip(),
|
||||||
@ -380,6 +414,89 @@ def add_entreprise():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route("/fiche_entreprise/<int:entreprise_id>", methods=["GET"])
|
||||||
|
@permission_required(Permission.RelationsEntreprisesView)
|
||||||
|
def fiche_entreprise(entreprise_id):
|
||||||
|
"""
|
||||||
|
Permet d'afficher la fiche entreprise d'une entreprise avec une liste des dernières opérations et
|
||||||
|
l'historique des étudiants ayant réaliser un stage ou une alternance dans cette entreprise.
|
||||||
|
La fiche entreprise comporte les informations de l'entreprise, les correspondants de l'entreprise et
|
||||||
|
les offres de l'entreprise.
|
||||||
|
"""
|
||||||
|
entreprise = Entreprise.query.filter_by(
|
||||||
|
id=entreprise_id, visible=True
|
||||||
|
).first_or_404(description=f"fiche entreprise {entreprise_id} inconnue")
|
||||||
|
offres_with_files = are.get_offres_non_expirees_with_files(entreprise.offres)
|
||||||
|
logs = (
|
||||||
|
EntrepriseHistorique.query.order_by(EntrepriseHistorique.date.desc())
|
||||||
|
.filter(EntrepriseHistorique.entreprise_id == entreprise.id)
|
||||||
|
.limit(LOGS_LEN)
|
||||||
|
.all()
|
||||||
|
)
|
||||||
|
stages_apprentissages = (
|
||||||
|
db.session.query(EntrepriseStageApprentissage, Identite)
|
||||||
|
.order_by(EntrepriseStageApprentissage.date_debut.desc())
|
||||||
|
.filter(EntrepriseStageApprentissage.entreprise_id == entreprise.id)
|
||||||
|
.join(Identite, Identite.id == EntrepriseStageApprentissage.etudid)
|
||||||
|
.all()
|
||||||
|
)
|
||||||
|
taxes = (
|
||||||
|
EntrepriseTaxeApprentissage.query.filter_by(entreprise_id=entreprise.id)
|
||||||
|
.order_by(EntrepriseTaxeApprentissage.annee.desc())
|
||||||
|
.all()
|
||||||
|
)
|
||||||
|
return render_template(
|
||||||
|
"entreprises/fiche_entreprise.html",
|
||||||
|
title="Fiche entreprise",
|
||||||
|
entreprise=entreprise,
|
||||||
|
offres=offres_with_files,
|
||||||
|
logs=logs,
|
||||||
|
stages_apprentissages=stages_apprentissages,
|
||||||
|
taxes=taxes,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route("/fiche_entreprise/<int:entreprise_id>/logs", methods=["GET"])
|
||||||
|
@permission_required(Permission.RelationsEntreprisesView)
|
||||||
|
def logs_entreprise(entreprise_id):
|
||||||
|
"""
|
||||||
|
Permet d'afficher les logs d'une entreprise
|
||||||
|
"""
|
||||||
|
page = request.args.get("page", 1, type=int)
|
||||||
|
entreprise = Entreprise.query.filter_by(
|
||||||
|
id=entreprise_id, visible=True
|
||||||
|
).first_or_404(description=f"logs fiche entreprise {entreprise_id} inconnu")
|
||||||
|
logs = (
|
||||||
|
EntrepriseHistorique.query.order_by(EntrepriseHistorique.date.desc())
|
||||||
|
.filter(EntrepriseHistorique.entreprise_id == entreprise.id)
|
||||||
|
.paginate(page=page, per_page=20)
|
||||||
|
)
|
||||||
|
return render_template(
|
||||||
|
"entreprises/logs_entreprise.html",
|
||||||
|
title="Logs",
|
||||||
|
logs=logs,
|
||||||
|
entreprise=entreprise,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route("/fiche_entreprise/<int:entreprise_id>/offres_expirees")
|
||||||
|
@permission_required(Permission.RelationsEntreprisesView)
|
||||||
|
def offres_expirees(entreprise_id):
|
||||||
|
"""
|
||||||
|
Permet d'afficher la liste des offres expirés d'une entreprise
|
||||||
|
"""
|
||||||
|
entreprise = Entreprise.query.filter_by(
|
||||||
|
id=entreprise_id, visible=True
|
||||||
|
).first_or_404(description=f"fiche entreprise {entreprise_id} inconnue")
|
||||||
|
offres_with_files = are.get_offres_expirees_with_files(entreprise.offres)
|
||||||
|
return render_template(
|
||||||
|
"entreprises/offres_expirees.html",
|
||||||
|
title="Offres expirées",
|
||||||
|
entreprise=entreprise,
|
||||||
|
offres_expirees=offres_with_files,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@bp.route(
|
@bp.route(
|
||||||
"/fiche_entreprise/<int:entreprise_id>/edit_entreprise", methods=["GET", "POST"]
|
"/fiche_entreprise/<int:entreprise_id>/edit_entreprise", methods=["GET", "POST"]
|
||||||
)
|
)
|
||||||
@ -392,6 +509,10 @@ def edit_entreprise(entreprise_id):
|
|||||||
id=entreprise_id, visible=True
|
id=entreprise_id, visible=True
|
||||||
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
||||||
form = EntrepriseModificationForm(siret=entreprise.siret)
|
form = EntrepriseModificationForm(siret=entreprise.siret)
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
lien_entreprise = f"<a href='{url_for('entreprises.fiche_entreprise', entreprise_id=entreprise.id)}'>{form.nom.data.strip()}</a>"
|
lien_entreprise = f"<a href='{url_for('entreprises.fiche_entreprise', entreprise_id=entreprise.id)}'>{form.nom.data.strip()}</a>"
|
||||||
logs_text = []
|
logs_text = []
|
||||||
@ -469,6 +590,10 @@ def fiche_entreprise_desactiver(entreprise_id):
|
|||||||
id=entreprise_id, visible=True, active=True
|
id=entreprise_id, visible=True, active=True
|
||||||
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
||||||
form = DesactivationConfirmationForm()
|
form = DesactivationConfirmationForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
entreprise.notes_active = form.notes_active.data.strip()
|
entreprise.notes_active = form.notes_active.data.strip()
|
||||||
entreprise.active = False
|
entreprise.active = False
|
||||||
@ -502,6 +627,10 @@ def fiche_entreprise_activer(entreprise_id):
|
|||||||
id=entreprise_id, visible=True, active=False
|
id=entreprise_id, visible=True, active=False
|
||||||
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
||||||
form = ActivationConfirmationForm()
|
form = ActivationConfirmationForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
entreprise.active = True
|
entreprise.active = True
|
||||||
lien_entreprise = f"<a href='{url_for('entreprises.fiche_entreprise', entreprise_id=entreprise.id)}'>{entreprise.nom}</a>"
|
lien_entreprise = f"<a href='{url_for('entreprises.fiche_entreprise', entreprise_id=entreprise.id)}'>{entreprise.nom}</a>"
|
||||||
@ -536,6 +665,10 @@ def add_taxe_apprentissage(entreprise_id):
|
|||||||
id=entreprise_id, visible=True
|
id=entreprise_id, visible=True
|
||||||
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
||||||
form = TaxeApprentissageForm(hidden_entreprise_id=entreprise.id)
|
form = TaxeApprentissageForm(hidden_entreprise_id=entreprise.id)
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
taxe = EntrepriseTaxeApprentissage(
|
taxe = EntrepriseTaxeApprentissage(
|
||||||
entreprise_id=entreprise.id,
|
entreprise_id=entreprise.id,
|
||||||
@ -579,6 +712,10 @@ def edit_taxe_apprentissage(entreprise_id, taxe_id):
|
|||||||
description=f"taxe d'apprentissage {taxe_id} inconnue pour l'entreprise {entreprise_id}"
|
description=f"taxe d'apprentissage {taxe_id} inconnue pour l'entreprise {entreprise_id}"
|
||||||
)
|
)
|
||||||
form = TaxeApprentissageModificationForm(annee=taxe.annee)
|
form = TaxeApprentissageModificationForm(annee=taxe.annee)
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
taxe.montant = form.montant.data
|
taxe.montant = form.montant.data
|
||||||
taxe.notes = form.notes.data.strip()
|
taxe.notes = form.notes.data.strip()
|
||||||
@ -618,6 +755,10 @@ def delete_taxe_apprentissage(entreprise_id, taxe_id):
|
|||||||
description=f"taxe d'apprentissage {taxe_id} inconnue pour l'entreprise {entreprise_id}"
|
description=f"taxe d'apprentissage {taxe_id} inconnue pour l'entreprise {entreprise_id}"
|
||||||
)
|
)
|
||||||
form = SuppressionConfirmationForm()
|
form = SuppressionConfirmationForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
db.session.delete(taxe)
|
db.session.delete(taxe)
|
||||||
log = EntrepriseHistorique(
|
log = EntrepriseHistorique(
|
||||||
@ -641,70 +782,6 @@ def delete_taxe_apprentissage(entreprise_id, taxe_id):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@bp.route(
|
|
||||||
"/fiche_entreprise_validation/<int:entreprise_id>/validate_entreprise",
|
|
||||||
methods=["GET", "POST"],
|
|
||||||
)
|
|
||||||
@permission_required(Permission.RelationsEntreprisesValidate)
|
|
||||||
def validate_entreprise(entreprise_id):
|
|
||||||
"""
|
|
||||||
Permet de valider une entreprise
|
|
||||||
"""
|
|
||||||
form = ValidationConfirmationForm()
|
|
||||||
entreprise = Entreprise.query.filter_by(
|
|
||||||
id=entreprise_id, visible=False
|
|
||||||
).first_or_404(description=f"entreprise (validation) {entreprise_id} inconnue")
|
|
||||||
if form.validate_on_submit():
|
|
||||||
entreprise.visible = True
|
|
||||||
nom_entreprise = f"<a href=/ScoDoc/entreprises/fiche_entreprise/{entreprise.id}>{entreprise.nom}</a>"
|
|
||||||
log = EntrepriseHistorique(
|
|
||||||
authenticated_user=current_user.user_name,
|
|
||||||
entreprise_id=entreprise.id,
|
|
||||||
text=f"{nom_entreprise} - Validation de la fiche entreprise ({entreprise.nom})",
|
|
||||||
)
|
|
||||||
db.session.add(log)
|
|
||||||
db.session.commit()
|
|
||||||
flash("L'entreprise a été validé et ajouté à la liste.")
|
|
||||||
return redirect(url_for("entreprises.validation"))
|
|
||||||
return render_template(
|
|
||||||
"entreprises/form_validate_confirmation.html",
|
|
||||||
title="Validation entreprise",
|
|
||||||
form=form,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route(
|
|
||||||
"/fiche_entreprise_validation/<int:entreprise_id>/delete_validation_entreprise",
|
|
||||||
methods=["GET", "POST"],
|
|
||||||
)
|
|
||||||
@permission_required(Permission.RelationsEntreprisesValidate)
|
|
||||||
def delete_validation_entreprise(entreprise_id):
|
|
||||||
"""
|
|
||||||
Permet de supprimer une entreprise en attente de validation avec une formulaire de validation
|
|
||||||
"""
|
|
||||||
entreprise = Entreprise.query.filter_by(
|
|
||||||
id=entreprise_id, visible=False
|
|
||||||
).first_or_404(description=f"entreprise (validation) {entreprise_id} inconnue")
|
|
||||||
form = SuppressionConfirmationForm()
|
|
||||||
if form.validate_on_submit():
|
|
||||||
db.session.delete(entreprise)
|
|
||||||
db.session.commit()
|
|
||||||
log = EntrepriseHistorique(
|
|
||||||
authenticated_user=current_user.user_name,
|
|
||||||
entreprise_id=entreprise.id,
|
|
||||||
text=f"Non validation de la fiche entreprise ({entreprise.nom})",
|
|
||||||
)
|
|
||||||
db.session.add(log)
|
|
||||||
flash("L'entreprise a été supprimé de la liste des entreprise à valider.")
|
|
||||||
return redirect(url_for("entreprises.validation"))
|
|
||||||
return render_template(
|
|
||||||
"entreprises/form_confirmation.html",
|
|
||||||
title="Supression entreprise",
|
|
||||||
form=form,
|
|
||||||
info_message="Cliquez sur le bouton Supprimer pour confirmer votre supression",
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/fiche_entreprise/<int:entreprise_id>/add_offre", methods=["GET", "POST"])
|
@bp.route("/fiche_entreprise/<int:entreprise_id>/add_offre", methods=["GET", "POST"])
|
||||||
@permission_required(Permission.RelationsEntreprisesChange)
|
@permission_required(Permission.RelationsEntreprisesChange)
|
||||||
def add_offre(entreprise_id):
|
def add_offre(entreprise_id):
|
||||||
@ -715,6 +792,10 @@ def add_offre(entreprise_id):
|
|||||||
id=entreprise_id, visible=True
|
id=entreprise_id, visible=True
|
||||||
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
||||||
form = OffreCreationForm(hidden_entreprise_id=entreprise.id)
|
form = OffreCreationForm(hidden_entreprise_id=entreprise.id)
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
offre = EntrepriseOffre(
|
offre = EntrepriseOffre(
|
||||||
entreprise_id=entreprise.id,
|
entreprise_id=entreprise.id,
|
||||||
@ -785,10 +866,14 @@ def edit_offre(entreprise_id, offre_id):
|
|||||||
description=f"offre {offre_id} inconnue pour l'entreprise {entreprise_id}"
|
description=f"offre {offre_id} inconnue pour l'entreprise {entreprise_id}"
|
||||||
)
|
)
|
||||||
offre_depts = EntrepriseOffreDepartement.query.filter_by(offre_id=offre.id).all()
|
offre_depts = EntrepriseOffreDepartement.query.filter_by(offre_id=offre.id).all()
|
||||||
|
offre_depts_list = [(offre_dept.dept_id) for offre_dept in offre_depts]
|
||||||
form = OffreModificationForm(
|
form = OffreModificationForm(
|
||||||
hidden_entreprise_id=offre.entreprise_id, correspondant=offre.correspondant_id
|
hidden_entreprise_id=offre.entreprise_id, correspondant=offre.correspondant_id
|
||||||
)
|
)
|
||||||
offre_depts_list = [(offre_dept.dept_id) for offre_dept in offre_depts]
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
offre.intitule = form.intitule.data.strip()
|
offre.intitule = form.intitule.data.strip()
|
||||||
offre.description = form.description.data.strip()
|
offre.description = form.description.data.strip()
|
||||||
@ -858,6 +943,10 @@ def delete_offre(entreprise_id, offre_id):
|
|||||||
)
|
)
|
||||||
entreprise_id = offre.entreprise.id
|
entreprise_id = offre.entreprise.id
|
||||||
form = SuppressionConfirmationForm()
|
form = SuppressionConfirmationForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
db.session.delete(offre)
|
db.session.delete(offre)
|
||||||
path = os.path.join(
|
path = os.path.join(
|
||||||
@ -889,22 +978,6 @@ def delete_offre(entreprise_id, offre_id):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@bp.route(
|
|
||||||
"/offres_recues/delete_offre_recue/<int:envoi_offre_id>", methods=["GET", "POST"]
|
|
||||||
)
|
|
||||||
@permission_required(Permission.RelationsEntreprisesView)
|
|
||||||
def delete_offre_recue(envoi_offre_id):
|
|
||||||
"""
|
|
||||||
Permet de supprimer une offre reçue
|
|
||||||
"""
|
|
||||||
offre_recue = EntrepriseEnvoiOffre.query.filter_by(
|
|
||||||
id=envoi_offre_id, receiver_id=current_user.id
|
|
||||||
).first_or_404(description=f"offre recu {envoi_offre_id} inconnue")
|
|
||||||
db.session.delete(offre_recue)
|
|
||||||
db.session.commit()
|
|
||||||
return redirect(url_for("entreprises.offres_recues"))
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route(
|
@bp.route(
|
||||||
"/fiche_entreprise/<int:entreprise_id>/expired/<int:offre_id>",
|
"/fiche_entreprise/<int:entreprise_id>/expired/<int:offre_id>",
|
||||||
methods=["GET", "POST"],
|
methods=["GET", "POST"],
|
||||||
@ -943,6 +1016,10 @@ def add_site(entreprise_id):
|
|||||||
id=entreprise_id, visible=True
|
id=entreprise_id, visible=True
|
||||||
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
||||||
form = SiteCreationForm(hidden_entreprise_id=entreprise.id)
|
form = SiteCreationForm(hidden_entreprise_id=entreprise.id)
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
site = EntrepriseSite(
|
site = EntrepriseSite(
|
||||||
entreprise_id=entreprise.id,
|
entreprise_id=entreprise.id,
|
||||||
@ -992,6 +1069,10 @@ def edit_site(entreprise_id, site_id):
|
|||||||
form = SiteModificationForm(
|
form = SiteModificationForm(
|
||||||
hidden_entreprise_id=site.entreprise_id, hidden_site_id=site.id
|
hidden_entreprise_id=site.entreprise_id, hidden_site_id=site.id
|
||||||
)
|
)
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
site.nom = form.nom.data.strip()
|
site.nom = form.nom.data.strip()
|
||||||
site.adresse = form.adresse.data.strip()
|
site.adresse = form.adresse.data.strip()
|
||||||
@ -1038,6 +1119,10 @@ def add_correspondant(entreprise_id, site_id):
|
|||||||
description=f"site {site_id} inconnue pour l'entreprise {entreprise_id}"
|
description=f"site {site_id} inconnue pour l'entreprise {entreprise_id}"
|
||||||
)
|
)
|
||||||
form = CorrespondantsCreationForm(hidden_site_id=site.id)
|
form = CorrespondantsCreationForm(hidden_site_id=site.id)
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
for correspondant_entry in form.correspondants.entries:
|
for correspondant_entry in form.correspondants.entries:
|
||||||
correspondant = EntrepriseCorrespondant(
|
correspondant = EntrepriseCorrespondant(
|
||||||
@ -1105,6 +1190,10 @@ def edit_correspondant(entreprise_id, site_id, correspondant_id):
|
|||||||
hidden_site_id=correspondant.site.id,
|
hidden_site_id=correspondant.site.id,
|
||||||
hidden_correspondant_id=correspondant.id,
|
hidden_correspondant_id=correspondant.id,
|
||||||
)
|
)
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
correspondant.civilite = form.civilite.data
|
correspondant.civilite = form.civilite.data
|
||||||
correspondant.nom = form.nom.data.strip()
|
correspondant.nom = form.nom.data.strip()
|
||||||
@ -1175,6 +1264,10 @@ def delete_correspondant(entreprise_id, site_id, correspondant_id):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
form = SuppressionConfirmationForm()
|
form = SuppressionConfirmationForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
db.session.delete(correspondant)
|
db.session.delete(correspondant)
|
||||||
log = EntrepriseHistorique(
|
log = EntrepriseHistorique(
|
||||||
@ -1201,6 +1294,24 @@ def delete_correspondant(entreprise_id, site_id, correspondant_id):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route("/fiche_entreprise/<int:entreprise_id>/contacts")
|
||||||
|
@permission_required(Permission.RelationsEntreprisesView)
|
||||||
|
def contacts(entreprise_id):
|
||||||
|
"""
|
||||||
|
Permet d'afficher une page avec la liste des contacts d'une entreprise
|
||||||
|
"""
|
||||||
|
entreprise = Entreprise.query.filter_by(
|
||||||
|
id=entreprise_id, visible=True
|
||||||
|
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
||||||
|
contacts = EntrepriseContact.query.filter_by(entreprise=entreprise.id).all()
|
||||||
|
return render_template(
|
||||||
|
"entreprises/contacts.html",
|
||||||
|
title="Liste des contacts",
|
||||||
|
contacts=contacts,
|
||||||
|
entreprise=entreprise,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@bp.route(
|
@bp.route(
|
||||||
"/fiche_entreprise/<int:entreprise_id>/contacts/add_contact",
|
"/fiche_entreprise/<int:entreprise_id>/contacts/add_contact",
|
||||||
methods=["GET", "POST"],
|
methods=["GET", "POST"],
|
||||||
@ -1219,6 +1330,8 @@ def add_contact(entreprise_id):
|
|||||||
if current_user.nom and current_user.prenom
|
if current_user.nom and current_user.prenom
|
||||||
else "",
|
else "",
|
||||||
)
|
)
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(url_for("entreprises.contacts", entreprise_id=entreprise_id))
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
utilisateur_data = form.utilisateur.data.upper().strip()
|
utilisateur_data = form.utilisateur.data.upper().strip()
|
||||||
stm = text(
|
stm = text(
|
||||||
@ -1270,6 +1383,8 @@ def edit_contact(entreprise_id, contact_id):
|
|||||||
description=f"contact {contact_id} inconnu pour l'entreprise {entreprise_id}"
|
description=f"contact {contact_id} inconnu pour l'entreprise {entreprise_id}"
|
||||||
)
|
)
|
||||||
form = ContactModificationForm()
|
form = ContactModificationForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(url_for("entreprises.contacts", entreprise_id=entreprise_id))
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
utilisateur_data = form.utilisateur.data.upper().strip()
|
utilisateur_data = form.utilisateur.data.upper().strip()
|
||||||
stm = text(
|
stm = text(
|
||||||
@ -1324,6 +1439,8 @@ def delete_contact(entreprise_id, contact_id):
|
|||||||
description=f"contact {contact_id} inconnu pour l'entreprise {entreprise_id}"
|
description=f"contact {contact_id} inconnu pour l'entreprise {entreprise_id}"
|
||||||
)
|
)
|
||||||
form = SuppressionConfirmationForm()
|
form = SuppressionConfirmationForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(url_for("entreprises.contacts", entreprise_id=entreprise_id))
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
db.session.delete(contact)
|
db.session.delete(contact)
|
||||||
log = EntrepriseHistorique(
|
log = EntrepriseHistorique(
|
||||||
@ -1346,24 +1463,6 @@ def delete_contact(entreprise_id, contact_id):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/fiche_entreprise/<int:entreprise_id>/contacts")
|
|
||||||
@permission_required(Permission.RelationsEntreprisesView)
|
|
||||||
def contacts(entreprise_id):
|
|
||||||
"""
|
|
||||||
Permet d'afficher une page avec la liste des contacts d'une entreprise
|
|
||||||
"""
|
|
||||||
entreprise = Entreprise.query.filter_by(
|
|
||||||
id=entreprise_id, visible=True
|
|
||||||
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
|
||||||
contacts = EntrepriseContact.query.filter_by(entreprise=entreprise.id).all()
|
|
||||||
return render_template(
|
|
||||||
"entreprises/contacts.html",
|
|
||||||
title="Liste des contacts",
|
|
||||||
contacts=contacts,
|
|
||||||
entreprise=entreprise,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route(
|
@bp.route(
|
||||||
"/fiche_entreprise/<int:entreprise_id>/add_stage_apprentissage",
|
"/fiche_entreprise/<int:entreprise_id>/add_stage_apprentissage",
|
||||||
methods=["GET", "POST"],
|
methods=["GET", "POST"],
|
||||||
@ -1377,6 +1476,10 @@ def add_stage_apprentissage(entreprise_id):
|
|||||||
id=entreprise_id, visible=True
|
id=entreprise_id, visible=True
|
||||||
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
).first_or_404(description=f"entreprise {entreprise_id} inconnue")
|
||||||
form = StageApprentissageCreationForm()
|
form = StageApprentissageCreationForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
etudiant_nomcomplet = form.etudiant.data.upper().strip()
|
etudiant_nomcomplet = form.etudiant.data.upper().strip()
|
||||||
stm = text(
|
stm = text(
|
||||||
@ -1443,6 +1546,10 @@ def edit_stage_apprentissage(entreprise_id, stage_apprentissage_id):
|
|||||||
description=f"etudiant {stage_apprentissage.etudid} inconnue"
|
description=f"etudiant {stage_apprentissage.etudid} inconnue"
|
||||||
)
|
)
|
||||||
form = StageApprentissageModificationForm()
|
form = StageApprentissageModificationForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
etudiant_nomcomplet = form.etudiant.data.upper().strip()
|
etudiant_nomcomplet = form.etudiant.data.upper().strip()
|
||||||
stm = text(
|
stm = text(
|
||||||
@ -1508,6 +1615,10 @@ def delete_stage_apprentissage(entreprise_id, stage_apprentissage_id):
|
|||||||
id=stage_apprentissage_id, entreprise_id=entreprise_id
|
id=stage_apprentissage_id, entreprise_id=entreprise_id
|
||||||
).first_or_404(description=f"stage_apprentissage {stage_apprentissage_id} inconnu")
|
).first_or_404(description=f"stage_apprentissage {stage_apprentissage_id} inconnu")
|
||||||
form = SuppressionConfirmationForm()
|
form = SuppressionConfirmationForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
db.session.delete(stage_apprentissage)
|
db.session.delete(stage_apprentissage)
|
||||||
log = EntrepriseHistorique(
|
log = EntrepriseHistorique(
|
||||||
@ -1548,6 +1659,10 @@ def envoyer_offre(entreprise_id, offre_id):
|
|||||||
description=f"offre {offre_id} inconnue pour l'entreprise {entreprise_id}"
|
description=f"offre {offre_id} inconnue pour l'entreprise {entreprise_id}"
|
||||||
)
|
)
|
||||||
form = EnvoiOffreForm()
|
form = EnvoiOffreForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
for responsable in form.responsables.entries:
|
for responsable in form.responsables.entries:
|
||||||
if responsable.data.strip():
|
if responsable.data.strip():
|
||||||
@ -1652,7 +1767,7 @@ def export_donnees():
|
|||||||
|
|
||||||
@bp.route("/import_donnees/get_file_sample")
|
@bp.route("/import_donnees/get_file_sample")
|
||||||
@permission_required(Permission.RelationsEntreprisesExport)
|
@permission_required(Permission.RelationsEntreprisesExport)
|
||||||
def get_import_donnees_file_sample():
|
def import_donnees_get_file_sample():
|
||||||
"""
|
"""
|
||||||
Permet de récupérer un fichier exemple vide pour pouvoir importer des entreprises
|
Permet de récupérer un fichier exemple vide pour pouvoir importer des entreprises
|
||||||
"""
|
"""
|
||||||
@ -1787,6 +1902,10 @@ def add_offre_file(entreprise_id, offre_id):
|
|||||||
description=f"offre {offre_id} inconnue pour l'entreprise {entreprise_id}"
|
description=f"offre {offre_id} inconnue pour l'entreprise {entreprise_id}"
|
||||||
)
|
)
|
||||||
form = AjoutFichierForm()
|
form = AjoutFichierForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
date = f"{datetime.now().strftime('%Y-%m-%d-%H-%M-%S')}"
|
date = f"{datetime.now().strftime('%Y-%m-%d-%H-%M-%S')}"
|
||||||
path = os.path.join(
|
path = os.path.join(
|
||||||
@ -1826,6 +1945,10 @@ def delete_offre_file(entreprise_id, offre_id, filedir):
|
|||||||
description=f"offre {offre_id} inconnue pour l'entreprise {entreprise_id}"
|
description=f"offre {offre_id} inconnue pour l'entreprise {entreprise_id}"
|
||||||
)
|
)
|
||||||
form = SuppressionConfirmationForm()
|
form = SuppressionConfirmationForm()
|
||||||
|
if request.method == "POST" and form.cancel.data:
|
||||||
|
return redirect(
|
||||||
|
url_for("entreprises.fiche_entreprise", entreprise_id=entreprise_id)
|
||||||
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
path = os.path.join(
|
path = os.path.join(
|
||||||
Config.SCODOC_VAR_DIR,
|
Config.SCODOC_VAR_DIR,
|
||||||
@ -1850,27 +1973,6 @@ def delete_offre_file(entreprise_id, offre_id, filedir):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/preferences", methods=["GET", "POST"])
|
|
||||||
@permission_required(Permission.RelationsEntreprisesValidate)
|
|
||||||
def preferences():
|
|
||||||
"""
|
|
||||||
Permet d'afficher la page des préférences du module gestion des relations entreprises
|
|
||||||
"""
|
|
||||||
form = PreferencesForm()
|
|
||||||
if form.validate_on_submit():
|
|
||||||
EntreprisePreferences.set_email_notifications(form.mail_entreprise.data.strip())
|
|
||||||
EntreprisePreferences.set_check_siret(int(form.check_siret.data))
|
|
||||||
return redirect(url_for("entreprises.index"))
|
|
||||||
elif request.method == "GET":
|
|
||||||
form.mail_entreprise.data = EntreprisePreferences.get_email_notifications()
|
|
||||||
form.check_siret.data = int(EntreprisePreferences.get_check_siret())
|
|
||||||
return render_template(
|
|
||||||
"entreprises/preferences.html",
|
|
||||||
title="Préférences",
|
|
||||||
form=form,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@bp.errorhandler(404)
|
@bp.errorhandler(404)
|
||||||
def not_found_error_handler(e):
|
def not_found_error_handler(e):
|
||||||
"""
|
"""
|
||||||
|
@ -2,6 +2,17 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
|
|
||||||
{% block app_content %}
|
{% block app_content %}
|
||||||
|
<div class="container">
|
||||||
|
<ul class="breadcrumbs">
|
||||||
|
<li class="breadcrumbs_item">
|
||||||
|
<a href="{{ url_for('entreprises.validation') }}" class="breadcrumbs_link">Entreprises</a>
|
||||||
|
</li>
|
||||||
|
<li class="breadcrumbs_item">
|
||||||
|
<a href="" class="breadcrumbs_link breadcrumbs_link-active">Fiche entreprise</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h2>Fiche entreprise - {{ entreprise.nom }} ({{ entreprise.siret }})</h2>
|
<h2>Fiche entreprise - {{ entreprise.nom }} ({{ entreprise.siret }})</h2>
|
||||||
|
|
||||||
|
@ -32,7 +32,8 @@
|
|||||||
{{ form.correspondants }}
|
{{ form.correspondants }}
|
||||||
<div style="margin-bottom: 10px;">
|
<div style="margin-bottom: 10px;">
|
||||||
<button class="btn btn-default" id="add-correspondant-field">Ajouter un correspondant</button>
|
<button class="btn btn-default" id="add-correspondant-field">Ajouter un correspondant</button>
|
||||||
<input class="btn btn-default" type="submit" value="Envoyer">
|
{{ form.submit(class_="btn btn-default") }}
|
||||||
|
{{ form.cancel(class_="btn btn-default") }}
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -25,7 +25,8 @@
|
|||||||
{{ form.responsables }}
|
{{ form.responsables }}
|
||||||
<div style="margin-bottom: 10px;">
|
<div style="margin-bottom: 10px;">
|
||||||
<button class="btn btn-default" id="add-responsable-field">Ajouter un responsable</button>
|
<button class="btn btn-default" id="add-responsable-field">Ajouter un responsable</button>
|
||||||
<input class="btn btn-default" type="submit" value="Envoyer">
|
{{ form.submit(class_="btn btn-default") }}
|
||||||
|
{{ form.cancel(class_="btn btn-default") }}
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
<h1>{{ title }}</h1>
|
<h1>{{ title }}</h1>
|
||||||
<br>
|
<br>
|
||||||
<div>
|
<div>
|
||||||
<a href="{{ url_for('entreprises.get_import_donnees_file_sample') }}">Obtenir la feuille excel à remplir</a>
|
<a href="{{ url_for('entreprises.import_donnees_get_file_sample') }}">Obtenir la feuille excel à remplir</a>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
Loading…
Reference in New Issue
Block a user