From a200add8dff3df020381f8a0018ab417d0569f3d Mon Sep 17 00:00:00 2001 From: Arthur ZHU Date: Tue, 23 Aug 2022 18:54:44 +0200 Subject: [PATCH] ajout boutons annuler --- app/entreprises/forms.py | 25 +- app/entreprises/routes.py | 512 +++++++++++------- .../fiche_entreprise_validation.html | 11 + .../form_ajout_correspondants.html | 3 +- .../entreprises/form_envoi_offre.html | 3 +- app/templates/entreprises/import_donnees.html | 2 +- 6 files changed, 346 insertions(+), 210 deletions(-) diff --git a/app/entreprises/forms.py b/app/entreprises/forms.py index 227e9f8b..eb160890 100644 --- a/app/entreprises/forms.py +++ b/app/entreprises/forms.py @@ -123,6 +123,7 @@ class EntrepriseCreationForm(FlaskForm): notes = _build_string_field("Notes sur le correspondant", required=False) submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) def validate(self): validate = True @@ -200,6 +201,7 @@ class EntrepriseModificationForm(FlaskForm): ville = _build_string_field("Ville (*)") pays = _build_string_field("Pays", required=False) submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -245,6 +247,7 @@ class SiteCreationForm(FlaskForm): ville = _build_string_field("Ville (*)") pays = _build_string_field("Pays", required=False) submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) def validate(self): validate = True @@ -271,6 +274,7 @@ class SiteModificationForm(FlaskForm): ville = _build_string_field("Ville (*)") pays = _build_string_field("Pays", required=False) submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) def validate(self): validate = True @@ -321,6 +325,7 @@ class OffreCreationForm(FlaskForm): ], ) submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -368,6 +373,7 @@ class OffreModificationForm(FlaskForm): expiration_date = DateField("Date expiration", validators=[Optional()]) correspondant = SelectField("Correspondant à contacté", validators=[Optional()]) submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -450,7 +456,8 @@ class CorrespondantCreationForm(FlaskForm): class CorrespondantsCreationForm(FlaskForm): hidden_site_id = HiddenField() correspondants = FieldList(FormField(CorrespondantCreationForm), min_entries=1) - submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE) + submit = SubmitField("Envoyer") + cancel = SubmitField("Annuler") def validate(self): validate = True @@ -506,6 +513,7 @@ class CorrespondantModificationForm(FlaskForm): origine = _build_string_field("Origine", required=False) notes = _build_string_field("Notes", required=False) submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) def validate(self): validate = True @@ -543,6 +551,7 @@ class ContactCreationForm(FlaskForm): ) notes = TextAreaField("Notes (*)", validators=[DataRequired(message=CHAMP_REQUIS)]) submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) def validate_utilisateur(self, utilisateur): utilisateur_data = self.utilisateur.data.upper().strip() @@ -569,6 +578,7 @@ class ContactModificationForm(FlaskForm): ) notes = TextAreaField("Notes (*)", validators=[DataRequired(message=CHAMP_REQUIS)]) submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) def validate_utilisateur(self, utilisateur): utilisateur_data = self.utilisateur.data.upper().strip() @@ -602,6 +612,7 @@ class StageApprentissageCreationForm(FlaskForm): ) notes = TextAreaField("Notes") submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) def validate(self): validate = True @@ -649,6 +660,7 @@ class StageApprentissageModificationForm(FlaskForm): ) notes = TextAreaField("Notes") submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) def validate(self): validate = True @@ -705,6 +717,7 @@ class TaxeApprentissageForm(FlaskForm): ) notes = TextAreaField("Notes") submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) def validate(self): validate = True @@ -738,6 +751,7 @@ class TaxeApprentissageModificationForm(FlaskForm): ) notes = TextAreaField("Notes") submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -755,7 +769,8 @@ class EnvoiOffreForm(FlaskForm): ), min_entries=1, ) - submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE) + submit = SubmitField("Envoyer") + cancel = SubmitField("Annuler") def validate(self): validate = True @@ -795,23 +810,28 @@ class AjoutFichierForm(FlaskForm): ], ) submit = SubmitField("Ajouter", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) class SuppressionConfirmationForm(FlaskForm): submit = SubmitField("Supprimer", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) class DesactivationConfirmationForm(FlaskForm): notes_active = TextAreaField("Notes sur la désactivation", validators=[Optional()]) submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) class ActivationConfirmationForm(FlaskForm): submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) class ValidationConfirmationForm(FlaskForm): submit = SubmitField("Valider", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) class ImportForm(FlaskForm): @@ -833,3 +853,4 @@ class PreferencesForm(FlaskForm): ) check_siret = BooleanField("Vérification SIRET") submit = SubmitField("Valider", render_kw=SUBMIT_MARGE) + cancel = SubmitField("Annuler", render_kw=SUBMIT_MARGE) diff --git a/app/entreprises/routes.py b/app/entreprises/routes.py index 41b8febb..babb5e49 100644 --- a/app/entreprises/routes.py +++ b/app/entreprises/routes.py @@ -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"]) @permission_required(Permission.RelationsEntreprisesCorrespondants) def correspondants(): @@ -155,68 +141,17 @@ def correspondants(): ) -@bp.route("/fiche_entreprise/", methods=["GET"]) -@permission_required(Permission.RelationsEntreprisesView) -def fiche_entreprise(entreprise_id): +@bp.route("/validation", methods=["GET"]) +@permission_required(Permission.RelationsEntreprisesValidate) +def validation(): """ - 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. + Permet d'afficher une page avec la liste des entreprises a valider (non visible) """ - 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() - ) + entreprises = Entreprise.query.filter_by(visible=False).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//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, + "entreprises/entreprises_validation.html", + title="Validation entreprises", + entreprises=entreprises, ) @@ -238,6 +173,82 @@ def fiche_entreprise_validation(entreprise_id): ) +@bp.route( + "/fiche_entreprise_validation//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"{entreprise.nom}" + 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//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"]) @permission_required(Permission.RelationsEntreprisesView) def offres_recues(): @@ -277,21 +288,42 @@ def offres_recues(): ) -@bp.route("/fiche_entreprise//offres_expirees") +@bp.route( + "/offres_recues/delete_offre_recue/", methods=["GET", "POST"] +) @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( - 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) + 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("/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( - "entreprises/offres_expirees.html", - title="Offres expirées", - entreprise=entreprise, - offres_expirees=offres_with_files, + "entreprises/preferences.html", + title="Préférences", + form=form, ) @@ -302,6 +334,8 @@ def add_entreprise(): Permet d'ajouter une entreprise dans la base avec un formulaire """ form = EntrepriseCreationForm() + if request.method == "POST" and form.cancel.data: + return redirect(url_for("entreprises.index")) if form.validate_on_submit(): entreprise = Entreprise( nom=form.nom_entreprise.data.strip(), @@ -380,6 +414,89 @@ def add_entreprise(): ) +@bp.route("/fiche_entreprise/", 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//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//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( "/fiche_entreprise//edit_entreprise", methods=["GET", "POST"] ) @@ -392,6 +509,10 @@ def edit_entreprise(entreprise_id): id=entreprise_id, visible=True ).first_or_404(description=f"entreprise {entreprise_id} inconnue") 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(): lien_entreprise = f"{form.nom.data.strip()}" logs_text = [] @@ -469,6 +590,10 @@ def fiche_entreprise_desactiver(entreprise_id): id=entreprise_id, visible=True, active=True ).first_or_404(description=f"entreprise {entreprise_id} inconnue") 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(): entreprise.notes_active = form.notes_active.data.strip() entreprise.active = False @@ -502,6 +627,10 @@ def fiche_entreprise_activer(entreprise_id): id=entreprise_id, visible=True, active=False ).first_or_404(description=f"entreprise {entreprise_id} inconnue") 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(): entreprise.active = True lien_entreprise = f"{entreprise.nom}" @@ -536,6 +665,10 @@ def add_taxe_apprentissage(entreprise_id): id=entreprise_id, visible=True ).first_or_404(description=f"entreprise {entreprise_id} inconnue") 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(): taxe = EntrepriseTaxeApprentissage( 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}" ) 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(): taxe.montant = form.montant.data 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}" ) 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(): db.session.delete(taxe) log = EntrepriseHistorique( @@ -641,70 +782,6 @@ def delete_taxe_apprentissage(entreprise_id, taxe_id): ) -@bp.route( - "/fiche_entreprise_validation//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"{entreprise.nom}" - 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//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//add_offre", methods=["GET", "POST"]) @permission_required(Permission.RelationsEntreprisesChange) def add_offre(entreprise_id): @@ -715,6 +792,10 @@ def add_offre(entreprise_id): id=entreprise_id, visible=True ).first_or_404(description=f"entreprise {entreprise_id} inconnue") 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(): offre = EntrepriseOffre( 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}" ) 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( 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(): offre.intitule = form.intitule.data.strip() offre.description = form.description.data.strip() @@ -858,6 +943,10 @@ def delete_offre(entreprise_id, offre_id): ) entreprise_id = offre.entreprise.id 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(): db.session.delete(offre) path = os.path.join( @@ -889,22 +978,6 @@ def delete_offre(entreprise_id, offre_id): ) -@bp.route( - "/offres_recues/delete_offre_recue/", 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( "/fiche_entreprise//expired/", methods=["GET", "POST"], @@ -943,6 +1016,10 @@ def add_site(entreprise_id): id=entreprise_id, visible=True ).first_or_404(description=f"entreprise {entreprise_id} inconnue") 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(): site = EntrepriseSite( entreprise_id=entreprise.id, @@ -992,6 +1069,10 @@ def edit_site(entreprise_id, site_id): form = SiteModificationForm( 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(): site.nom = form.nom.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}" ) 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(): for correspondant_entry in form.correspondants.entries: correspondant = EntrepriseCorrespondant( @@ -1105,6 +1190,10 @@ def edit_correspondant(entreprise_id, site_id, correspondant_id): hidden_site_id=correspondant.site.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(): correspondant.civilite = form.civilite.data correspondant.nom = form.nom.data.strip() @@ -1175,6 +1264,10 @@ def delete_correspondant(entreprise_id, site_id, correspondant_id): ) ) 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(): db.session.delete(correspondant) log = EntrepriseHistorique( @@ -1201,6 +1294,24 @@ def delete_correspondant(entreprise_id, site_id, correspondant_id): ) +@bp.route("/fiche_entreprise//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( "/fiche_entreprise//contacts/add_contact", methods=["GET", "POST"], @@ -1219,6 +1330,8 @@ def add_contact(entreprise_id): if current_user.nom and current_user.prenom else "", ) + if request.method == "POST" and form.cancel.data: + return redirect(url_for("entreprises.contacts", entreprise_id=entreprise_id)) if form.validate_on_submit(): utilisateur_data = form.utilisateur.data.upper().strip() stm = text( @@ -1270,6 +1383,8 @@ def edit_contact(entreprise_id, contact_id): description=f"contact {contact_id} inconnu pour l'entreprise {entreprise_id}" ) 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(): utilisateur_data = form.utilisateur.data.upper().strip() stm = text( @@ -1324,6 +1439,8 @@ def delete_contact(entreprise_id, contact_id): description=f"contact {contact_id} inconnu pour l'entreprise {entreprise_id}" ) 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(): db.session.delete(contact) log = EntrepriseHistorique( @@ -1346,24 +1463,6 @@ def delete_contact(entreprise_id, contact_id): ) -@bp.route("/fiche_entreprise//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( "/fiche_entreprise//add_stage_apprentissage", methods=["GET", "POST"], @@ -1377,6 +1476,10 @@ def add_stage_apprentissage(entreprise_id): id=entreprise_id, visible=True ).first_or_404(description=f"entreprise {entreprise_id} inconnue") 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(): etudiant_nomcomplet = form.etudiant.data.upper().strip() stm = text( @@ -1443,6 +1546,10 @@ def edit_stage_apprentissage(entreprise_id, stage_apprentissage_id): description=f"etudiant {stage_apprentissage.etudid} inconnue" ) 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(): etudiant_nomcomplet = form.etudiant.data.upper().strip() stm = text( @@ -1508,6 +1615,10 @@ def delete_stage_apprentissage(entreprise_id, stage_apprentissage_id): id=stage_apprentissage_id, entreprise_id=entreprise_id ).first_or_404(description=f"stage_apprentissage {stage_apprentissage_id} inconnu") 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(): db.session.delete(stage_apprentissage) log = EntrepriseHistorique( @@ -1548,6 +1659,10 @@ def envoyer_offre(entreprise_id, offre_id): description=f"offre {offre_id} inconnue pour l'entreprise {entreprise_id}" ) 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(): for responsable in form.responsables.entries: if responsable.data.strip(): @@ -1652,7 +1767,7 @@ def export_donnees(): @bp.route("/import_donnees/get_file_sample") @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 """ @@ -1787,6 +1902,10 @@ def add_offre_file(entreprise_id, offre_id): description=f"offre {offre_id} inconnue pour l'entreprise {entreprise_id}" ) 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(): date = f"{datetime.now().strftime('%Y-%m-%d-%H-%M-%S')}" 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}" ) 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(): path = os.path.join( 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) def not_found_error_handler(e): """ diff --git a/app/templates/entreprises/fiche_entreprise_validation.html b/app/templates/entreprises/fiche_entreprise_validation.html index 33e10ed6..f4b6f718 100644 --- a/app/templates/entreprises/fiche_entreprise_validation.html +++ b/app/templates/entreprises/fiche_entreprise_validation.html @@ -2,6 +2,17 @@ {% extends 'base.html' %} {% block app_content %} +
+ +
+

Fiche entreprise - {{ entreprise.nom }} ({{ entreprise.siret }})

diff --git a/app/templates/entreprises/form_ajout_correspondants.html b/app/templates/entreprises/form_ajout_correspondants.html index fd0fe64b..3690a347 100644 --- a/app/templates/entreprises/form_ajout_correspondants.html +++ b/app/templates/entreprises/form_ajout_correspondants.html @@ -32,7 +32,8 @@ {{ form.correspondants }}
- + {{ form.submit(class_="btn btn-default") }} + {{ form.cancel(class_="btn btn-default") }}
diff --git a/app/templates/entreprises/form_envoi_offre.html b/app/templates/entreprises/form_envoi_offre.html index e8f2d55e..860ce372 100644 --- a/app/templates/entreprises/form_envoi_offre.html +++ b/app/templates/entreprises/form_envoi_offre.html @@ -25,7 +25,8 @@ {{ form.responsables }}
- + {{ form.submit(class_="btn btn-default") }} + {{ form.cancel(class_="btn btn-default") }}
diff --git a/app/templates/entreprises/import_donnees.html b/app/templates/entreprises/import_donnees.html index 9fa12df2..ee883862 100644 --- a/app/templates/entreprises/import_donnees.html +++ b/app/templates/entreprises/import_donnees.html @@ -22,7 +22,7 @@

{{ title }}