diff --git a/app/entreprises/app_relations_entreprises.py b/app/entreprises/app_relations_entreprises.py
index e9b038e05..e3c0d1da4 100644
--- a/app/entreprises/app_relations_entreprises.py
+++ b/app/entreprises/app_relations_entreprises.py
@@ -141,28 +141,28 @@ def verif_correspondant_data(correspondant_data):
"""
# champs obligatoires
if (
- correspondant_data[0] == ""
- or correspondant_data[1] == ""
- or correspondant_data[6] == ""
+ correspondant_data[0].strip() == ""
+ or correspondant_data[1].strip() == ""
+ or correspondant_data[6].strip() == ""
):
return False
# entreprise_id existant
- entreprise = Entreprise.query.filter_by(siret=correspondant_data[6]).first()
+ entreprise = Entreprise.query.filter_by(siret=correspondant_data[6].strip()).first()
if entreprise is None:
return False
# correspondant possède le meme nom et prénom dans la meme entreprise
correspondant = EntrepriseCorrespondant.query.filter_by(
- nom=correspondant_data[0],
- prenom=correspondant_data[1],
+ nom=correspondant_data[0].strip(),
+ prenom=correspondant_data[1].strip(),
entreprise_id=entreprise.id,
).first()
if correspondant is not None:
return False
if (
- correspondant_data[2] == "" and correspondant_data[3] == ""
+ correspondant_data[2].strip() == "" and correspondant_data[3].strip() == ""
): # 1 moyen de contact
return False
@@ -175,11 +175,11 @@ def verif_entreprise_data(entreprise_data):
"""
if EntreprisePreferences.get_check_siret():
for data in entreprise_data: # champs obligatoires
- if data == "":
+ if data.strip() == "":
return False
else:
for data in entreprise_data[1:]: # champs obligatoires
- if data == "":
+ if data.strip() == "":
return False
if EntreprisePreferences.get_check_siret():
siret = entreprise_data[0].replace(" ", "") # vérification sur le siret
@@ -192,7 +192,7 @@ def verif_entreprise_data(entreprise_data):
if req.status_code != 200:
return False
except requests.ConnectionError:
- print("no internet")
+ return False
entreprise = Entreprise.query.filter_by(siret=siret).first()
if entreprise is not None:
return False
diff --git a/app/entreprises/forms.py b/app/entreprises/forms.py
index 603f6d845..cff363b92 100644
--- a/app/entreprises/forms.py
+++ b/app/entreprises/forms.py
@@ -80,8 +80,50 @@ class EntrepriseCreationForm(FlaskForm):
ville = _build_string_field("Ville de l'entreprise (*)")
pays = _build_string_field("Pays de l'entreprise", required=False)
+ nom_correspondant = _build_string_field("Nom du correspondant", required=False)
+ prenom_correspondant = _build_string_field(
+ "Prénom du correspondant", required=False
+ )
+ telephone = _build_string_field("Téléphone du correspondant", required=False)
+ mail = StringField(
+ "Mail du correspondant",
+ validators=[Optional(), Email(message="Adresse e-mail invalide")],
+ )
+ poste = _build_string_field("Poste du correspondant", required=False)
+ service = _build_string_field("Service du correspondant", required=False)
+
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
+ def validate(self):
+ validate = True
+ if not FlaskForm.validate(self):
+ validate = False
+
+ if (
+ self.nom_correspondant.data.strip()
+ or self.prenom_correspondant.data.strip()
+ or self.telephone.data.strip()
+ or self.mail.data.strip()
+ or self.poste.data.strip()
+ or self.service.data.strip()
+ ):
+ if not self.nom_correspondant.data.strip():
+ self.nom_correspondant.errors.append("Ce champ est requis")
+ validate = False
+ if not self.prenom_correspondant.data.strip():
+ self.prenom_correspondant.errors.append("Ce champ est requis")
+ validate = False
+ if not self.telephone.data.strip() and not self.mail.data.strip():
+ self.telephone.errors.append(
+ "Saisir un moyen de contact (mail ou téléphone)"
+ )
+ self.mail.errors.append(
+ "Saisir un moyen de contact (mail ou téléphone)"
+ )
+ validate = False
+
+ return validate
+
def validate_siret(self, siret):
if EntreprisePreferences.get_check_siret():
siret_data = siret.data.replace(" ", "")
@@ -95,7 +137,7 @@ class EntrepriseCreationForm(FlaskForm):
if req.status_code != 200:
raise ValidationError("SIRET inexistant")
except requests.ConnectionError:
- print("no internet")
+ raise ValidationError("Impossible de vérifier l'existance du SIRET")
entreprise = Entreprise.query.filter_by(siret=siret_data).first()
if entreprise is not None:
lien = f'ici'
@@ -197,7 +239,7 @@ class OffreModificationForm(FlaskForm):
duree = _build_string_field("Durée (*)")
depts = MultiCheckboxField("Départements", validators=[Optional()], coerce=int)
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)
def __init__(self, *args, **kwargs):
diff --git a/app/entreprises/models.py b/app/entreprises/models.py
index 2cb8e3d8f..74a4ccc45 100644
--- a/app/entreprises/models.py
+++ b/app/entreprises/models.py
@@ -35,6 +35,12 @@ class Entreprise(db.Model):
}
+# class EntrepriseSite(db.Model):
+# __tablename__ = "are_sites"
+# id = db.Column(db.Integer, primary_key=True)
+# nom = db.Column(db.Text)
+
+
class EntrepriseCorrespondant(db.Model):
__tablename__ = "are_correspondants"
id = db.Column(db.Integer, primary_key=True)
diff --git a/app/entreprises/routes.py b/app/entreprises/routes.py
index 91a595fd2..09ae715a4 100644
--- a/app/entreprises/routes.py
+++ b/app/entreprises/routes.py
@@ -170,7 +170,7 @@ def fiche_entreprise(id):
)
-@bp.route("/logs/", methods=["GET"])
+@bp.route("/fiche_entreprise//logs", methods=["GET"])
@permission_required(Permission.RelationsEntreprisesView)
def logs_entreprise(id):
"""
@@ -294,6 +294,18 @@ def add_entreprise():
)
db.session.add(entreprise)
db.session.commit()
+ if form.nom_correspondant.data.strip():
+ db.session.refresh(entreprise)
+ correspondant = EntrepriseCorrespondant(
+ entreprise_id=entreprise.id,
+ nom=form.nom_correspondant.data.strip(),
+ prenom=form.prenom_correspondant.data.strip(),
+ telephone=form.telephone.data.strip(),
+ mail=form.mail.data.strip(),
+ poste=form.poste.data.strip(),
+ service=form.service.data.strip(),
+ )
+ db.session.add(correspondant)
if current_user.has_permission(Permission.RelationsEntreprisesValidate, None):
entreprise.visible = True
nom_entreprise = f"{entreprise.nom}"
@@ -321,7 +333,7 @@ def add_entreprise():
)
-@bp.route("/edit_entreprise/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise/edit_entreprise/", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesChange)
def edit_entreprise(id):
"""
@@ -392,7 +404,7 @@ def edit_entreprise(id):
)
-@bp.route("/delete_entreprise/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise/delete_entreprise/", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesChange)
def delete_entreprise(id):
"""
@@ -428,7 +440,9 @@ def delete_entreprise(id):
)
-@bp.route("/validate_entreprise/", methods=["GET", "POST"])
+@bp.route(
+ "/fiche_entreprise_validation//validate_entreprise", methods=["GET", "POST"]
+)
@permission_required(Permission.RelationsEntreprisesValidate)
def validate_entreprise(id):
"""
@@ -456,7 +470,10 @@ def validate_entreprise(id):
)
-@bp.route("/delete_validation_entreprise/", methods=["GET", "POST"])
+@bp.route(
+ "/fiche_entreprise_validation//delete_validation_entreprise",
+ methods=["GET", "POST"],
+)
@permission_required(Permission.RelationsEntreprisesValidate)
def delete_validation_entreprise(id):
"""
@@ -478,7 +495,7 @@ def delete_validation_entreprise(id):
)
-@bp.route("/add_offre/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise//add_offre", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesChange)
def add_offre(id):
"""
@@ -537,7 +554,7 @@ def add_offre(id):
)
-@bp.route("/edit_offre/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise/edit_offre/", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesChange)
def edit_offre(id):
"""
@@ -597,7 +614,7 @@ def edit_offre(id):
)
-@bp.route("/delete_offre/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise/delete_offre/", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesChange)
def delete_offre(id):
"""
@@ -634,7 +651,7 @@ def delete_offre(id):
)
-@bp.route("/delete_offre_recue/", methods=["GET", "POST"])
+@bp.route("/offres_recues/delete_offre_recue/", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesView)
def delete_offre_recue(id):
"""
@@ -648,7 +665,7 @@ def delete_offre_recue(id):
return redirect(url_for("entreprises.offres_recues"))
-@bp.route("/expired/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise/expired/", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesChange)
def expired(id):
"""
@@ -666,7 +683,7 @@ def expired(id):
return redirect(url_for("entreprises.fiche_entreprise", id=offre.entreprise_id))
-@bp.route("/add_correspondant/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise//add_correspondant", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesChange)
def add_correspondant(id):
"""
@@ -704,7 +721,7 @@ def add_correspondant(id):
)
-@bp.route("/edit_correspondant/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise/edit_correspondant/", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesChange)
def edit_correspondant(id):
"""
@@ -749,7 +766,7 @@ def edit_correspondant(id):
)
-@bp.route("/delete_correspondant/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise/delete_correspondant/", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesChange)
def delete_correspondant(id):
"""
@@ -779,7 +796,7 @@ def delete_correspondant(id):
)
-@bp.route("fiche_entreprise/add_contact/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise//add_contact", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesChange)
def add_contact(id):
"""
@@ -806,7 +823,7 @@ def add_contact(id):
)
-@bp.route("fiche_entreprise/edit_contact/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise/edit_contact/", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesChange)
def edit_contact(id):
"""
@@ -831,7 +848,7 @@ def edit_contact(id):
)
-@bp.route("/fiche_entreprise/contacts/")
+@bp.route("/fiche_entreprise//contacts")
@permission_required(Permission.RelationsEntreprisesView)
def contacts(id):
"""
@@ -846,7 +863,7 @@ def contacts(id):
)
-@bp.route("/add_stage_apprentissage/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise//add_stage_apprentissage", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesChange)
def add_stage_apprentissage(id):
"""
@@ -892,7 +909,9 @@ def add_stage_apprentissage(id):
)
-@bp.route("/edit_stage_apprentissage/", methods=["GET", "POST"])
+@bp.route(
+ "/fiche_entreprise/edit_stage_apprentissage/", methods=["GET", "POST"]
+)
@permission_required(Permission.RelationsEntreprisesChange)
def edit_stage_apprentissage(id):
"""
@@ -948,7 +967,9 @@ def edit_stage_apprentissage(id):
)
-@bp.route("/delete_stage_apprentissage/", methods=["GET", "POST"])
+@bp.route(
+ "/fiche_entreprise/delete_stage_apprentissage/", methods=["GET", "POST"]
+)
@permission_required(Permission.RelationsEntreprisesChange)
def delete_stage_apprentissage(id):
"""
@@ -973,7 +994,7 @@ def delete_stage_apprentissage(id):
)
-@bp.route("/envoyer_offre/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise/envoyer_offre/", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesSend)
def envoyer_offre(id):
"""
@@ -1082,7 +1103,7 @@ def export_entreprises():
return redirect(url_for("entreprises.index"))
-@bp.route("/get_import_entreprises_file_sample")
+@bp.route("/import_entreprises/get_import_entreprises_file_sample")
@permission_required(Permission.RelationsEntreprisesExport)
def get_import_entreprises_file_sample():
"""
@@ -1133,20 +1154,19 @@ def import_entreprises():
ligne += 1
if (
are.verif_entreprise_data(entreprise_data)
- and entreprise_data[0] not in siret_list
+ and entreprise_data[0].replace(" ", "") not in siret_list
):
- siret_list.append(entreprise_data[0])
+ siret_list.append(entreprise_data[0].replace(" ", ""))
entreprise = Entreprise(
siret=entreprise_data[0].replace(" ", ""),
- nom=entreprise_data[1],
- adresse=entreprise_data[2],
- ville=entreprise_data[3],
- codepostal=entreprise_data[4],
- pays=entreprise_data[5],
+ nom=entreprise_data[1].strip(),
+ adresse=entreprise_data[2].strip(),
+ ville=entreprise_data[3].strip(),
+ codepostal=entreprise_data[4].strip(),
+ pays=entreprise_data[5].strip(),
visible=True,
)
entreprises_import.append(entreprise)
-
else:
flash(f"Erreur lors de l'importation (ligne {ligne})")
return render_template(
@@ -1217,7 +1237,7 @@ def export_correspondants():
return redirect(url_for("entreprises.correspondants"))
-@bp.route("/get_import_correspondants_file_sample")
+@bp.route("/import_correspondants/get_import_correspondants_file_sample")
@permission_required(Permission.RelationsEntreprisesExport)
def get_import_correspondants_file_sample():
"""
@@ -1278,29 +1298,29 @@ def import_correspondants():
if (
are.verif_correspondant_data(correspondant_data)
and (
- correspondant_data[0],
- correspondant_data[1],
- correspondant_data[6],
+ correspondant_data[0].strip(),
+ correspondant_data[1].strip(),
+ correspondant_data[6].strip(),
)
not in correspondant_list
):
correspondant_list.append(
(
- correspondant_data[0],
- correspondant_data[1],
- correspondant_data[6],
+ correspondant_data[0].strip(),
+ correspondant_data[1].strip(),
+ correspondant_data[6].strip(),
)
)
entreprise = Entreprise.query.filter_by(
- siret=correspondant_data[6]
+ siret=correspondant_data[6].strip()
).first()
correspondant = EntrepriseCorrespondant(
- nom=correspondant_data[0],
- prenom=correspondant_data[1],
- telephone=correspondant_data[2],
- mail=correspondant_data[3],
- poste=correspondant_data[4],
- service=correspondant_data[5],
+ nom=correspondant_data[0].strip(),
+ prenom=correspondant_data[1].strip(),
+ telephone=correspondant_data[2].strip(),
+ mail=correspondant_data[3].strip(),
+ poste=correspondant_data[4].strip(),
+ service=correspondant_data[5].strip(),
entreprise_id=entreprise.id,
)
correspondants_import.append(correspondant)
@@ -1372,7 +1392,7 @@ def get_offre_file(entreprise_id, offre_id, filedir, filename):
abort(404, description=f"fichier {filename} inconnu")
-@bp.route("/add_offre_file/", methods=["GET", "POST"])
+@bp.route("/fiche_entreprise/add_offre_file/", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesChange)
def add_offre_file(offre_id):
"""
@@ -1404,7 +1424,10 @@ def add_offre_file(offre_id):
)
-@bp.route("/delete_offre_file//", methods=["GET", "POST"])
+@bp.route(
+ "/fiche_entreprise/delete_offre_file//",
+ methods=["GET", "POST"],
+)
@permission_required(Permission.RelationsEntreprisesChange)
def delete_offre_file(offre_id, filedir):
"""
diff --git a/app/templates/entreprises/ajout_entreprise.html b/app/templates/entreprises/ajout_entreprise.html
index 4cf14848c..83dff9fd4 100644
--- a/app/templates/entreprises/ajout_entreprise.html
+++ b/app/templates/entreprises/ajout_entreprise.html
@@ -16,21 +16,28 @@