forked from ScoDoc/ScoDoc
correction modèle
This commit is contained in:
parent
51076574ee
commit
3a31317e48
@ -239,7 +239,8 @@ def get_excel_book_are(export: bool = False):
|
|||||||
)
|
)
|
||||||
correspondants = (
|
correspondants = (
|
||||||
db.session.query(EntrepriseCorrespondant)
|
db.session.query(EntrepriseCorrespondant)
|
||||||
.join(Entreprise, EntrepriseCorrespondant.entreprise_id == Entreprise.id)
|
.join(EntrepriseSite, EntrepriseCorrespondant.site_id == EntrepriseSite.id)
|
||||||
|
.join(Entreprise, EntrepriseSite.entreprise_id == Entreprise.id)
|
||||||
.filter_by(visible=True)
|
.filter_by(visible=True)
|
||||||
.all()
|
.all()
|
||||||
)
|
)
|
||||||
@ -391,7 +392,6 @@ def check_sites_import(m):
|
|||||||
sites_import.append(site_import)
|
sites_import.append(site_import)
|
||||||
else:
|
else:
|
||||||
correspondant_import = EntrepriseCorrespondant(
|
correspondant_import = EntrepriseCorrespondant(
|
||||||
entreprise_id=entreprise.id,
|
|
||||||
civilite=site_data["civilite"],
|
civilite=site_data["civilite"],
|
||||||
nom=site_data["nom"],
|
nom=site_data["nom"],
|
||||||
prenom=site_data["prenom"],
|
prenom=site_data["prenom"],
|
||||||
@ -414,7 +414,6 @@ def check_sites_import(m):
|
|||||||
|
|
||||||
if site_data["civilite"] != "":
|
if site_data["civilite"] != "":
|
||||||
correspondant_import = EntrepriseCorrespondant(
|
correspondant_import = EntrepriseCorrespondant(
|
||||||
entreprise_id=entreprise.id,
|
|
||||||
site_id=site.id,
|
site_id=site.id,
|
||||||
civilite=site_data["civilite"],
|
civilite=site_data["civilite"],
|
||||||
nom=site_data["nom"],
|
nom=site_data["nom"],
|
||||||
@ -527,7 +526,7 @@ def check_correspondant_import(correspondant_data):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
# civilite entre H ou F
|
# civilite entre H ou F
|
||||||
if correspondant_data["civilite"] not in ["H", "F"]:
|
if correspondant_data["civilite"].upper() not in ["H", "F"]:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@ -544,13 +543,14 @@ def check_correspondant_import(correspondant_data):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
# correspondant possède le meme nom et prénom dans la meme entreprise
|
# correspondant possède le meme nom et prénom dans la meme entreprise
|
||||||
correspondant = EntrepriseCorrespondant.query.filter_by(
|
if correspondant_data["id_site"] != "":
|
||||||
nom=correspondant_data["nom"],
|
correspondant = EntrepriseCorrespondant.query.filter_by(
|
||||||
prenom=correspondant_data["prenom"],
|
nom=correspondant_data["nom"],
|
||||||
entreprise_id=entreprise.id,
|
prenom=correspondant_data["prenom"],
|
||||||
).first()
|
site_id=correspondant_data["id_site"],
|
||||||
if correspondant is not None:
|
).first()
|
||||||
return False
|
if correspondant is not None:
|
||||||
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ class EntrepriseCreationForm(FlaskForm):
|
|||||||
|
|
||||||
civilite = SelectField(
|
civilite = SelectField(
|
||||||
"Civilité du correspondant",
|
"Civilité du correspondant",
|
||||||
choices=[("M", "Monsieur"), ("F", "Madame")],
|
choices=[("H", "Monsieur"), ("F", "Madame")],
|
||||||
validators=[DataRequired(message=CHAMP_REQUIS)],
|
validators=[DataRequired(message=CHAMP_REQUIS)],
|
||||||
)
|
)
|
||||||
nom_correspondant = _build_string_field("Nom du correspondant", required=False)
|
nom_correspondant = _build_string_field("Nom du correspondant", required=False)
|
||||||
@ -163,10 +163,13 @@ class EntrepriseCreationForm(FlaskForm):
|
|||||||
raise ValidationError("Impossible de vérifier l'existance du SIRET")
|
raise ValidationError("Impossible de vérifier l'existance du SIRET")
|
||||||
entreprise = Entreprise.query.filter_by(siret=siret_data).first()
|
entreprise = Entreprise.query.filter_by(siret=siret_data).first()
|
||||||
if entreprise is not None:
|
if entreprise is not None:
|
||||||
lien = f'<a href="/ScoDoc/entreprises/fiche_entreprise/{entreprise.id}">ici</a>'
|
if entreprise.visible is True:
|
||||||
raise ValidationError(
|
lien = f'<a href="/ScoDoc/entreprises/fiche_entreprise/{entreprise.id}">ici</a>'
|
||||||
Markup(f"Entreprise déjà présent, lien vers la fiche : {lien}")
|
raise ValidationError(
|
||||||
)
|
Markup(f"Entreprise déjà présent, lien vers la fiche : {lien}")
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
raise ValidationError("Entreprise en phase de validation")
|
||||||
|
|
||||||
|
|
||||||
class EntrepriseModificationForm(FlaskForm):
|
class EntrepriseModificationForm(FlaskForm):
|
||||||
@ -393,7 +396,7 @@ class CorrespondantCreationForm(FlaskForm):
|
|||||||
|
|
||||||
|
|
||||||
class CorrespondantsCreationForm(FlaskForm):
|
class CorrespondantsCreationForm(FlaskForm):
|
||||||
hidden_entreprise_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", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
@ -418,7 +421,7 @@ class CorrespondantsCreationForm(FlaskForm):
|
|||||||
(entry.nom.data.strip(), entry.prenom.data.strip())
|
(entry.nom.data.strip(), entry.prenom.data.strip())
|
||||||
)
|
)
|
||||||
correspondant = EntrepriseCorrespondant.query.filter_by(
|
correspondant = EntrepriseCorrespondant.query.filter_by(
|
||||||
entreprise_id=self.hidden_entreprise_id.data,
|
site_id=self.hidden_site_id.data,
|
||||||
nom=entry.nom.data,
|
nom=entry.nom.data,
|
||||||
prenom=entry.prenom.data,
|
prenom=entry.prenom.data,
|
||||||
).first()
|
).first()
|
||||||
@ -433,7 +436,7 @@ class CorrespondantsCreationForm(FlaskForm):
|
|||||||
|
|
||||||
class CorrespondantModificationForm(FlaskForm):
|
class CorrespondantModificationForm(FlaskForm):
|
||||||
hidden_correspondant_id = HiddenField()
|
hidden_correspondant_id = HiddenField()
|
||||||
hidden_entreprise_id = HiddenField()
|
hidden_site_id = HiddenField()
|
||||||
civilite = SelectField(
|
civilite = SelectField(
|
||||||
"Civilité (*)",
|
"Civilité (*)",
|
||||||
choices=[("H", "Monsieur"), ("F", "Madame")],
|
choices=[("H", "Monsieur"), ("F", "Madame")],
|
||||||
@ -459,7 +462,7 @@ class CorrespondantModificationForm(FlaskForm):
|
|||||||
|
|
||||||
correspondant = EntrepriseCorrespondant.query.filter(
|
correspondant = EntrepriseCorrespondant.query.filter(
|
||||||
EntrepriseCorrespondant.id != self.hidden_correspondant_id.data,
|
EntrepriseCorrespondant.id != self.hidden_correspondant_id.data,
|
||||||
EntrepriseCorrespondant.entreprise_id == self.hidden_entreprise_id.data,
|
EntrepriseCorrespondant.site_id == self.hidden_site_id.data,
|
||||||
EntrepriseCorrespondant.nom == self.nom.data,
|
EntrepriseCorrespondant.nom == self.nom.data,
|
||||||
EntrepriseCorrespondant.prenom == self.prenom.data,
|
EntrepriseCorrespondant.prenom == self.prenom.data,
|
||||||
).first()
|
).first()
|
||||||
|
@ -79,9 +79,6 @@ class EntrepriseSite(db.Model):
|
|||||||
class EntrepriseCorrespondant(db.Model):
|
class EntrepriseCorrespondant(db.Model):
|
||||||
__tablename__ = "are_correspondants"
|
__tablename__ = "are_correspondants"
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
entreprise_id = db.Column(
|
|
||||||
db.Integer, db.ForeignKey("are_entreprises.id", ondelete="cascade")
|
|
||||||
)
|
|
||||||
site_id = db.Column(db.Integer, db.ForeignKey("are_sites.id", ondelete="cascade"))
|
site_id = db.Column(db.Integer, db.ForeignKey("are_sites.id", ondelete="cascade"))
|
||||||
civilite = db.Column(db.String(1))
|
civilite = db.Column(db.String(1))
|
||||||
nom = db.Column(db.Text)
|
nom = db.Column(db.Text)
|
||||||
|
@ -354,7 +354,6 @@ def add_entreprise():
|
|||||||
if form.nom_correspondant.data.strip():
|
if form.nom_correspondant.data.strip():
|
||||||
db.session.refresh(site)
|
db.session.refresh(site)
|
||||||
correspondant = EntrepriseCorrespondant(
|
correspondant = EntrepriseCorrespondant(
|
||||||
entreprise_id=entreprise.id,
|
|
||||||
site_id=site.id,
|
site_id=site.id,
|
||||||
civilite=form.civilite.data,
|
civilite=form.civilite.data,
|
||||||
nom=form.nom_correspondant.data.strip(),
|
nom=form.nom_correspondant.data.strip(),
|
||||||
@ -989,11 +988,11 @@ def add_correspondant(entreprise_id, site_id):
|
|||||||
).first_or_404(
|
).first_or_404(
|
||||||
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_entreprise_id=site.entreprise_id)
|
print(site.entreprise_id)
|
||||||
|
form = CorrespondantsCreationForm(hidden_site_id=site.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(
|
||||||
entreprise_id=site.entreprise_id,
|
|
||||||
site_id=site.id,
|
site_id=site.id,
|
||||||
civilite=correspondant_entry.civilite.data,
|
civilite=correspondant_entry.civilite.data,
|
||||||
nom=correspondant_entry.nom.data.strip(),
|
nom=correspondant_entry.nom.data.strip(),
|
||||||
@ -1010,7 +1009,7 @@ def add_correspondant(entreprise_id, site_id):
|
|||||||
db.session.refresh(correspondant)
|
db.session.refresh(correspondant)
|
||||||
log = EntrepriseHistorique(
|
log = EntrepriseHistorique(
|
||||||
authenticated_user=current_user.user_name,
|
authenticated_user=current_user.user_name,
|
||||||
entreprise_id=correspondant.entreprise_id,
|
entreprise_id=correspondant.site.entreprise.id,
|
||||||
object="correspondant",
|
object="correspondant",
|
||||||
object_id=correspondant.id,
|
object_id=correspondant.id,
|
||||||
text="Création d'un correspondant",
|
text="Création d'un correspondant",
|
||||||
@ -1039,14 +1038,23 @@ def edit_correspondant(entreprise_id, site_id, correspondant_id):
|
|||||||
"""
|
"""
|
||||||
correspondant = (
|
correspondant = (
|
||||||
db.session.query(EntrepriseCorrespondant)
|
db.session.query(EntrepriseCorrespondant)
|
||||||
.join(Entreprise, EntrepriseCorrespondant.entreprise_id == Entreprise.id)
|
.join(
|
||||||
.filter(
|
EntrepriseSite,
|
||||||
EntrepriseCorrespondant.id == correspondant_id, Entreprise.visible == True
|
EntrepriseCorrespondant.site_id == EntrepriseSite.id,
|
||||||
|
)
|
||||||
|
.join(Entreprise, EntrepriseSite.entreprise_id == Entreprise.id)
|
||||||
|
.filter(
|
||||||
|
EntrepriseCorrespondant.id == correspondant_id,
|
||||||
|
EntrepriseCorrespondant.site_id == site_id,
|
||||||
|
EntrepriseSite.entreprise_id == entreprise_id,
|
||||||
|
Entreprise.visible == True,
|
||||||
|
)
|
||||||
|
.first_or_404(
|
||||||
|
description=f"correspondant {correspondant_id} inconnu pour l'entreprise {entreprise_id} et le site {site_id}"
|
||||||
)
|
)
|
||||||
.first_or_404(description=f"correspondant {correspondant_id} inconnu")
|
|
||||||
)
|
)
|
||||||
form = CorrespondantModificationForm(
|
form = CorrespondantModificationForm(
|
||||||
hidden_entreprise_id=correspondant.entreprise_id,
|
hidden_site_id=correspondant.site.id,
|
||||||
hidden_correspondant_id=correspondant.id,
|
hidden_correspondant_id=correspondant.id,
|
||||||
)
|
)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
@ -1061,7 +1069,7 @@ def edit_correspondant(entreprise_id, site_id, correspondant_id):
|
|||||||
correspondant.notes = form.notes.data.strip()
|
correspondant.notes = form.notes.data.strip()
|
||||||
log = EntrepriseHistorique(
|
log = EntrepriseHistorique(
|
||||||
authenticated_user=current_user.user_name,
|
authenticated_user=current_user.user_name,
|
||||||
entreprise_id=correspondant.entreprise_id,
|
entreprise_id=correspondant.site.entreprise.id,
|
||||||
object="correspondant",
|
object="correspondant",
|
||||||
object_id=correspondant.id,
|
object_id=correspondant.id,
|
||||||
text="Modification d'un correspondant",
|
text="Modification d'un correspondant",
|
||||||
@ -1072,7 +1080,7 @@ def edit_correspondant(entreprise_id, site_id, correspondant_id):
|
|||||||
return redirect(
|
return redirect(
|
||||||
url_for(
|
url_for(
|
||||||
"entreprises.fiche_entreprise",
|
"entreprises.fiche_entreprise",
|
||||||
entreprise_id=correspondant.entreprise_id,
|
entreprise_id=correspondant.site.entreprise.id,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
elif request.method == "GET":
|
elif request.method == "GET":
|
||||||
@ -1103,18 +1111,27 @@ def delete_correspondant(entreprise_id, site_id, correspondant_id):
|
|||||||
"""
|
"""
|
||||||
correspondant = (
|
correspondant = (
|
||||||
db.session.query(EntrepriseCorrespondant)
|
db.session.query(EntrepriseCorrespondant)
|
||||||
.join(Entreprise, EntrepriseCorrespondant.entreprise_id == Entreprise.id)
|
.join(
|
||||||
.filter(
|
EntrepriseSite,
|
||||||
EntrepriseCorrespondant.id == correspondant_id, Entreprise.visible == True
|
EntrepriseCorrespondant.site_id == EntrepriseSite.id,
|
||||||
|
)
|
||||||
|
.join(Entreprise, EntrepriseSite.entreprise_id == Entreprise.id)
|
||||||
|
.filter(
|
||||||
|
EntrepriseCorrespondant.id == correspondant_id,
|
||||||
|
EntrepriseCorrespondant.site_id == site_id,
|
||||||
|
EntrepriseSite.entreprise_id == entreprise_id,
|
||||||
|
Entreprise.visible == True,
|
||||||
|
)
|
||||||
|
.first_or_404(
|
||||||
|
description=f"correspondant {correspondant_id} inconnu pour l'entreprise {entreprise_id} et le site {site_id}"
|
||||||
)
|
)
|
||||||
.first_or_404(description=f"correspondant {correspondant_id} inconnu")
|
|
||||||
)
|
)
|
||||||
form = SuppressionConfirmationForm()
|
form = SuppressionConfirmationForm()
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
db.session.delete(correspondant)
|
db.session.delete(correspondant)
|
||||||
log = EntrepriseHistorique(
|
log = EntrepriseHistorique(
|
||||||
authenticated_user=current_user.user_name,
|
authenticated_user=current_user.user_name,
|
||||||
entreprise_id=correspondant.entreprise_id,
|
entreprise_id=correspondant.site.entreprise.id,
|
||||||
object="correspondant",
|
object="correspondant",
|
||||||
object_id=correspondant.id,
|
object_id=correspondant.id,
|
||||||
text="Suppression d'un correspondant",
|
text="Suppression d'un correspondant",
|
||||||
@ -1125,7 +1142,7 @@ def delete_correspondant(entreprise_id, site_id, correspondant_id):
|
|||||||
return redirect(
|
return redirect(
|
||||||
url_for(
|
url_for(
|
||||||
"entreprises.fiche_entreprise",
|
"entreprises.fiche_entreprise",
|
||||||
entreprise_id=correspondant.entreprise_id,
|
entreprise_id=correspondant.site.entreprise.id,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return render_template(
|
return render_template(
|
||||||
|
@ -26,8 +26,8 @@
|
|||||||
|
|
||||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||||
<div class="parent-btn">
|
<div class="parent-btn">
|
||||||
<a class="btn btn-primary" href="{{ url_for('entreprises.edit_correspondant', entreprise_id=correspondant.entreprise_id, site_id=correspondant.site_id, correspondant_id=correspondant.id) }}">Modifier correspondant</a>
|
<a class="btn btn-primary" href="{{ url_for('entreprises.edit_correspondant', entreprise_id=correspondant.site.entreprise.id, site_id=correspondant.site_id, correspondant_id=correspondant.id) }}">Modifier correspondant</a>
|
||||||
<a class="btn btn-danger" href="{{ url_for('entreprises.delete_correspondant', entreprise_id=correspondant.entreprise_id, site_id=correspondant.site_id, correspondant_id=correspondant.id) }}">Supprimer correspondant</a>
|
<a class="btn btn-danger" href="{{ url_for('entreprises.delete_correspondant', entreprise_id=correspondant.site.entreprise.id, site_id=correspondant.site_id, correspondant_id=correspondant.id) }}">Supprimer correspondant</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
@ -45,7 +45,7 @@
|
|||||||
<td>{{ correspondant[0].mail }}</td>
|
<td>{{ correspondant[0].mail }}</td>
|
||||||
<td>{{ correspondant[0].poste}}</td>
|
<td>{{ correspondant[0].poste}}</td>
|
||||||
<td>{{ correspondant[0].service}}</td>
|
<td>{{ correspondant[0].service}}</td>
|
||||||
<td><a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=correspondant[1].entreprise_id) }}">{{ correspondant[1].nom }}</a></td>
|
<td><a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=correspondant[1].entreprise.id) }}">{{ correspondant[1].nom }}</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -139,7 +139,7 @@
|
|||||||
{% if correspondant.notes %}
|
{% if correspondant.notes %}
|
||||||
Notes : {{ correspondant.notes }}<br>
|
Notes : {{ correspondant.notes }}<br>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=correspondant.entreprise_id) }}" target="_blank">Fiche entreprise</a>
|
<a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=correspondant.site.entreprise.id) }}" target="_blank">Fiche entreprise</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
"""suppression colonne are_correspondants
|
||||||
|
|
||||||
|
Revision ID: ec4f4f4ae9db
|
||||||
|
Revises: 0b337376e9f7
|
||||||
|
Create Date: 2022-07-11 17:56:19.608275
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = 'ec4f4f4ae9db'
|
||||||
|
down_revision = '0b337376e9f7'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.drop_constraint('are_correspondants_entreprise_id_fkey', 'are_correspondants', type_='foreignkey')
|
||||||
|
op.drop_column('are_correspondants', 'entreprise_id')
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.add_column('are_correspondants', sa.Column('entreprise_id', sa.INTEGER(), autoincrement=False, nullable=True))
|
||||||
|
op.create_foreign_key('are_correspondants_entreprise_id_fkey', 'are_correspondants', 'are_entreprises', ['entreprise_id'], ['id'], ondelete='CASCADE')
|
||||||
|
# ### end Alembic commands ###
|
Loading…
Reference in New Issue
Block a user