forked from ScoDoc/ScoDoc
Merge branch 'entreprises' of https://scodoc.org/git/viennet/ScoDoc
This commit is contained in:
commit
9480e15b83
@ -10,6 +10,7 @@ from app.models import Departement
|
||||
bp = Blueprint("entreprises", __name__)
|
||||
|
||||
LOGS_LEN = 5
|
||||
SIRET_PROVISOIRE_START = "xx"
|
||||
|
||||
|
||||
@bp.app_template_filter()
|
||||
|
@ -239,7 +239,8 @@ def get_excel_book_are(export: bool = False):
|
||||
)
|
||||
correspondants = (
|
||||
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)
|
||||
.all()
|
||||
)
|
||||
@ -347,14 +348,15 @@ def check_entreprise_import(entreprise_data):
|
||||
if EntreprisePreferences.get_check_siret():
|
||||
if re.match("^\d{14}$", siret) is None:
|
||||
return False
|
||||
try:
|
||||
req = requests.get(
|
||||
f"https://entreprise.data.gouv.fr/api/sirene/v1/siret/{siret}"
|
||||
)
|
||||
if req.status_code != 200:
|
||||
else:
|
||||
try:
|
||||
req = requests.get(
|
||||
f"https://entreprise.data.gouv.fr/api/sirene/v1/siret/{siret}"
|
||||
)
|
||||
if req.status_code != 200:
|
||||
return False
|
||||
except requests.ConnectionError:
|
||||
return False
|
||||
except requests.ConnectionError:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
@ -391,7 +393,6 @@ def check_sites_import(m):
|
||||
sites_import.append(site_import)
|
||||
else:
|
||||
correspondant_import = EntrepriseCorrespondant(
|
||||
entreprise_id=entreprise.id,
|
||||
civilite=site_data["civilite"],
|
||||
nom=site_data["nom"],
|
||||
prenom=site_data["prenom"],
|
||||
@ -414,7 +415,6 @@ def check_sites_import(m):
|
||||
|
||||
if site_data["civilite"] != "":
|
||||
correspondant_import = EntrepriseCorrespondant(
|
||||
entreprise_id=entreprise.id,
|
||||
site_id=site.id,
|
||||
civilite=site_data["civilite"],
|
||||
nom=site_data["nom"],
|
||||
@ -527,7 +527,7 @@ def check_correspondant_import(correspondant_data):
|
||||
return False
|
||||
|
||||
# civilite entre H ou F
|
||||
if correspondant_data["civilite"] not in ["H", "F"]:
|
||||
if correspondant_data["civilite"].upper() not in ["H", "F"]:
|
||||
return False
|
||||
|
||||
if (
|
||||
@ -544,13 +544,14 @@ def check_correspondant_import(correspondant_data):
|
||||
return False
|
||||
|
||||
# correspondant possède le meme nom et prénom dans la meme entreprise
|
||||
correspondant = EntrepriseCorrespondant.query.filter_by(
|
||||
nom=correspondant_data["nom"],
|
||||
prenom=correspondant_data["prenom"],
|
||||
entreprise_id=entreprise.id,
|
||||
).first()
|
||||
if correspondant is not None:
|
||||
return False
|
||||
if correspondant_data["id_site"] != "":
|
||||
correspondant = EntrepriseCorrespondant.query.filter_by(
|
||||
nom=correspondant_data["nom"],
|
||||
prenom=correspondant_data["prenom"],
|
||||
site_id=correspondant_data["id_site"],
|
||||
).first()
|
||||
if correspondant is not None:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
@ -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
|
||||
@ -62,8 +63,10 @@ from app.entreprises.models import (
|
||||
EntrepriseSite,
|
||||
EntrepriseTaxeApprentissage,
|
||||
)
|
||||
from app import db
|
||||
from app.models import Identite, Departement
|
||||
from app.auth.models import User
|
||||
from app.entreprises import SIRET_PROVISOIRE_START
|
||||
|
||||
CHAMP_REQUIS = "Ce champ est requis"
|
||||
SUBMIT_MARGE = {"style": "margin-bottom: 10px;"}
|
||||
@ -86,9 +89,11 @@ class EntreprisesFilterForm(FlaskForm):
|
||||
|
||||
|
||||
class EntrepriseCreationForm(FlaskForm):
|
||||
siret = _build_string_field(
|
||||
"SIRET (*)",
|
||||
siret = StringField(
|
||||
"SIRET",
|
||||
validators=[Optional()],
|
||||
render_kw={"placeholder": "Numéro composé de 14 chiffres"},
|
||||
description="Laissez vide pour générer un SIRET provisoire",
|
||||
)
|
||||
association = BooleanField("Association")
|
||||
nom_entreprise = _build_string_field("Nom de l'entreprise (*)")
|
||||
@ -99,7 +104,7 @@ class EntrepriseCreationForm(FlaskForm):
|
||||
|
||||
civilite = SelectField(
|
||||
"Civilité du correspondant",
|
||||
choices=[("M", "Monsieur"), ("F", "Madame")],
|
||||
choices=[("H", "Monsieur"), ("F", "Madame")],
|
||||
validators=[DataRequired(message=CHAMP_REQUIS)],
|
||||
)
|
||||
nom_correspondant = _build_string_field("Nom du correspondant", required=False)
|
||||
@ -123,6 +128,39 @@ class EntrepriseCreationForm(FlaskForm):
|
||||
if not FlaskForm.validate(self):
|
||||
validate = False
|
||||
|
||||
if EntreprisePreferences.get_check_siret() and self.siret.data != "":
|
||||
siret_data = self.siret.data.strip().replace(" ", "")
|
||||
self.siret.data = siret_data
|
||||
if re.match("^\d{14}$", siret_data) is None:
|
||||
self.siret.errors.append("Format incorrect")
|
||||
validate = False
|
||||
else:
|
||||
try:
|
||||
req = requests.get(
|
||||
f"https://entreprise.data.gouv.fr/api/sirene/v1/siret/{siret_data}"
|
||||
)
|
||||
if req.status_code != 200:
|
||||
self.siret.errors.append("SIRET inexistant")
|
||||
validate = False
|
||||
except requests.ConnectionError:
|
||||
self.siret.errors.append(
|
||||
"Impossible de vérifier l'existance du SIRET"
|
||||
)
|
||||
validate = False
|
||||
entreprise = Entreprise.query.filter_by(siret=siret_data).first()
|
||||
if entreprise is not None:
|
||||
if entreprise.visible is True:
|
||||
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}"
|
||||
)
|
||||
)
|
||||
validate = False
|
||||
else:
|
||||
self.siret.errors.append("Entreprise en phase de validation")
|
||||
validate = False
|
||||
|
||||
if (
|
||||
self.nom_correspondant.data.strip()
|
||||
or self.prenom_correspondant.data.strip()
|
||||
@ -147,30 +185,13 @@ class EntrepriseCreationForm(FlaskForm):
|
||||
|
||||
return validate
|
||||
|
||||
def validate_siret(self, siret):
|
||||
if EntreprisePreferences.get_check_siret():
|
||||
siret_data = siret.data.strip().replace(" ", "")
|
||||
self.siret.data = siret_data
|
||||
if re.match("^\d{14}$", siret_data) is None:
|
||||
raise ValidationError("Format incorrect")
|
||||
try:
|
||||
req = requests.get(
|
||||
f"https://entreprise.data.gouv.fr/api/sirene/v1/siret/{siret_data}"
|
||||
)
|
||||
if req.status_code != 200:
|
||||
raise ValidationError("SIRET inexistant")
|
||||
except requests.ConnectionError:
|
||||
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'<a href="/ScoDoc/entreprises/fiche_entreprise/{entreprise.id}">ici</a>'
|
||||
raise ValidationError(
|
||||
Markup(f"Entreprise déjà présent, lien vers la fiche : {lien}")
|
||||
)
|
||||
|
||||
|
||||
class EntrepriseModificationForm(FlaskForm):
|
||||
siret = StringField("SIRET (*)")
|
||||
new_siret = StringField(
|
||||
"Modification du SIRET provisoire (*)",
|
||||
description="Activé uniquement pour les entreprises avec SIRET provisoire",
|
||||
)
|
||||
association = BooleanField("Association")
|
||||
nom = _build_string_field("Nom de l'entreprise (*)")
|
||||
adresse = _build_string_field("Adresse (*)")
|
||||
@ -182,6 +203,37 @@ class EntrepriseModificationForm(FlaskForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.siret.render_kw = {"disabled": ""}
|
||||
if self.siret.data.startswith(SIRET_PROVISOIRE_START) is True:
|
||||
self.new_siret.validators = [Optional()]
|
||||
else:
|
||||
self.new_siret.render_kw = {"disabled": ""}
|
||||
|
||||
def validate_new_siret(self, new_siret):
|
||||
if EntreprisePreferences.get_check_siret() and new_siret.data is not None:
|
||||
siret_data = new_siret.data.strip().replace(" ", "")
|
||||
self.new_siret.data = siret_data
|
||||
if re.match("^\d{14}$", siret_data) is None:
|
||||
raise ValidationError("Format incorrect")
|
||||
else:
|
||||
try:
|
||||
req = requests.get(
|
||||
f"https://entreprise.data.gouv.fr/api/sirene/v1/siret/{siret_data}"
|
||||
)
|
||||
if req.status_code != 200:
|
||||
raise ValidationError("SIRET inexistant")
|
||||
except requests.ConnectionError:
|
||||
raise ValidationError("Impossible de vérifier l'existance du SIRET")
|
||||
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>'
|
||||
raise ValidationError(
|
||||
Markup(
|
||||
f"Entreprise déjà présent, lien vers la fiche : {lien}"
|
||||
)
|
||||
)
|
||||
else:
|
||||
raise ValidationError("Entreprise en phase de validation")
|
||||
|
||||
|
||||
class SiteCreationForm(FlaskForm):
|
||||
@ -274,9 +326,10 @@ class OffreCreationForm(FlaskForm):
|
||||
|
||||
self.correspondant.choices = [("", "")] + [
|
||||
(correspondant.id, f"{correspondant.nom} {correspondant.prenom}")
|
||||
for correspondant in EntrepriseCorrespondant.query.filter_by(
|
||||
entreprise_id=self.hidden_entreprise_id.data
|
||||
)
|
||||
for correspondant in db.session.query(EntrepriseCorrespondant)
|
||||
.join(EntrepriseSite, EntrepriseCorrespondant.site_id == EntrepriseSite.id)
|
||||
.filter(EntrepriseSite.entreprise_id == self.hidden_entreprise_id.data)
|
||||
.all()
|
||||
]
|
||||
|
||||
self.depts.choices = [
|
||||
@ -320,9 +373,10 @@ class OffreModificationForm(FlaskForm):
|
||||
|
||||
self.correspondant.choices = [("", "")] + [
|
||||
(correspondant.id, f"{correspondant.nom} {correspondant.prenom}")
|
||||
for correspondant in EntrepriseCorrespondant.query.filter_by(
|
||||
entreprise_id=self.hidden_entreprise_id.data
|
||||
)
|
||||
for correspondant in db.session.query(EntrepriseCorrespondant)
|
||||
.join(EntrepriseSite, EntrepriseCorrespondant.site_id == EntrepriseSite.id)
|
||||
.filter(EntrepriseSite.entreprise_id == self.hidden_entreprise_id.data)
|
||||
.all()
|
||||
]
|
||||
|
||||
self.depts.choices = [
|
||||
@ -393,7 +447,7 @@ class CorrespondantCreationForm(FlaskForm):
|
||||
|
||||
|
||||
class CorrespondantsCreationForm(FlaskForm):
|
||||
hidden_entreprise_id = HiddenField()
|
||||
hidden_site_id = HiddenField()
|
||||
correspondants = FieldList(FormField(CorrespondantCreationForm), min_entries=1)
|
||||
submit = SubmitField("Envoyer", render_kw=SUBMIT_MARGE)
|
||||
|
||||
@ -418,7 +472,7 @@ class CorrespondantsCreationForm(FlaskForm):
|
||||
(entry.nom.data.strip(), entry.prenom.data.strip())
|
||||
)
|
||||
correspondant = EntrepriseCorrespondant.query.filter_by(
|
||||
entreprise_id=self.hidden_entreprise_id.data,
|
||||
site_id=self.hidden_site_id.data,
|
||||
nom=entry.nom.data,
|
||||
prenom=entry.prenom.data,
|
||||
).first()
|
||||
@ -433,7 +487,7 @@ class CorrespondantsCreationForm(FlaskForm):
|
||||
|
||||
class CorrespondantModificationForm(FlaskForm):
|
||||
hidden_correspondant_id = HiddenField()
|
||||
hidden_entreprise_id = HiddenField()
|
||||
hidden_site_id = HiddenField()
|
||||
civilite = SelectField(
|
||||
"Civilité (*)",
|
||||
choices=[("H", "Monsieur"), ("F", "Madame")],
|
||||
@ -459,7 +513,7 @@ class CorrespondantModificationForm(FlaskForm):
|
||||
|
||||
correspondant = EntrepriseCorrespondant.query.filter(
|
||||
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.prenom == self.prenom.data,
|
||||
).first()
|
||||
|
@ -4,7 +4,8 @@ from app import db
|
||||
class Entreprise(db.Model):
|
||||
__tablename__ = "are_entreprises"
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
siret = db.Column(db.Text)
|
||||
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)
|
||||
codepostal = db.Column(db.Text)
|
||||
@ -79,9 +80,6 @@ class EntrepriseSite(db.Model):
|
||||
class EntrepriseCorrespondant(db.Model):
|
||||
__tablename__ = "are_correspondants"
|
||||
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"))
|
||||
civilite = db.Column(db.String(1))
|
||||
nom = db.Column(db.Text)
|
||||
@ -262,3 +260,19 @@ class EntreprisePreferences(db.Model):
|
||||
else:
|
||||
cs.value = check_siret
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def entreprises_reset_database():
|
||||
db.session.query(EntrepriseContact).delete()
|
||||
db.session.query(EntrepriseStageApprentissage).delete()
|
||||
db.session.query(EntrepriseTaxeApprentissage).delete()
|
||||
db.session.query(EntrepriseCorrespondant).delete()
|
||||
db.session.query(EntrepriseSite).delete()
|
||||
db.session.query(EntrepriseEnvoiOffre).delete()
|
||||
db.session.query(EntrepriseEnvoiOffreEtudiant).delete()
|
||||
db.session.query(EntrepriseOffreDepartement).delete()
|
||||
db.session.query(EntrepriseOffre).delete()
|
||||
db.session.query(Entreprise).delete()
|
||||
db.session.query(EntrepriseHistorique).delete()
|
||||
db.session.query(EntreprisePreferences).delete()
|
||||
db.session.commit()
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,37 +1,85 @@
|
||||
.nav-entreprise {
|
||||
/* nav */
|
||||
|
||||
.nav_entreprise {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.nav-entreprise ul {
|
||||
.nav_entreprise > ul {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.nav-entreprise li{
|
||||
.nav_entreprise_item {
|
||||
list-style: none;
|
||||
display: inline-block;
|
||||
padding: 10px;
|
||||
margin: 2px;
|
||||
border: 2px black solid;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.nav-entreprise li:hover{
|
||||
.nav_entreprise_item:hover {
|
||||
background-color: rgb(212, 212, 212);
|
||||
}
|
||||
|
||||
.nav-entreprise>ul>li>a {
|
||||
.nav_entreprise_link {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.nav-entreprise>ul>li>a:hover {
|
||||
.nav_entreprise_link:hover {
|
||||
text-decoration: underline;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.nav_entreprise_link-active {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* breadcrumbs */
|
||||
|
||||
.breadcrumbs {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.breadcrumbs_item {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.breadcrumbs_item:not(:last-of-type)::after {
|
||||
content: '\203a';
|
||||
margin: 0 5px;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.breadcrumbs_link {
|
||||
text-decoration: none;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.breadcrumbs_link:hover {
|
||||
text-decoration: underline;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.breadcrumbs_link-active {
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* form error */
|
||||
|
||||
.title-form-error {
|
||||
font-weight: bold;
|
||||
color: #a94442;
|
||||
}
|
||||
|
||||
.form-error {
|
||||
color: #a94442;
|
||||
}
|
||||
|
||||
/* entreprises */
|
||||
|
||||
.boutons .btn {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
@ -90,7 +138,7 @@
|
||||
flex: 1 0 0;
|
||||
}
|
||||
|
||||
.taxe-apprentissage{
|
||||
.taxe-apprentissage {
|
||||
overflow-y: scroll;
|
||||
height: 100px;
|
||||
}
|
||||
@ -138,38 +186,4 @@
|
||||
|
||||
#form-entreprise-filter > label {
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.title-form-error {
|
||||
font-weight: bold;
|
||||
color: #a94442;
|
||||
}
|
||||
|
||||
.breadcrumbs {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.breadcrumbs_item {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.breadcrumbs_item:not(:last-of-type)::after {
|
||||
content: '\203a';
|
||||
margin: 0 5px;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.breadcrumbs_link {
|
||||
text-decoration: none;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.breadcrumbs_link:hover {
|
||||
text-decoration: underline;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.breadcrumbs_link-active {
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
@ -26,8 +26,8 @@
|
||||
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||
<div class="parent-btn">
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.edit_correspondant', id=correspondant.id) }}">Modifier correspondant</a>
|
||||
<a class="btn btn-danger" href="{{ url_for('entreprises.delete_correspondant', id=correspondant.id) }}">Supprimer 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.site.entreprise.id, site_id=correspondant.site_id, correspondant_id=correspondant.id) }}">Supprimer correspondant</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
@ -23,31 +23,31 @@
|
||||
{% for fichier in offre[1] %}
|
||||
<a href="{{ url_for('entreprises.get_offre_file', entreprise_id=entreprise.id, offre_id=offre[0].id, filedir=fichier[0], filename=fichier[1] )}}">{{ fichier[1] }}</a>
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||
<a href="{{ url_for('entreprises.delete_offre_file', offre_id=offre[0].id, filedir=fichier[0] )}}" style="margin-left: 5px;"><img title="Supprimer fichier" alt="supprimer" width="10" height="9" border="0" src="/ScoDoc/static/icons/delete_small_img.png" /></a>
|
||||
<a href="{{ url_for('entreprises.delete_offre_file', entreprise_id=entreprise.id, offre_id=offre[0].id, filedir=fichier[0] )}}" style="margin-left: 5px;"><img title="Supprimer fichier" alt="supprimer" width="10" height="9" border="0" src="/ScoDoc/static/icons/delete_small_img.png" /></a>
|
||||
{% endif %}
|
||||
<br>
|
||||
{% endfor %}
|
||||
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||
<a href="{{ url_for('entreprises.add_offre_file', offre_id=offre[0].id) }}">Ajoutez un fichier</a>
|
||||
<a href="{{ url_for('entreprises.add_offre_file', entreprise_id=entreprise.id, offre_id=offre[0].id) }}">Ajoutez un fichier</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="parent-btn">
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.edit_offre', id=offre[0].id) }}">Modifier l'offre</a>
|
||||
<a class="btn btn-danger" href="{{ url_for('entreprises.delete_offre', id=offre[0].id) }}">Supprimer l'offre</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.edit_offre', entreprise_id=offre[0].entreprise_id, offre_id=offre[0].id) }}">Modifier l'offre</a>
|
||||
<a class="btn btn-danger" href="{{ url_for('entreprises.delete_offre', entreprise_id=offre[0].entreprise_id, offre_id=offre[0].id) }}">Supprimer l'offre</a>
|
||||
{% endif %}
|
||||
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesSend, None) %}
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.envoyer_offre', id=offre[0].id) }}">Envoyer l'offre</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.envoyer_offre', entreprise_id=entreprise.id, offre_id=offre[0].id) }}">Envoyer l'offre</a>
|
||||
{% endif %}
|
||||
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||
{% if not offre[0].expired %}
|
||||
<a class="btn btn-danger" href="{{ url_for('entreprises.expired', id=offre[0].id) }}">Rendre expirée</a>
|
||||
<a class="btn btn-danger" href="{{ url_for('entreprises.expired', entreprise_id=offre[0].entreprise_id, offre_id=offre[0].id) }}">Rendre expirée</a>
|
||||
{% else %}
|
||||
<a class="btn btn-success" href="{{ url_for('entreprises.expired', id=offre[0].id) }}">Rendre non expirée</a>
|
||||
<a class="btn btn-success" href="{{ url_for('entreprises.expired', entreprise_id=offre[0].entreprise_id, offre_id=offre[0].id) }}">Rendre non expirée</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
|
@ -15,7 +15,7 @@
|
||||
<a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
|
||||
</li>
|
||||
<li class="breadcrumbs_item">
|
||||
<a href="{{ url_for('entreprises.fiche_entreprise', id=entreprise_id) }}" class="breadcrumbs_link">Fiche entreprise</a>
|
||||
<a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=entreprise.id) }}" class="breadcrumbs_link">Fiche entreprise</a>
|
||||
</li>
|
||||
<li class="breadcrumbs_item">
|
||||
<a href="" class="breadcrumbs_link breadcrumbs_link-active">Contacts</a>
|
||||
@ -26,7 +26,7 @@
|
||||
<div class="container" style="margin-bottom: 10px;">
|
||||
<h1>Liste des contacts</h1>
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||
<a class="btn btn-primary" style="margin-bottom:10px;" href="{{ url_for('entreprises.add_contact', id=entreprise_id) }}">Ajouter contact</a>
|
||||
<a class="btn btn-primary" style="margin-bottom:10px;" href="{{ url_for('entreprises.add_contact', entreprise_id=entreprise.id) }}">Ajouter contact</a>
|
||||
{% endif %}
|
||||
<table id="table-contacts">
|
||||
<thead>
|
||||
@ -52,7 +52,7 @@
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu pull-left">
|
||||
<li><a href="{{ url_for('entreprises.edit_contact', id=contact.id) }}">Modifier</a></li>
|
||||
<li><a href="{{ url_for('entreprises.edit_contact', entreprise_id=entreprise.id, contact_id=contact.id) }}">Modifier</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -45,7 +45,7 @@
|
||||
<td>{{ correspondant[0].mail }}</td>
|
||||
<td>{{ correspondant[0].poste}}</td>
|
||||
<td>{{ correspondant[0].service}}</td>
|
||||
<td><a href="{{ url_for('entreprises.fiche_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>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
@ -60,7 +60,7 @@
|
||||
<tbody>
|
||||
{% for entreprise in entreprises %}
|
||||
<tr>
|
||||
<td><a href="{{ url_for('entreprises.fiche_entreprise', id=entreprise.id) }}" {% if not entreprise.active %} style="color:red" {% endif %}>{{ entreprise.siret }}</a></td>
|
||||
<td><a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=entreprise.id) }}" {% if not entreprise.active %} style="color:red" {% endif %}>{{ entreprise.siret }}</a></td>
|
||||
<td>{{ entreprise.nom }}</td>
|
||||
<td>{{ entreprise.adresse }}</td>
|
||||
<td>{{ entreprise.codepostal }}</td>
|
||||
@ -73,11 +73,11 @@
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu pull-left">
|
||||
<li><a href="{{ url_for('entreprises.edit_entreprise', id=entreprise.id) }}">Modifier</a></li>
|
||||
<li><a href="{{ url_for('entreprises.edit_entreprise', entreprise_id=entreprise.id) }}">Modifier</a></li>
|
||||
{% if entreprise.active %}
|
||||
<li><a href="{{ url_for('entreprises.fiche_entreprise_desactiver', id=entreprise.id)}}" style="color:red">Désactiver</a></li>
|
||||
<li><a href="{{ url_for('entreprises.fiche_entreprise_desactiver', entreprise_id=entreprise.id)}}" style="color:red">Désactiver</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ url_for('entreprises.fiche_entreprise_activer', id=entreprise.id)}}" style="color:lightgreen">Activer</a></li>
|
||||
<li><a href="{{ url_for('entreprises.fiche_entreprise_activer', entreprise_id=entreprise.id)}}" style="color:lightgreen">Activer</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -39,14 +39,14 @@
|
||||
<tbody>
|
||||
{% for entreprise in entreprises %}
|
||||
<tr class="table-row active">
|
||||
<th><a href="{{ url_for('entreprises.fiche_entreprise_validation', id=entreprise.id) }}">{{ entreprise.siret }}</a></th>
|
||||
<th><a href="{{ url_for('entreprises.fiche_entreprise_validation', entreprise_id=entreprise.id) }}">{{ entreprise.siret }}</a></th>
|
||||
<th>{{ entreprise.nom }}</th>
|
||||
<th>{{ entreprise.adresse }}</th>
|
||||
<th>{{ entreprise.codepostal }}</th>
|
||||
<th>{{ entreprise.ville }}</th>
|
||||
<th>{{ entreprise.pays }}</th>
|
||||
<th>
|
||||
<a class="btn btn-default" href="{{ url_for('entreprises.fiche_entreprise_validation', id=entreprise.id) }}">Voir</a>
|
||||
<a class="btn btn-default" href="{{ url_for('entreprises.fiche_entreprise_validation', entreprise_id=entreprise.id) }}">Voir</a>
|
||||
</th>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
14
app/templates/entreprises/error.html
Normal file
14
app/templates/entreprises/error.html
Normal file
@ -0,0 +1,14 @@
|
||||
{# -*- mode: jinja-html -*- #}
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block app_content %}
|
||||
|
||||
<h2>Erreur !</h2>
|
||||
|
||||
{{ e }}
|
||||
|
||||
<p>
|
||||
<a href="{{ url_for('entreprises.index') }}">Retour</a>
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
@ -22,7 +22,7 @@
|
||||
|
||||
{% if logs %}
|
||||
<div class="container">
|
||||
<h3>Dernières opérations sur cette fiche <a href="{{ url_for('entreprises.logs_entreprise', id=entreprise.id) }}">Voir tout</a></h3>
|
||||
<h3>Dernières opérations sur cette fiche <a href="{{ url_for('entreprises.logs_entreprise', entreprise_id=entreprise.id) }}">Voir tout</a></h3>
|
||||
<ul>
|
||||
{% for log in logs %}
|
||||
<li>
|
||||
@ -62,7 +62,7 @@
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||
<div>
|
||||
Taxe d'apprentissage<br>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_taxe_apprentissage', id=entreprise.id) }}">Ajouter taxe apprentissage</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_taxe_apprentissage', entreprise_id=entreprise.id) }}">Ajouter taxe apprentissage</a>
|
||||
<div class="taxe-apprentissage">
|
||||
<ul id="liste-taxes-apprentissages">
|
||||
{% if not taxes|check_taxe_now %}
|
||||
@ -70,8 +70,8 @@
|
||||
{% endif %}
|
||||
{% for taxe in taxes %}
|
||||
<li>
|
||||
<a href="{{ url_for('entreprises.delete_taxe_apprentissage', id_entreprise=entreprise.id, id_taxe=taxe.id) }}"><img title="Supprimer taxe d'apprentissage" alt="supprimer" width="10" height="9" border="0" src="/ScoDoc/static/icons/delete_small_img.png" /></a>
|
||||
<a href="{{ url_for('entreprises.edit_taxe_apprentissage', id_entreprise=entreprise.id, id_taxe=taxe.id) }}">{{ taxe.annee }}</a> : {{ taxe.montant }} euros {% if taxe.notes %}- {{ taxe.notes}} {% endif %}
|
||||
<a href="{{ url_for('entreprises.delete_taxe_apprentissage', entreprise_id=entreprise.id, taxe_id=taxe.id) }}"><img title="Supprimer taxe d'apprentissage" alt="supprimer" width="10" height="9" border="0" src="/ScoDoc/static/icons/delete_small_img.png" /></a>
|
||||
<a href="{{ url_for('entreprises.edit_taxe_apprentissage', entreprise_id=entreprise.id, taxe_id=taxe.id) }}">{{ taxe.annee }}</a> : {{ taxe.montant }} euros {% if taxe.notes %}- {{ taxe.notes}} {% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
@ -82,17 +82,17 @@
|
||||
|
||||
<div>
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.edit_entreprise', id=entreprise.id) }}">Modifier</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.edit_entreprise', entreprise_id=entreprise.id) }}">Modifier</a>
|
||||
{% if entreprise.active %}
|
||||
<a class="btn btn-danger" href="{{ url_for('entreprises.fiche_entreprise_desactiver', id=entreprise.id) }}">Désactiver</a>
|
||||
<a class="btn btn-danger" href="{{ url_for('entreprises.fiche_entreprise_desactiver', entreprise_id=entreprise.id) }}">Désactiver</a>
|
||||
{% else %}
|
||||
<a class="btn btn-success" href="{{ url_for('entreprises.fiche_entreprise_activer', id=entreprise.id) }}">Activer</a>
|
||||
<a class="btn btn-success" href="{{ url_for('entreprises.fiche_entreprise_activer', entreprise_id=entreprise.id) }}">Activer</a>
|
||||
{% endif %}
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_site', id=entreprise.id) }}">Ajouter site</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_offre', id=entreprise.id) }}">Ajouter offre</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_site', entreprise_id=entreprise.id) }}">Ajouter site</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_offre', entreprise_id=entreprise.id) }}">Ajouter offre</a>
|
||||
{% endif %}
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.contacts', id=entreprise.id) }}">Liste contacts</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.offres_expirees', id=entreprise.id) }}">Voir les offres expirées</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.contacts', entreprise_id=entreprise.id) }}">Liste contacts</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.offres_expirees', entreprise_id=entreprise.id) }}">Voir les offres expirées</a>
|
||||
</div>
|
||||
|
||||
|
||||
@ -109,8 +109,8 @@
|
||||
Pays : {{ site.pays }}
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||
<div>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.edit_site', id_entreprise=entreprise.id, id_site=site.id) }}">Modifier</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_correspondant', id_entreprise=entreprise.id, id_site=site.id) }}">Ajouter correspondant</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.edit_site', entreprise_id=entreprise.id, site_id=site.id) }}">Modifier</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_correspondant', entreprise_id=entreprise.id, site_id=site.id) }}">Ajouter correspondant</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesCorrespondants, None) %}
|
||||
@ -125,7 +125,7 @@
|
||||
|
||||
{% if offres %}
|
||||
<div>
|
||||
<h3>Offres - <a href="{{ url_for('entreprises.offres_expirees', id=entreprise.id) }}">Voir les offres expirées</a></h3>
|
||||
<h3>Offres - <a href="{{ url_for('entreprises.offres_expirees', entreprise_id=entreprise.id) }}">Voir les offres expirées</a></h3>
|
||||
{% for offre in offres %}
|
||||
{% include 'entreprises/_offre.html' %}
|
||||
{% endfor %}
|
||||
@ -137,7 +137,7 @@
|
||||
<div style="margin-bottom: 10px;">
|
||||
<h3>Liste des stages et apprentissages réalisés au sein de l'entreprise</h3>
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_stage_apprentissage', id=entreprise.id) }}" style="margin-bottom:10px;">Ajouter stage ou apprentissage</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_stage_apprentissage', entreprise_id=entreprise.id) }}" style="margin-bottom:10px;">Ajouter stage ou apprentissage</a>
|
||||
{% endif %}
|
||||
<table id="table-stages-apprentissages">
|
||||
<thead>
|
||||
@ -171,8 +171,8 @@
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu pull-left">
|
||||
<li><a href="{{ url_for('entreprises.edit_stage_apprentissage', id=data[0].id) }}">Modifier</a></li>
|
||||
<li><a href="{{ url_for('entreprises.delete_stage_apprentissage', id=data[0].id) }}" style="color:red">Supprimer</a></li>
|
||||
<li><a href="{{ url_for('entreprises.edit_stage_apprentissage', entreprise_id=entreprise.id, stage_apprentissage_id=data[0].id) }}">Modifier</a></li>
|
||||
<li><a href="{{ url_for('entreprises.delete_stage_apprentissage', entreprise_id=entreprise.id, stage_apprentissage_id=data[0].id) }}" style="color:red">Supprimer</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -66,8 +66,8 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a class="btn btn-success" href="{{ url_for('entreprises.validate_entreprise', id=entreprise.id) }}">Valider</a>
|
||||
<a class="btn btn-danger" href="{{ url_for('entreprises.delete_validation_entreprise', id=entreprise.id) }}">Supprimer</a>
|
||||
<a class="btn btn-success" href="{{ url_for('entreprises.validate_entreprise', entreprise_id=entreprise.id) }}">Valider</a>
|
||||
<a class="btn btn-danger" href="{{ url_for('entreprises.delete_validation_entreprise', entreprise_id=entreprise.id) }}">Supprimer</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
@ -84,7 +84,7 @@
|
||||
Code postal : {{ entreprise.codepostal }}<br>
|
||||
Ville : {{ entreprise.ville }}<br>
|
||||
Pays : {{ entreprise.pays }}<br>
|
||||
<a href="{{ url_for('entreprises.fiche_entreprise', id=entreprise.id) }}" target="_blank">Fiche entreprise</a>
|
||||
<a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=entreprise.id) }}" target="_blank">Fiche entreprise</a>
|
||||
</div>
|
||||
{% for site in entreprise.sites %}
|
||||
<div class="site">
|
||||
@ -108,7 +108,7 @@
|
||||
Code postal : {{ site.codepostal }}<br>
|
||||
Ville : {{ site.ville }}<br>
|
||||
Pays : {{ site.pays }}<br>
|
||||
<a href="{{ url_for('entreprises.fiche_entreprise', id=site.entreprise_id) }}" target="_blank">Fiche entreprise</a>
|
||||
<a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=site.entreprise_id) }}" target="_blank">Fiche entreprise</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
@ -139,7 +139,7 @@
|
||||
{% if correspondant.notes %}
|
||||
Notes : {{ correspondant.notes }}<br>
|
||||
{% endif %}
|
||||
<a href="{{ url_for('entreprises.fiche_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>
|
||||
{% endfor %}
|
||||
|
@ -8,7 +8,7 @@
|
||||
<a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
|
||||
</li>
|
||||
<li class="breadcrumbs_item">
|
||||
<a href="{{ url_for('entreprises.fiche_entreprise', id=entreprise.id) }}" class="breadcrumbs_link">Fiche entreprise</a>
|
||||
<a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=entreprise.id) }}" class="breadcrumbs_link">Fiche entreprise</a>
|
||||
</li>
|
||||
<li class="breadcrumbs_item">
|
||||
<a href="" class="breadcrumbs_link breadcrumbs_link-active">Dernières opérations</a>
|
||||
@ -26,21 +26,21 @@
|
||||
</ul>
|
||||
|
||||
<div class="text-center">
|
||||
<a href="{{ url_for('entreprises.logs_entreprise', id=entreprise.id, page=logs.prev_num) }}" class="btn btn-default {% if logs.page == 1 %}disabled{% endif %}">
|
||||
<a href="{{ url_for('entreprises.logs_entreprise', entreprise_id=entreprise.id, page=logs.prev_num) }}" class="btn btn-default {% if logs.page == 1 %}disabled{% endif %}">
|
||||
«
|
||||
</a>
|
||||
{% for page_num in logs.iter_pages(left_edge=1, right_edge=1, left_current=1, right_current=2) %}
|
||||
{% if page_num %}
|
||||
{% if logs.page == page_num %}
|
||||
<a href="{{ url_for('entreprises.logs_entreprise', id=entreprise.id, page=page_num) }}" class="btn btn-inverse">{{ page_num }}</a>
|
||||
<a href="{{ url_for('entreprises.logs_entreprise', entreprise_id=entreprise.id, page=page_num) }}" class="btn btn-inverse">{{ page_num }}</a>
|
||||
{% else %}
|
||||
<a href="{{ url_for('entreprises.logs_entreprise', id=entreprise.id, page=page_num) }}" class="btn btn-default">{{ page_num }}</a>
|
||||
<a href="{{ url_for('entreprises.logs_entreprise', entreprise_id=entreprise.id, page=page_num) }}" class="btn btn-default">{{ page_num }}</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
...
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<a href="{{ url_for('entreprises.logs_entreprise', id=entreprise.id, page=logs.next_num) }}" class="btn btn-default {% if logs.page == logs.pages %}disabled{% endif %}">
|
||||
<a href="{{ url_for('entreprises.logs_entreprise', entreprise_id=entreprise.id, page=logs.next_num) }}" class="btn btn-default {% if logs.page == logs.pages %}disabled{% endif %}">
|
||||
»
|
||||
</a>
|
||||
</div>
|
||||
|
@ -1,15 +1,28 @@
|
||||
{# -*- mode: jinja-html -*- #}
|
||||
<div class="container">
|
||||
<nav class="nav-entreprise">
|
||||
<nav class="nav_entreprise">
|
||||
<ul>
|
||||
<li><a href="{{ url_for('entreprises.index') }}">Entreprises</a></li>
|
||||
<li class="nav_entreprise_item">
|
||||
<a href="{{ url_for('entreprises.index') }}" class="nav_entreprise_link {% if title=='Entreprises' %}nav_entreprise_link-active{% endif %}">Entreprises</a>
|
||||
</li>
|
||||
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesCorrespondants, None) %}
|
||||
<li><a href="{{ url_for('entreprises.correspondants') }}">Correspondants</a></li>
|
||||
<li class="nav_entreprise_item">
|
||||
<a href="{{ url_for('entreprises.correspondants') }}" class="nav_entreprise_link {% if title=='Correspondants' %}nav_entreprise_link-active{% endif %}">Correspondants</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li><a href="{{ url_for('entreprises.offres_recues') }}">Offres reçues</a></li>
|
||||
|
||||
<li class="nav_entreprise_item">
|
||||
<a href="{{ url_for('entreprises.offres_recues') }}" class="nav_entreprise_link {% if title=='Offres reçues' %}nav_entreprise_link-active{% endif %}">Offres reçues</a>
|
||||
</li>
|
||||
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesValidate, None) %}
|
||||
<li><a href="{{ url_for('entreprises.validation') }}">Entreprises à valider</a></li>
|
||||
<li><a href="{{ url_for('entreprises.preferences') }}">Préférences</a></li>
|
||||
<li class="nav_entreprise_item">
|
||||
<a href="{{ url_for('entreprises.validation') }}" class="nav_entreprise_link {% if title=='Validation entreprises' %}nav_entreprise_link-active{% endif %}">Entreprises à valider</a>
|
||||
</li>
|
||||
<li class="nav_entreprise_item">
|
||||
<a href="{{ url_for('entreprises.preferences') }}" class="nav_entreprise_link {% if title=='Préférences' %}nav_entreprise_link-active{% endif %}">Préférences</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
|
@ -8,7 +8,7 @@
|
||||
<a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
|
||||
</li>
|
||||
<li class="breadcrumbs_item">
|
||||
<a href="{{ url_for('entreprises.fiche_entreprise', id=entreprise.id) }}" class="breadcrumbs_link">Fiche entreprise</a>
|
||||
<a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=entreprise.id) }}" class="breadcrumbs_link">Fiche entreprise</a>
|
||||
</li>
|
||||
<li class="breadcrumbs_item">
|
||||
<a href="" class="breadcrumbs_link breadcrumbs_link-active">Offres expirées</a>
|
||||
|
@ -34,14 +34,14 @@
|
||||
{% endif %}
|
||||
<br>
|
||||
|
||||
<a href="{{ url_for('entreprises.fiche_entreprise', id=offre[1].entreprise_id) }}">lien vers l'entreprise</a><br>
|
||||
<a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=offre[1].entreprise_id) }}">lien vers l'entreprise</a><br>
|
||||
|
||||
{% for fichier in offre[2] %}
|
||||
<a href="{{ url_for('entreprises.get_offre_file', entreprise_id=offre[1].entreprise_id, offre_id=offre[1].id, filedir=fichier[0], filename=fichier[1]) }}">{{ fichier[1] }}</a><br>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div>
|
||||
<a href="{{ url_for('entreprises.delete_offre_recue', id=offre[0].id) }}" style="margin-left: 5px;"><img title="Supprimer" alt="supprimer" width="16" height="16" border="0" src="/ScoDoc/static/icons/delete_small_img.png" /></a>
|
||||
<a href="{{ url_for('entreprises.delete_offre_recue', envoi_offre_id=offre[0].id) }}" style="margin-left: 5px;"><img title="Supprimer" alt="supprimer" width="16" height="16" border="0" src="/ScoDoc/static/icons/delete_small_img.png" /></a>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
@ -0,0 +1,34 @@
|
||||
"""suppression colonne are_correspondants, ajout siret provisoire, siret cle unique
|
||||
|
||||
Revision ID: cb360caa3dac
|
||||
Revises: 0b337376e9f7
|
||||
Create Date: 2022-07-13 15:52:14.113530
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'cb360caa3dac'
|
||||
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')
|
||||
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=True)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_index(op.f('ix_are_entreprises_siret'), table_name='are_entreprises')
|
||||
op.drop_column('are_entreprises', 'siret_provisoire')
|
||||
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 ###
|
16
scodoc.py
16
scodoc.py
@ -31,6 +31,7 @@ from app.models import ModuleImpl, ModuleImplInscription
|
||||
from app.models import Identite
|
||||
from app.models import departements
|
||||
from app.models.evaluations import Evaluation
|
||||
from app.entreprises.models import entreprises_reset_database
|
||||
from app.scodoc.sco_permissions import Permission
|
||||
from app.views import notes, scolar
|
||||
import tools
|
||||
@ -518,6 +519,21 @@ def recursive_help(cmd, parent=None):
|
||||
recursive_help(sub, ctx)
|
||||
|
||||
|
||||
@app.cli.command()
|
||||
def entreprises_reset_db():
|
||||
"""Remet a zéro les tables du module relations entreprises"""
|
||||
click.confirm(
|
||||
"This will erase all data from the blueprint 'entreprises'.\nAre you sure you want to continue?",
|
||||
abort=True,
|
||||
)
|
||||
db.reflect()
|
||||
try:
|
||||
entreprises_reset_database()
|
||||
except:
|
||||
db.session.rollback()
|
||||
raise
|
||||
|
||||
|
||||
@app.cli.command()
|
||||
def dumphelp():
|
||||
"""Génère la page d'aide complète pour la doc."""
|
||||
|
Loading…
Reference in New Issue
Block a user