siret unique

This commit is contained in:
Arthur ZHU 2022-07-13 16:53:54 +02:00
parent 9073983162
commit ea73c050e6
5 changed files with 35 additions and 16 deletions

View File

@ -28,6 +28,7 @@ import re
import requests import requests
from datetime import datetime from datetime import datetime
from flask import url_for
from flask_wtf import FlaskForm from flask_wtf import FlaskForm
from flask_wtf.file import FileField, FileAllowed, FileRequired from flask_wtf.file import FileField, FileAllowed, FileRequired
from markupsafe import Markup from markupsafe import Markup
@ -149,7 +150,7 @@ class EntrepriseCreationForm(FlaskForm):
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:
if entreprise.visible is True: if entreprise.visible is True:
lien = f'<a href="/ScoDoc/entreprises/fiche_entreprise/{entreprise.id}">ici</a>' lien = f"<a href='{url_for('entreprises.fiche_entreprise', entreprise_id=entreprise.id)}'>ici</a>"
self.siret.errors.append( self.siret.errors.append(
Markup( Markup(
f"Entreprise déjà présent, lien vers la fiche : {lien}" f"Entreprise déjà présent, lien vers la fiche : {lien}"

View File

@ -4,7 +4,7 @@ from app import db
class Entreprise(db.Model): class Entreprise(db.Model):
__tablename__ = "are_entreprises" __tablename__ = "are_entreprises"
id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, primary_key=True)
siret = db.Column(db.Text, index=True) siret = db.Column(db.Text, index=True, unique=True)
siret_provisoire = db.Column(db.Boolean, default=False) siret_provisoire = db.Column(db.Boolean, default=False)
nom = db.Column(db.Text) nom = db.Column(db.Text)
adresse = db.Column(db.Text) adresse = db.Column(db.Text)

View File

@ -341,9 +341,18 @@ def add_entreprise():
ville=form.ville.data.strip(), ville=form.ville.data.strip(),
pays=form.pays.data.strip() if form.pays.data.strip() else "FRANCE", pays=form.pays.data.strip() if form.pays.data.strip() else "FRANCE",
) )
try:
db.session.add(entreprise) db.session.add(entreprise)
db.session.commit() db.session.commit()
db.session.refresh(entreprise) db.session.refresh(entreprise)
except:
db.session.rollback()
flash("Une erreur est survenue veuillez réessayer.")
return render_template(
"entreprises/form_ajout_entreprise.html",
title="Ajout entreprise avec correspondant",
form=form,
)
site = EntrepriseSite( site = EntrepriseSite(
entreprise_id=entreprise.id, entreprise_id=entreprise.id,
nom=form.nom_entreprise.data.strip(), nom=form.nom_entreprise.data.strip(),
@ -371,7 +380,7 @@ def add_entreprise():
db.session.add(correspondant) db.session.add(correspondant)
if current_user.has_permission(Permission.RelationsEntreprisesValidate, None): if current_user.has_permission(Permission.RelationsEntreprisesValidate, None):
entreprise.visible = True entreprise.visible = True
lien_entreprise = f"<a href=/ScoDoc/entreprises/fiche_entreprise/{entreprise.id}>{entreprise.nom}</a>" lien_entreprise = f"<a href='{url_for('entreprises.fiche_entreprise', entreprise_id=entreprise.id)}'>{entreprise.nom}</a>"
log = EntrepriseHistorique( log = EntrepriseHistorique(
authenticated_user=current_user.user_name, authenticated_user=current_user.user_name,
text=f"{lien_entreprise} - Création de la fiche entreprise ({entreprise.nom})", text=f"{lien_entreprise} - Création de la fiche entreprise ({entreprise.nom})",
@ -410,7 +419,7 @@ def edit_entreprise(entreprise_id):
).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 form.validate_on_submit(): if form.validate_on_submit():
lien_entreprise = f"<a href=/ScoDoc/entreprises/fiche_entreprise/{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 = []
if form.new_siret.data: if form.new_siret.data:
logs_text.append(f"{lien_entreprise} - Modification du SIRET") logs_text.append(f"{lien_entreprise} - Modification du SIRET")
@ -1567,9 +1576,18 @@ def import_donnees():
): ):
return redirect(url_for("entreprises.import_donnees")) return redirect(url_for("entreprises.import_donnees"))
for entreprise in entreprises_import: for entreprise in entreprises_import:
try:
db.session.add(entreprise) db.session.add(entreprise)
db.session.commit() db.session.commit()
db.session.refresh(entreprise) db.session.refresh(entreprise)
except:
db.session.rollback()
flash("Une erreur est survenue veuillez réessayer.")
return render_template(
"entreprises/import_donnees.html",
title="Importation données",
form=form,
)
site = EntrepriseSite( site = EntrepriseSite(
entreprise_id=entreprise.id, entreprise_id=entreprise.id,
nom=entreprise.nom, nom=entreprise.nom,

View File

@ -1,8 +1,8 @@
"""suppression colonne are_correspondants, ajout siret provisoire """suppression colonne are_correspondants, ajout siret provisoire, siret cle unique
Revision ID: bd358f412282 Revision ID: cb360caa3dac
Revises: 0b337376e9f7 Revises: 0b337376e9f7
Create Date: 2022-07-12 09:24:59.328369 Create Date: 2022-07-13 15:52:14.113530
""" """
from alembic import op from alembic import op
@ -10,7 +10,7 @@ import sqlalchemy as sa
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision = 'bd358f412282' revision = 'cb360caa3dac'
down_revision = '0b337376e9f7' down_revision = '0b337376e9f7'
branch_labels = None branch_labels = None
depends_on = None depends_on = None
@ -21,7 +21,7 @@ def upgrade():
op.drop_constraint('are_correspondants_entreprise_id_fkey', 'are_correspondants', type_='foreignkey') op.drop_constraint('are_correspondants_entreprise_id_fkey', 'are_correspondants', type_='foreignkey')
op.drop_column('are_correspondants', 'entreprise_id') op.drop_column('are_correspondants', 'entreprise_id')
op.add_column('are_entreprises', sa.Column('siret_provisoire', sa.Boolean(), nullable=True)) op.add_column('are_entreprises', sa.Column('siret_provisoire', sa.Boolean(), nullable=True))
op.create_index(op.f('ix_are_entreprises_siret'), 'are_entreprises', ['siret'], unique=False) op.create_index(op.f('ix_are_entreprises_siret'), 'are_entreprises', ['siret'], unique=True)
# ### end Alembic commands ### # ### end Alembic commands ###

View File

@ -523,7 +523,7 @@ def recursive_help(cmd, parent=None):
def entreprises_reset_db(): def entreprises_reset_db():
"""Remet a zéro les tables du module relations entreprises""" """Remet a zéro les tables du module relations entreprises"""
click.confirm( click.confirm(
"This will erase all the tables from the blueprint 'entreprises'.\nAre you sure you want to continue?", "This will erase all data from the blueprint 'entreprises'.\nAre you sure you want to continue?",
abort=True, abort=True,
) )
db.reflect() db.reflect()