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
from datetime import datetime
from flask import url_for
from flask_wtf import FlaskForm
from flask_wtf.file import FileField, FileAllowed, FileRequired
from markupsafe import Markup
@ -149,7 +150,7 @@ class EntrepriseCreationForm(FlaskForm):
entreprise = Entreprise.query.filter_by(siret=siret_data).first()
if entreprise is not None:
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(
Markup(
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):
__tablename__ = "are_entreprises"
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)
nom = db.Column(db.Text)
adresse = db.Column(db.Text)

View File

@ -341,9 +341,18 @@ def add_entreprise():
ville=form.ville.data.strip(),
pays=form.pays.data.strip() if form.pays.data.strip() else "FRANCE",
)
try:
db.session.add(entreprise)
db.session.commit()
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(
entreprise_id=entreprise.id,
nom=form.nom_entreprise.data.strip(),
@ -371,7 +380,7 @@ def add_entreprise():
db.session.add(correspondant)
if current_user.has_permission(Permission.RelationsEntreprisesValidate, None):
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(
authenticated_user=current_user.user_name,
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")
form = EntrepriseModificationForm(siret=entreprise.siret)
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 = []
if form.new_siret.data:
logs_text.append(f"{lien_entreprise} - Modification du SIRET")
@ -1567,9 +1576,18 @@ def import_donnees():
):
return redirect(url_for("entreprises.import_donnees"))
for entreprise in entreprises_import:
try:
db.session.add(entreprise)
db.session.commit()
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(
entreprise_id=entreprise.id,
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
Create Date: 2022-07-12 09:24:59.328369
Create Date: 2022-07-13 15:52:14.113530
"""
from alembic import op
@ -10,7 +10,7 @@ import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'bd358f412282'
revision = 'cb360caa3dac'
down_revision = '0b337376e9f7'
branch_labels = None
depends_on = None
@ -21,7 +21,7 @@ def upgrade():
op.drop_constraint('are_correspondants_entreprise_id_fkey', 'are_correspondants', type_='foreignkey')
op.drop_column('are_correspondants', 'entreprise_id')
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 ###

View File

@ -523,7 +523,7 @@ def recursive_help(cmd, parent=None):
def entreprises_reset_db():
"""Remet a zéro les tables du module relations entreprises"""
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,
)
db.reflect()