diff --git a/app/__init__.py b/app/__init__.py
index 51e122cd55216216239ea4764de96fe17d2b8882..72cc1cb726700dbe790344e25dcad672d63bce8e 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -26,6 +26,7 @@ from flask_mail import Mail
 from flask_bootstrap import Bootstrap
 from flask_moment import Moment
 from flask_caching import Cache
+from jinja2 import select_autoescape
 import sqlalchemy
 
 from app.scodoc.sco_exceptions import (
@@ -61,11 +62,11 @@ cache = Cache(
 
 
 def handle_sco_value_error(exc):
-    return render_template("sco_value_error.html", exc=exc), 404
+    return render_template("sco_value_error.j2", exc=exc), 404
 
 
 def handle_access_denied(exc):
-    return render_template("error_access_denied.html", exc=exc), 403
+    return render_template("error_access_denied.j2", exc=exc), 403
 
 
 def internal_server_error(exc):
@@ -75,7 +76,7 @@ def internal_server_error(exc):
 
     return (
         render_template(
-            "error_500.html",
+            "error_500.j2",
             SCOVERSION=sco_version.SCOVERSION,
             date=datetime.datetime.now().isoformat(),
             exc=exc,
@@ -146,7 +147,7 @@ def render_raw_html(template_filename: str, **args) -> str:
 
 def postgresql_server_error(e):
     """Erreur de connection au serveur postgresql (voir notesdb.open_db_connection)"""
-    return render_raw_html("error_503.html", SCOVERSION=sco_version.SCOVERSION), 503
+    return render_raw_html("error_503.j2", SCOVERSION=sco_version.SCOVERSION), 503
 
 
 class LogRequestFormatter(logging.Formatter):
@@ -275,6 +276,9 @@ def create_app(config_class=DevConfig):
     from app.api import api_bp
     from app.api import api_web_bp
 
+    # Enable autoescaping of all templates, including .j2
+    app.jinja_env.autoescape = select_autoescape(default_for_string=True, default=True)
+
     # https://scodoc.fr/ScoDoc
     app.register_blueprint(scodoc_bp)
     # https://scodoc.fr/ScoDoc/RT/Scolarite/...
diff --git a/app/auth/email.py b/app/auth/email.py
index 617596910fe6cd886fcf77cccd3c6f8a3d4190c0..9ea8f23e0b049640e4e12c2a723df449d44e9ea5 100644
--- a/app/auth/email.py
+++ b/app/auth/email.py
@@ -11,5 +11,5 @@ def send_password_reset_email(user):
         sender=current_app.config["SCODOC_MAIL_FROM"],
         recipients=[user.email],
         text_body=render_template("email/reset_password.txt", user=user, token=token),
-        html_body=render_template("email/reset_password.html", user=user, token=token),
+        html_body=render_template("email/reset_password.j2", user=user, token=token),
     )
diff --git a/app/auth/routes.py b/app/auth/routes.py
index 46d144d63bdd352fc95de2053f6ce8863fd5ed44..2c1594bc8440cfae16d44bc2922d6ad4cb3b67df 100644
--- a/app/auth/routes.py
+++ b/app/auth/routes.py
@@ -42,7 +42,7 @@ def login():
         return form.redirect("scodoc.index")
     message = request.args.get("message", "")
     return render_template(
-        "auth/login.html", title=_("Sign In"), form=form, message=message
+        "auth/login.j2", title=_("Sign In"), form=form, message=message
     )
 
 
@@ -65,9 +65,7 @@ def create_user():
         db.session.commit()
         flash(f"Utilisateur {user.user_name} créé")
         return redirect(url_for("scodoc.index"))
-    return render_template(
-        "auth/register.html", title="Création utilisateur", form=form
-    )
+    return render_template("auth/register.j2", title="Création utilisateur", form=form)
 
 
 @bp.route("/reset_password_request", methods=["GET", "POST"])
@@ -98,7 +96,7 @@ def reset_password_request():
         )
         return redirect(url_for("auth.login"))
     return render_template(
-        "auth/reset_password_request.html", title=_("Reset Password"), form=form
+        "auth/reset_password_request.j2", title=_("Reset Password"), form=form
     )
 
 
@@ -116,7 +114,7 @@ def reset_password(token):
         db.session.commit()
         flash(_("Votre mot de passe a été changé."))
         return redirect(url_for("auth.login"))
-    return render_template("auth/reset_password.html", form=form, user=user)
+    return render_template("auth/reset_password.j2", form=form, user=user)
 
 
 @bp.route("/reset_standard_roles_permissions", methods=["GET", "POST"])
diff --git a/app/but/jury_but_view.py b/app/but/jury_but_view.py
index a58f41e2c02ab4967d6e3e5805da2d6a9e054eb0..15934474424da6aeba41e369219aadf504b8f7a5 100644
--- a/app/but/jury_but_view.py
+++ b/app/but/jury_but_view.py
@@ -500,7 +500,7 @@ def jury_but_semestriel(
     H.append("</div>")
     H.append(
         render_template(
-            "but/documentation_codes_jury.html",
+            "but/documentation_codes_jury.j2",
             nom_univ=f"""Export {sco_preferences.get_preference("InstituteName")
             or sco_preferences.get_preference("UnivName")
             or "Apogée"}""",
diff --git a/app/entreprises/routes.py b/app/entreprises/routes.py
index 2d4195004a6ca050ff18efd55b312e76e60d9666..e50ebf71342662328270a1f21ee5e8b3412f0a55 100644
--- a/app/entreprises/routes.py
+++ b/app/entreprises/routes.py
@@ -89,7 +89,7 @@ def index():
             visible=True, association=True, siret_provisoire=True
         )
     return render_template(
-        "entreprises/entreprises.html",
+        "entreprises/entreprises.j2",
         title="Entreprises",
         entreprises=entreprises,
         logs=logs,
@@ -109,7 +109,7 @@ def logs():
         EntrepriseHistorique.date.desc()
     ).paginate(page=page, per_page=20)
     return render_template(
-        "entreprises/logs.html",
+        "entreprises/logs.j2",
         title="Logs",
         logs=logs,
     )
@@ -134,7 +134,7 @@ def correspondants():
         .all()
     )
     return render_template(
-        "entreprises/correspondants.html",
+        "entreprises/correspondants.j2",
         title="Correspondants",
         correspondants=correspondants,
         logs=logs,
@@ -149,7 +149,7 @@ def validation():
     """
     entreprises = Entreprise.query.filter_by(visible=False).all()
     return render_template(
-        "entreprises/entreprises_validation.html",
+        "entreprises/entreprises_validation.j2",
         title="Validation entreprises",
         entreprises=entreprises,
     )
@@ -167,7 +167,7 @@ def fiche_entreprise_validation(entreprise_id):
         description=f"fiche entreprise (validation) {entreprise_id} inconnue"
     )
     return render_template(
-        "entreprises/fiche_entreprise_validation.html",
+        "entreprises/fiche_entreprise_validation.j2",
         title="Validation fiche entreprise",
         entreprise=entreprise,
     )
@@ -205,7 +205,7 @@ def validate_entreprise(entreprise_id):
         flash("L'entreprise a été validé et ajouté à la liste.")
         return redirect(url_for("entreprises.validation"))
     return render_template(
-        "entreprises/form_validate_confirmation.html",
+        "entreprises/form_validate_confirmation.j2",
         title="Validation entreprise",
         form=form,
     )
@@ -242,7 +242,7 @@ def delete_validation_entreprise(entreprise_id):
         flash("L'entreprise a été supprimé de la liste des entreprise à valider.")
         return redirect(url_for("entreprises.validation"))
     return render_template(
-        "entreprises/form_confirmation.html",
+        "entreprises/form_confirmation.j2",
         title="Supression entreprise",
         form=form,
         info_message="Cliquez sur le bouton Supprimer pour confirmer votre supression",
@@ -282,7 +282,7 @@ def offres_recues():
                     files.append(file)
         offres_recues_with_files.append([envoi_offre, offre, files, correspondant])
     return render_template(
-        "entreprises/offres_recues.html",
+        "entreprises/offres_recues.j2",
         title="Offres reçues",
         offres_recues=offres_recues_with_files,
     )
@@ -321,7 +321,7 @@ def preferences():
         form.mail_entreprise.data = EntreprisePreferences.get_email_notifications()
         form.check_siret.data = int(EntreprisePreferences.get_check_siret())
     return render_template(
-        "entreprises/preferences.html",
+        "entreprises/preferences.j2",
         title="Préférences",
         form=form,
     )
@@ -357,7 +357,7 @@ def add_entreprise():
             db.session.rollback()
             flash("Une erreur est survenue veuillez réessayer.")
             return render_template(
-                "entreprises/form_ajout_entreprise.html",
+                "entreprises/form_ajout_entreprise.j2",
                 title="Ajout entreprise avec correspondant",
                 form=form,
             )
@@ -408,7 +408,7 @@ def add_entreprise():
             flash("L'entreprise a été ajouté à la liste pour la validation.")
             return redirect(url_for("entreprises.index"))
     return render_template(
-        "entreprises/form_ajout_entreprise.html",
+        "entreprises/form_ajout_entreprise.j2",
         title="Ajout entreprise avec correspondant",
         form=form,
     )
@@ -446,7 +446,7 @@ def fiche_entreprise(entreprise_id):
         .all()
     )
     return render_template(
-        "entreprises/fiche_entreprise.html",
+        "entreprises/fiche_entreprise.j2",
         title="Fiche entreprise",
         entreprise=entreprise,
         offres=offres_with_files,
@@ -472,7 +472,7 @@ def logs_entreprise(entreprise_id):
         .paginate(page=page, per_page=20)
     )
     return render_template(
-        "entreprises/logs_entreprise.html",
+        "entreprises/logs_entreprise.j2",
         title="Logs",
         logs=logs,
         entreprise=entreprise,
@@ -490,7 +490,7 @@ def offres_expirees(entreprise_id):
     ).first_or_404(description=f"fiche entreprise {entreprise_id} inconnue")
     offres_with_files = are.get_offres_expirees_with_files(entreprise.offres)
     return render_template(
-        "entreprises/offres_expirees.html",
+        "entreprises/offres_expirees.j2",
         title="Offres expirées",
         entreprise=entreprise,
         offres_expirees=offres_with_files,
@@ -574,7 +574,7 @@ def edit_entreprise(entreprise_id):
         form.pays.data = entreprise.pays
         form.association.data = entreprise.association
     return render_template(
-        "entreprises/form_modification_entreprise.html",
+        "entreprises/form_modification_entreprise.j2",
         title="Modification entreprise",
         form=form,
     )
@@ -610,7 +610,7 @@ def fiche_entreprise_desactiver(entreprise_id):
             url_for("entreprises.fiche_entreprise", entreprise_id=entreprise.id)
         )
     return render_template(
-        "entreprises/form_confirmation.html",
+        "entreprises/form_confirmation.j2",
         title="Désactiver entreprise",
         form=form,
         info_message="Cliquez sur le bouton Modifier pour confirmer la désactivation",
@@ -646,7 +646,7 @@ def fiche_entreprise_activer(entreprise_id):
             url_for("entreprises.fiche_entreprise", entreprise_id=entreprise.id)
         )
     return render_template(
-        "entreprises/form_confirmation.html",
+        "entreprises/form_confirmation.j2",
         title="Activer entreprise",
         form=form,
         info_message="Cliquez sur le bouton Modifier pour confirmer l'activaction",
@@ -692,7 +692,7 @@ def add_taxe_apprentissage(entreprise_id):
             url_for("entreprises.fiche_entreprise", entreprise_id=entreprise.id)
         )
     return render_template(
-        "entreprises/form.html",
+        "entreprises/form.j2",
         title="Ajout taxe apprentissage",
         form=form,
     )
@@ -735,7 +735,7 @@ def edit_taxe_apprentissage(entreprise_id, taxe_id):
         form.montant.data = taxe.montant
         form.notes.data = taxe.notes
     return render_template(
-        "entreprises/form.html",
+        "entreprises/form.j2",
         title="Modification taxe apprentissage",
         form=form,
     )
@@ -775,7 +775,7 @@ def delete_taxe_apprentissage(entreprise_id, taxe_id):
             url_for("entreprises.fiche_entreprise", entreprise_id=taxe.entreprise_id)
         )
     return render_template(
-        "entreprises/form_confirmation.html",
+        "entreprises/form_confirmation.j2",
         title="Supprimer taxe apprentissage",
         form=form,
         info_message="Cliquez sur le bouton Supprimer pour confirmer votre supression",
@@ -845,7 +845,7 @@ def add_offre(entreprise_id):
             url_for("entreprises.fiche_entreprise", entreprise_id=entreprise.id)
         )
     return render_template(
-        "entreprises/form.html",
+        "entreprises/form.j2",
         title="Ajout offre",
         form=form,
     )
@@ -921,7 +921,7 @@ def edit_offre(entreprise_id, offre_id):
         form.expiration_date.data = offre.expiration_date
         form.depts.data = offre_depts_list
     return render_template(
-        "entreprises/form.html",
+        "entreprises/form.j2",
         title="Modification offre",
         form=form,
     )
@@ -971,7 +971,7 @@ def delete_offre(entreprise_id, offre_id):
             url_for("entreprises.fiche_entreprise", entreprise_id=offre.entreprise_id)
         )
     return render_template(
-        "entreprises/form_confirmation.html",
+        "entreprises/form_confirmation.j2",
         title="Supression offre",
         form=form,
         info_message="Cliquez sur le bouton Supprimer pour confirmer votre supression",
@@ -1047,7 +1047,7 @@ def add_site(entreprise_id):
             url_for("entreprises.fiche_entreprise", entreprise_id=entreprise.id)
         )
     return render_template(
-        "entreprises/form.html",
+        "entreprises/form.j2",
         title="Ajout site",
         form=form,
     )
@@ -1098,7 +1098,7 @@ def edit_site(entreprise_id, site_id):
         form.ville.data = site.ville
         form.pays.data = site.pays
     return render_template(
-        "entreprises/form.html",
+        "entreprises/form.j2",
         title="Modification site",
         form=form,
     )
@@ -1154,7 +1154,7 @@ def add_correspondant(entreprise_id, site_id):
             url_for("entreprises.fiche_entreprise", entreprise_id=site.entreprise_id)
         )
     return render_template(
-        "entreprises/form_ajout_correspondants.html",
+        "entreprises/form_ajout_correspondants.j2",
         title="Ajout correspondant",
         form=form,
     )
@@ -1234,7 +1234,7 @@ def edit_correspondant(entreprise_id, site_id, correspondant_id):
         form.origine.data = correspondant.origine
         form.notes.data = correspondant.notes
     return render_template(
-        "entreprises/form.html",
+        "entreprises/form.j2",
         title="Modification correspondant",
         form=form,
     )
@@ -1290,7 +1290,7 @@ def delete_correspondant(entreprise_id, site_id, correspondant_id):
             )
         )
     return render_template(
-        "entreprises/form_confirmation.html",
+        "entreprises/form_confirmation.j2",
         title="Supression correspondant",
         form=form,
         info_message="Cliquez sur le bouton Supprimer pour confirmer votre supression",
@@ -1308,7 +1308,7 @@ def contacts(entreprise_id):
     ).first_or_404(description=f"entreprise {entreprise_id} inconnue")
     contacts = EntrepriseContact.query.filter_by(entreprise=entreprise.id).all()
     return render_template(
-        "entreprises/contacts.html",
+        "entreprises/contacts.j2",
         title="Liste des contacts",
         contacts=contacts,
         entreprise=entreprise,
@@ -1365,7 +1365,7 @@ def add_contact(entreprise_id):
         db.session.commit()
         return redirect(url_for("entreprises.contacts", entreprise_id=entreprise.id))
     return render_template(
-        "entreprises/form.html",
+        "entreprises/form.j2",
         title="Ajout contact",
         form=form,
     )
@@ -1421,7 +1421,7 @@ def edit_contact(entreprise_id, contact_id):
         )
         form.notes.data = contact.notes
     return render_template(
-        "entreprises/form.html",
+        "entreprises/form.j2",
         title="Modification contact",
         form=form,
     )
@@ -1459,7 +1459,7 @@ def delete_contact(entreprise_id, contact_id):
             url_for("entreprises.contacts", entreprise_id=contact.entreprise)
         )
     return render_template(
-        "entreprises/form_confirmation.html",
+        "entreprises/form_confirmation.j2",
         title="Supression contact",
         form=form,
         info_message="Cliquez sur le bouton Supprimer pour confirmer votre supression",
@@ -1525,7 +1525,7 @@ def add_stage_apprentissage(entreprise_id):
             url_for("entreprises.fiche_entreprise", entreprise_id=entreprise.id)
         )
     return render_template(
-        "entreprises/form_ajout_stage_apprentissage.html",
+        "entreprises/form_ajout_stage_apprentissage.j2",
         title="Ajout stage / apprentissage",
         form=form,
     )
@@ -1599,7 +1599,7 @@ def edit_stage_apprentissage(entreprise_id, stage_apprentissage_id):
         form.date_fin.data = stage_apprentissage.date_fin
         form.notes.data = stage_apprentissage.notes
     return render_template(
-        "entreprises/form_ajout_stage_apprentissage.html",
+        "entreprises/form_ajout_stage_apprentissage.j2",
         title="Modification stage / apprentissage",
         form=form,
     )
@@ -1640,7 +1640,7 @@ def delete_stage_apprentissage(entreprise_id, stage_apprentissage_id):
             )
         )
     return render_template(
-        "entreprises/form_confirmation.html",
+        "entreprises/form_confirmation.j2",
         title="Supression stage/apprentissage",
         form=form,
         info_message="Cliquez sur le bouton Supprimer pour confirmer votre supression",
@@ -1690,7 +1690,7 @@ def envoyer_offre(entreprise_id, offre_id):
             url_for("entreprises.fiche_entreprise", entreprise_id=offre.entreprise_id)
         )
     return render_template(
-        "entreprises/form_envoi_offre.html",
+        "entreprises/form_envoi_offre.j2",
         title="Envoyer une offre",
         form=form,
     )
@@ -1816,7 +1816,7 @@ def import_donnees():
                 db.session.rollback()
                 flash("Une erreur est survenue veuillez réessayer.")
                 return render_template(
-                    "entreprises/import_donnees.html",
+                    "entreprises/import_donnees.j2",
                     title="Importation données",
                     form=form,
                 )
@@ -1845,7 +1845,7 @@ def import_donnees():
         db.session.commit()
         flash(f"Importation réussie")
         return render_template(
-            "entreprises/import_donnees.html",
+            "entreprises/import_donnees.j2",
             title="Importation données",
             form=form,
             entreprises_import=entreprises_import,
@@ -1853,7 +1853,7 @@ def import_donnees():
             correspondants_import=correspondants,
         )
     return render_template(
-        "entreprises/import_donnees.html", title="Importation données", form=form
+        "entreprises/import_donnees.j2", title="Importation données", form=form
     )
 
 
@@ -1927,7 +1927,7 @@ def add_offre_file(entreprise_id, offre_id):
             url_for("entreprises.fiche_entreprise", entreprise_id=offre.entreprise_id)
         )
     return render_template(
-        "entreprises/form.html",
+        "entreprises/form.j2",
         title="Ajout fichier à une offre",
         form=form,
     )
@@ -1969,7 +1969,7 @@ def delete_offre_file(entreprise_id, offre_id, filedir):
                 )
             )
     return render_template(
-        "entreprises/form_confirmation.html",
+        "entreprises/form_confirmation.j2",
         title="Suppression fichier d'une offre",
         form=form,
         info_message="Cliquez sur le bouton Supprimer pour confirmer votre supression",
@@ -1981,4 +1981,4 @@ def not_found_error_handler(e):
     """
     Renvoie une page d'erreur pour l'erreur 404
     """
-    return render_template("entreprises/error.html", title="Erreur", e=e)
+    return render_template("entreprises/error.j2", title="Erreur", e=e)
diff --git a/app/forms/main/config_logos.py b/app/forms/main/config_logos.py
index 2a0051f0d084200815f70ad26bb5cfcad2c660a6..2a54dd7c703b3dd8e76cf55f42972b0fa133f62d 100644
--- a/app/forms/main/config_logos.py
+++ b/app/forms/main/config_logos.py
@@ -171,7 +171,7 @@ class AddLogoForm(FlaskForm):
 
 
 class LogoForm(FlaskForm):
-    """Embed both presentation of a logo (cf. template file configuration.html)
+    """Embed both presentation of a logo (cf. template file configuration.j2)
     and all its data and UI action (change, delete)"""
 
     dept_key = HiddenField()
@@ -434,7 +434,7 @@ def config_logos():
                 scu.flash_errors(form)
 
     return render_template(
-        "config_logos.html",
+        "config_logos.j2",
         scodoc_dept=None,
         title="Configuration ScoDoc",
         form=form,
diff --git a/app/forms/main/config_main.py b/app/forms/main/config_main.py
index 205c88facd035ccb82b43014653bd429a51305e1..4cc539fb185d01311b20101674f7842e0e18f867 100644
--- a/app/forms/main/config_main.py
+++ b/app/forms/main/config_main.py
@@ -133,7 +133,7 @@ def configuration():
         return redirect(url_for("scodoc.index"))
 
     return render_template(
-        "configuration.html",
+        "configuration.j2",
         form_bonus=form_bonus,
         form_scodoc=form_scodoc,
         scu=scu,
diff --git a/app/scodoc/html_sco_header.py b/app/scodoc/html_sco_header.py
index 7098757c0ec217a444cbacb7a6e9d40a58112f50..e4d330a78c32ce0e399bc05a940b29fbf0999c85 100644
--- a/app/scodoc/html_sco_header.py
+++ b/app/scodoc/html_sco_header.py
@@ -274,7 +274,7 @@ def sco_header(
     H.append("""<div id="gtrcontent">""")
     # En attendant le replacement complet de cette fonction,
     # inclusion ici des messages flask
-    H.append(render_template("flashed_messages.html"))
+    H.append(render_template("flashed_messages.j2"))
     #
     # Barre menu semestre:
     H.append(formsemestre_page_title(formsemestre_id))
diff --git a/app/scodoc/html_sidebar.py b/app/scodoc/html_sidebar.py
index a487fcf0c650645f6cc23f0addbe1ac2581b3f63..33132a0566689a9582f1653dc4ff1066b5eec2da 100644
--- a/app/scodoc/html_sidebar.py
+++ b/app/scodoc/html_sidebar.py
@@ -166,6 +166,6 @@ def sidebar(etudid: int = None):
 def sidebar_dept():
     """Partie supérieure de la marge de gauche"""
     return render_template(
-        "sidebar_dept.html",
+        "sidebar_dept.j2",
         prefs=sco_preferences.SemPreferences(),
     )
diff --git a/app/scodoc/sco_archives_etud.py b/app/scodoc/sco_archives_etud.py
index 799024db4d45a329def4c5488067e7a820a8b8c4..271892149728ca68460e5762bba021d782dee875 100644
--- a/app/scodoc/sco_archives_etud.py
+++ b/app/scodoc/sco_archives_etud.py
@@ -373,7 +373,7 @@ def etudarchive_import_files(
         filename_title="fichier_a_charger",
     )
     return render_template(
-        "scolar/photos_import_files.html",
+        "scolar/photos_import_files.j2",
         page_title="Téléchargement de fichiers associés aux étudiants",
         ignored_zipfiles=ignored_zipfiles,
         unmatched_files=unmatched_files,
diff --git a/app/scodoc/sco_bulletins.py b/app/scodoc/sco_bulletins.py
index e47177d648b79995e63585f9aae0d82c993ac28c..392a20bd267ecf1469269d964cbb915655565398 100644
--- a/app/scodoc/sco_bulletins.py
+++ b/app/scodoc/sco_bulletins.py
@@ -926,7 +926,7 @@ def formsemestre_bulletinetud(
         _formsemestre_bulletinetud_header_html(etud, formsemestre, format, version),
         bulletin,
         render_template(
-            "bul_foot.html",
+            "bul_foot.j2",
             appreciations=None,  # déjà affichées
             css_class="bul_classic_foot",
             etud=etud,
@@ -1259,7 +1259,7 @@ def _formsemestre_bulletinetud_header_html(
             cssstyles=["css/radar_bulletin.css"],
         ),
         render_template(
-            "bul_head.html",
+            "bul_head.j2",
             etud=etud,
             format=format,
             formsemestre=formsemestre,
diff --git a/app/scodoc/sco_edit_module.py b/app/scodoc/sco_edit_module.py
index c8e6d0fdf9af5a1c73e9a0d0b4f3dbe47e6fefac..c4b1624cdb66513252143b75755a0150fee1f57b 100644
--- a/app/scodoc/sco_edit_module.py
+++ b/app/scodoc/sco_edit_module.py
@@ -385,7 +385,7 @@ def module_edit(
         ),
         f"""<h2>{title}</h2>""",
         render_template(
-            "scodoc/help/modules.html",
+            "scodoc/help/modules.j2",
             is_apc=is_apc,
             semestre_id=semestre_id,
             formsemestres=FormSemestre.query.filter(
@@ -396,6 +396,7 @@ def module_edit(
             .all()
             if not create
             else None,
+            create=create,
         ),
     ]
     if not unlocked:
@@ -655,7 +656,8 @@ def module_edit(
         (
             "numero",
             {
-                "size": 2,
+                "title": "Numéro",
+                "size": 4,
                 "explanation": "numéro (1, 2, 3, 4, ...) pour ordre d'affichage",
                 "type": "int",
                 "default": default_num,
diff --git a/app/scodoc/sco_evaluation_edit.py b/app/scodoc/sco_evaluation_edit.py
index 900827d411696948bf8c10e12e5a7abeccc2fd9a..6c41851989ef69629b28fb4033a5a328ecd41960 100644
--- a/app/scodoc/sco_evaluation_edit.py
+++ b/app/scodoc/sco_evaluation_edit.py
@@ -345,7 +345,7 @@ def evaluation_create_form(
             + "\n".join(H)
             + "\n"
             + tf[1]
-            + render_template("scodoc/help/evaluations.html", is_apc=is_apc)
+            + render_template("scodoc/help/evaluations.j2", is_apc=is_apc)
             + html_sco_header.sco_footer()
         )
     elif tf[0] == -1:
diff --git a/app/scodoc/sco_formsemestre_status.py b/app/scodoc/sco_formsemestre_status.py
index c3ab96908303022e066c413dd85ac1956b8c12b1..40224408030fe21e0055c68fda7bf9b4ce64b5c5 100644
--- a/app/scodoc/sco_formsemestre_status.py
+++ b/app/scodoc/sco_formsemestre_status.py
@@ -541,7 +541,7 @@ def formsemestre_page_title(formsemestre_id=None):
     formsemestre = FormSemestre.query.get_or_404(formsemestre_id)
 
     h = render_template(
-        "formsemestre_page_title.html",
+        "formsemestre_page_title.j2",
         formsemestre=formsemestre,
         scu=scu,
         sem_menu_bar=formsemestre_status_menubar(formsemestre),
diff --git a/app/scodoc/sco_groups_edit.py b/app/scodoc/sco_groups_edit.py
index 3af2c963b16f2b274539f10c7e655a0c4a681b63..5caba3beb35b2f0e78c5108ab9346107c730c3f6 100644
--- a/app/scodoc/sco_groups_edit.py
+++ b/app/scodoc/sco_groups_edit.py
@@ -46,7 +46,7 @@ def affect_groups(partition_id):
         raise AccessDenied("vous n'avez pas la permission de modifier les groupes")
     partition.formsemestre.setup_parcours_groups()
     return render_template(
-        "scolar/affect_groups.html",
+        "scolar/affect_groups.j2",
         sco_header=html_sco_header.sco_header(
             page_title="Affectation aux groupes",
             javascripts=["js/groupmgr.js"],
diff --git a/app/scodoc/sco_placement.py b/app/scodoc/sco_placement.py
index 0e0ec8444e18036e0d41737bac92b836370f4c69..6ce07aa8c2063f52351434c4b82431cb4dd776d5 100644
--- a/app/scodoc/sco_placement.py
+++ b/app/scodoc/sco_placement.py
@@ -215,7 +215,7 @@ def placement_eval_selectetuds(evaluation_id):
         html_sco_header.sco_header(),
         sco_evaluations.evaluation_describe(evaluation_id=evaluation_id),
         "<h3>Placement et émargement des étudiants</h3>",
-        render_template("scodoc/forms/placement.html", form=form),
+        render_template("scodoc/forms/placement.j2", form=form),
     ]
     footer = html_sco_header.sco_footer()
     return "\n".join(htmls) + "<p>" + footer
diff --git a/app/scodoc/sco_trombino.py b/app/scodoc/sco_trombino.py
index cf725794a74a7151d82868c8747eb31b7761202e..140d1634d17619d2d996c406e4d50c6ffdd65cde 100644
--- a/app/scodoc/sco_trombino.py
+++ b/app/scodoc/sco_trombino.py
@@ -554,7 +554,7 @@ def photos_import_files_form(group_ids=()):
             back_url=back_url,
         )
         return render_template(
-            "scolar/photos_import_files.html",
+            "scolar/photos_import_files.j2",
             page_title="Téléchargement des photos des étudiants",
             ignored_zipfiles=ignored_zipfiles,
             unmatched_files=unmatched_files,
diff --git a/app/templates/about.html b/app/templates/about.j2
similarity index 56%
rename from app/templates/about.html
rename to app/templates/about.j2
index 0b2eed389389125ad4d9a4c2a9f60090f51b875e..23dc1ce5b9662bd8b8303a705a71fce19cad7bad 100644
--- a/app/templates/about.html
+++ b/app/templates/about.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
+{% extends 'base.j2' %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
@@ -9,10 +9,10 @@
 <p>&copy; Emmanuel Viennet 2021</p>
 
 <p>Version {{ version }}</p>
-    
-<p>ScoDoc est un logiciel libre écrit en 
-<a href="http://www.python.org" target="_blank" rel="noopener noreferrer">Python</a>.
-Information et documentation sur <a href="https://scodoc.org" target="_blank">scodoc.org</a>.
+
+<p>ScoDoc est un logiciel libre écrit en
+    <a href="http://www.python.org" target="_blank" rel="noopener noreferrer">Python</a>.
+    Information et documentation sur <a href="https://scodoc.org" target="_blank">scodoc.org</a>.
 </p>
 
 <h2>Dernières évolutions</h2>
diff --git a/app/templates/auth/change_password.html b/app/templates/auth/change_password.j2
similarity index 57%
rename from app/templates/auth/change_password.html
rename to app/templates/auth/change_password.j2
index 11e844811628d6172b55adde6bba0f0f562d522b..5f0dbe002e90e27af072be1f13fa4c9f481383d5 100644
--- a/app/templates/auth/change_password.html
+++ b/app/templates/auth/change_password.j2
@@ -1,14 +1,14 @@
 {# -*- mode: jinja-html -*- #}
-{% extends "base.html" %}
+{% extends "base.j2" %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% macro render_field(field, auth_name=None) %}
 <tr style="">
-    {%  if auth_name %}
-        <td class="wtf-field"> {{ field.label }}<span style="font-weight:700;"> ({{ auth_name }}):</span></td>
+    {% if auth_name %}
+    <td class="wtf-field"> {{ field.label }}<span style="font-weight:700;"> ({{ auth_name }}):</span></td>
     {% else %}
-        <td class="wtf-field">{{ field.label }}</td>
-    {%  endif %}
+    <td class="wtf-field">{{ field.label }}</td>
+    {% endif %}
     <td class="wtf-field">{{ field(**kwargs)|safe }}
         {% if field.errors %}
         <ul class=errors>
@@ -23,29 +23,31 @@
 
 {% block app_content %}
 <h1>Modification du compte ScoDoc <tt>{{form.user_name.data}}</tt></h1>
-    <div class="help">
+<div class="help">
     <p>Identifiez-vous avec votre mot de passe actuel</p>
-    </div>
-    <form method=post>
-            {{ form.user_name }}
-            {{ form.csrf_token }}
-        <table class="tf"><tbody>
+</div>
+<form method=post>
+    {{ form.user_name }}
+    {{ form.csrf_token }}
+    <table class="tf">
+        <tbody>
             {{ render_field(form.old_password, size=14, auth_name=auth_username,
             style="padding:1px; margin-left: 1em; margin-top: 4px;") }}
             <tr>
-                <td colspan=""2">
-    <p>Vous pouvez changer le mot de passe et/ou l'adresse email.</p>
-    <p>Les champs laissés vides ne seront pas modifiés.</p>
+                <td colspan="" 2">
+                    <p>Vous pouvez changer le mot de passe et/ou l'adresse email.</p>
+                    <p>Les champs laissés vides ne seront pas modifiés.</p>
                 </td>
             </tr>
             {{ render_field(form.new_password, size=14,
             style="padding:1px; margin-left: 1em; margin-top: 12px;") }}
-            {{ render_field(form.bis_password, size=14, 
+            {{ render_field(form.bis_password, size=14,
             style="padding:1px; margin-left: 1em; margin-top: 4px;") }}
-            {{ render_field(form.email, size=40, 
+            {{ render_field(form.email, size=40,
             style="padding:1px; margin-top: 12px;margin-bottom: 16px; margin-left: 1em;") }}
-        </tbody></table>
-        <input type="submit" value="Valider">
-        <input type="submit" name="cancel" value="Annuler" style="margin-left: 1em;>
+        </tbody>
+    </table>
+    <input type="submit" value="Valider">
+    <input type="submit" name="cancel" value="Annuler" style="margin-left: 1em;>
     </form>
 {% endblock %}
\ No newline at end of file
diff --git a/app/templates/auth/login.html b/app/templates/auth/login.j2
similarity index 96%
rename from app/templates/auth/login.html
rename to app/templates/auth/login.j2
index 1764e2d23b40f50991c65b2b53485fa4498f6c91..2877f6725cd6ce57b462edd434d1f3a08ee3a3c0 100644
--- a/app/templates/auth/login.html
+++ b/app/templates/auth/login.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
+{% extends 'base.j2' %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
diff --git a/app/templates/auth/register.html b/app/templates/auth/register.j2
similarity index 90%
rename from app/templates/auth/register.html
rename to app/templates/auth/register.j2
index 3c720079c4fb81ed1efde197543da0b3c3af10cb..0c1c1b03f6d627650c9d73fd1dc18f76e34ea840 100644
--- a/app/templates/auth/register.html
+++ b/app/templates/auth/register.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends "base.html" %}
+{% extends "base.j2" %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
diff --git a/app/templates/auth/reset_password.html b/app/templates/auth/reset_password.j2
similarity index 94%
rename from app/templates/auth/reset_password.html
rename to app/templates/auth/reset_password.j2
index fdf1215aa812f906204427df01e38fa33773ad5c..8d0f02360a5ac86530837ea1facaf5a4c36c1de5 100644
--- a/app/templates/auth/reset_password.html
+++ b/app/templates/auth/reset_password.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends "base.html" %}
+{% extends "base.j2" %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
diff --git a/app/templates/auth/reset_password_request.html b/app/templates/auth/reset_password_request.j2
similarity index 90%
rename from app/templates/auth/reset_password_request.html
rename to app/templates/auth/reset_password_request.j2
index a5b661558b0fc3511650e2df63447be5aa991367..773007a3da5c5844910c30a9d09aec3a401594f4 100644
--- a/app/templates/auth/reset_password_request.html
+++ b/app/templates/auth/reset_password_request.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends "base.html" %}
+{% extends "base.j2" %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
diff --git a/app/templates/auth/toogle_active_user.html b/app/templates/auth/toogle_active_user.j2
similarity index 95%
rename from app/templates/auth/toogle_active_user.html
rename to app/templates/auth/toogle_active_user.j2
index 38153100730b64946b50ec8dc6e249531bdb7a05..7f313336787d5feb4a8e74b368fe47fdb6f1302e 100644
--- a/app/templates/auth/toogle_active_user.html
+++ b/app/templates/auth/toogle_active_user.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends "base.html" %}
+{% extends "base.j2" %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
diff --git a/app/templates/auth/user_info_page.html b/app/templates/auth/user_info_page.j2
similarity index 87%
rename from app/templates/auth/user_info_page.html
rename to app/templates/auth/user_info_page.j2
index 1c2223294fb002f5851e73654192338e49943d74..23e8c27b21c76025f17d1f07adb7f3f37dabf465 100644
--- a/app/templates/auth/user_info_page.html
+++ b/app/templates/auth/user_info_page.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends "base.html" %}
+{% extends "base.j2" %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
@@ -19,8 +19,8 @@
 <p>
 <ul>
     {% if (
-        current_user.is_administrator()
-        or current_user.has_permission(Permission.ScoUsersAdmin, user.dept)
+    current_user.is_administrator()
+    or current_user.has_permission(Permission.ScoUsersAdmin, user.dept)
     ) %}
     <li><a class="stdlink" href="{{
         url_for( 'users.form_change_password', 
@@ -36,14 +36,14 @@
     </li>
     {% endif %}
     {% if (
-        current_user.is_administrator()
-        or current_user.has_permission(Permission.ScoUsersAdmin, user.dept)
+    current_user.is_administrator()
+    or current_user.has_permission(Permission.ScoUsersAdmin, user.dept)
     ) %}
-        <li><a class="stdlink" href="{{
+    <li><a class="stdlink" href="{{
                 url_for('users.toggle_active_user', scodoc_dept=g.scodoc_dept, 
                 user_name=user.user_name)
             }}">{{"désactiver" if user.active else "activer"}} ce compte</a>
-        </li>
+    </li>
     {% endif %}
 </ul>
 
diff --git a/app/templates/base.html b/app/templates/base.j2
similarity index 82%
rename from app/templates/base.html
rename to app/templates/base.j2
index 724eac0093d9ea1f73a0d4d17d7c7e4250a20a4e..640a4d72e77611e943ddfd87e8caf863cfa58d26 100644
--- a/app/templates/base.html
+++ b/app/templates/base.j2
@@ -24,21 +24,23 @@
             </button>
             <a class="navbar-brand" href="{{ url_for('scodoc.index') }}">ScoDoc</a>
         </div>
-        
+
         <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
-            
+
             <ul class="nav navbar-nav">
-            {% if current_user.is_administrator() %}
+                {% if current_user.is_administrator() %}
                 <li><a href="{{ url_for('scodoc.configuration') }}">Configuration</a></li>
-            {% endif %}
-            {% if g.scodoc_dept %}
+                {% endif %}
+                {% if g.scodoc_dept %}
                 <li><a href="{{ 
                     url_for('scolar.index_html', scodoc_dept=g.scodoc_dept) 
                 }}">Dept. {{ g.scodoc_dept }}</a></li>
-            {% endif %}
-            {% if not current_user.is_anonymous and current_user.has_permission(current_user.Permission.RelationsEntreprisesView, None) and scu and scu.is_entreprises_enabled() %}
+                {% endif %}
+                {% if not current_user.is_anonymous and
+                current_user.has_permission(current_user.Permission.RelationsEntreprisesView, None) and scu and
+                scu.is_entreprises_enabled() %}
                 <li><a href="{{ url_for('entreprises.index') }}">Entreprises</a></li>
-            {% endif %}
+                {% endif %}
             </ul>
             <ul class="nav navbar-nav navbar-right">
                 {% if current_user.is_anonymous %}
@@ -62,9 +64,9 @@
 {% block content %}
 <div class="container">
     {% with messages = get_flashed_messages(with_categories=true) %}
-        {% for category, message in messages %}
-            <div class="alert alert-info alert-{{ category }}" role="alert">{{ message }}</div>
-        {% endfor %}
+    {% for category, message in messages %}
+    <div class="alert alert-info alert-{{ category }}" role="alert">{{ message }}</div>
+    {% endfor %}
     {% endwith %}
 
     {# application content needs to be provided in the app_content block #}
diff --git a/app/templates/bul_foot.html b/app/templates/bul_foot.j2
similarity index 100%
rename from app/templates/bul_foot.html
rename to app/templates/bul_foot.j2
diff --git a/app/templates/bul_head.html b/app/templates/bul_head.j2
similarity index 100%
rename from app/templates/bul_head.html
rename to app/templates/bul_head.j2
diff --git a/app/templates/but/bulletin.html b/app/templates/but/bulletin.j2
similarity index 92%
rename from app/templates/but/bulletin.html
rename to app/templates/but/bulletin.j2
index 9e95b26ecfdde1a0a331dc335a238d0d6a2f768a..1efd03d0e61aaaf0eeb0b1acfb07688f4daad71f 100644
--- a/app/templates/but/bulletin.html
+++ b/app/templates/but/bulletin.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends "sco_page.html" %}
+{% extends "sco_page.j2" %}
 
 {% block styles %}
 {{super()}}
@@ -7,12 +7,12 @@
 
 {% block app_content %}
 
-{% include 'bul_head.html' %}
+{% include 'bul_head.j2' %}
 
 <releve-but></releve-but>
 <script src="{{sco.scu.STATIC_DIR}}/js/releve-but.js"></script>
 
-{% include 'bul_foot.html' %}
+{% include 'bul_foot.j2' %}
 
 <script>
 	let dataSrc = "{{bul_url|safe}}";
diff --git a/app/templates/but/documentation_codes_jury.html b/app/templates/but/documentation_codes_jury.j2
similarity index 100%
rename from app/templates/but/documentation_codes_jury.html
rename to app/templates/but/documentation_codes_jury.j2
diff --git a/app/templates/but/formsemestre_validation_auto_but.html b/app/templates/but/formsemestre_validation_auto_but.j2
similarity index 96%
rename from app/templates/but/formsemestre_validation_auto_but.html
rename to app/templates/but/formsemestre_validation_auto_but.j2
index 899b8e509ccf77e857dd07280a4004c7ec44004b..56a1eae55278bc486832fdb7f19dc0db7f678507 100644
--- a/app/templates/but/formsemestre_validation_auto_but.html
+++ b/app/templates/but/formsemestre_validation_auto_but.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends "sco_page.html" %}
+{% extends "sco_page.j2" %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block styles %}
diff --git a/app/templates/but/refcomp_assoc.html b/app/templates/but/refcomp_assoc.j2
similarity index 91%
rename from app/templates/but/refcomp_assoc.html
rename to app/templates/but/refcomp_assoc.j2
index 9ba07dee3d4c2a54a018104dee90028391577bcc..527a93bb860b6dbb82d54fe279ebd8d858472e51 100644
--- a/app/templates/but/refcomp_assoc.html
+++ b/app/templates/but/refcomp_assoc.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends "base.html" %}
+{% extends "base.j2" %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
@@ -11,15 +11,15 @@
     }}">{{formation.titre}} ({{formation.acronyme}})</a>
 </div>
 <div style="margin-top: 20px; margin-bottom: 20px;">
-    
-    Référentiel actuellement associé: 
+
+    Référentiel actuellement associé:
     {% if formation.referentiel_competence is not none %}
     <b>{{ formation.referentiel_competence.specialite_long }}</b>
-        <a href="{{ 
+    <a href="{{ 
             url_for('notes.refcomp_desassoc_formation', scodoc_dept=g.scodoc_dept, formation_id=formation.id)
         }}" class="stdlink">supprimer</a>
     {% else %}
-        <b>aucun</b>
+    <b>aucun</b>
     {% endif %}
     <div class="row" style="margin-top: 20px;">
         <div class="col-md-4">
diff --git a/app/templates/but/refcomp_load.html b/app/templates/but/refcomp_load.html
deleted file mode 100644
index 50d73d80cf42ac37b86d74ebdd65d66a14920a9b..0000000000000000000000000000000000000000
--- a/app/templates/but/refcomp_load.html
+++ /dev/null
@@ -1,30 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends "base.html" %}
-{% import 'bootstrap/wtf.html' as wtf %}
-
-{% block app_content %}
-<h1>Charger un référentiel de compétences</h1>
-
-<div class="row">
-    <div class="col-md-5">
-        {{ wtf.quick_form(form) }}
-    </div>
-</div>
-
-<div class="row">
-    <div class="col-md-5">
-    <ul>
-        <li>
-            <a href="{{ url_for('notes.refcomp_table', scodoc_dept=g.scodoc_dept, ) }}">
-            Liste des référentiels de compétences chargés</a>
-        </li>
-        {% if formation is not none %}
-        <li>
-            <a href="{{ url_for('notes.refcomp_assoc_formation', scodoc_dept=g.scodoc_dept, formation_id=formation.id) }}">
-            Association à la formation {{ formation.acronyme }}</a>
-        </li>
-        {% endif %}
-    </div>
-</div>
-
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/but/refcomp_load.j2 b/app/templates/but/refcomp_load.j2
new file mode 100644
index 0000000000000000000000000000000000000000..18cf30ae08b4d6cdd492193877d508bf410e1dc5
--- /dev/null
+++ b/app/templates/but/refcomp_load.j2
@@ -0,0 +1,31 @@
+{# -*- mode: jinja-html -*- #}
+{% extends "base.j2" %}
+{% import 'bootstrap/wtf.html' as wtf %}
+
+{% block app_content %}
+<h1>Charger un référentiel de compétences</h1>
+
+<div class="row">
+    <div class="col-md-5">
+        {{ wtf.quick_form(form) }}
+    </div>
+</div>
+
+<div class="row">
+    <div class="col-md-5">
+        <ul>
+            <li>
+                <a href="{{ url_for('notes.refcomp_table', scodoc_dept=g.scodoc_dept, ) }}">
+                    Liste des référentiels de compétences chargés</a>
+            </li>
+            {% if formation is not none %}
+            <li>
+                <a
+                    href="{{ url_for('notes.refcomp_assoc_formation', scodoc_dept=g.scodoc_dept, formation_id=formation.id) }}">
+                    Association à la formation {{ formation.acronyme }}</a>
+            </li>
+            {% endif %}
+    </div>
+</div>
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/but/refcomp_show.html b/app/templates/but/refcomp_show.j2
similarity index 96%
rename from app/templates/but/refcomp_show.html
rename to app/templates/but/refcomp_show.j2
index 62b3a01544be773edf8c53c018bf752437c2ce8d..b6bc0915d62c0dba3854c789861242c22d34ccc6 100644
--- a/app/templates/but/refcomp_show.html
+++ b/app/templates/but/refcomp_show.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends "sco_page.html" %}
+{% extends "sco_page.j2" %}
 {% block styles %}
 {{super()}}
 {% endblock %}
diff --git a/app/templates/but/refcomp_table.html b/app/templates/but/refcomp_table.j2
similarity index 97%
rename from app/templates/but/refcomp_table.html
rename to app/templates/but/refcomp_table.j2
index 6c7b05f0c6207526c1a5e15669c7dd27617c6421..b1b1a5ca5193d55ae0179b5c55ba063e628dde42 100644
--- a/app/templates/but/refcomp_table.html
+++ b/app/templates/but/refcomp_table.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends "sco_page.html" %}
+{% extends "sco_page.j2" %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
diff --git a/app/templates/config_codes_decisions.html b/app/templates/config_codes_decisions.j2
similarity index 95%
rename from app/templates/config_codes_decisions.html
rename to app/templates/config_codes_decisions.j2
index 5f92aa8d371615a26dff050dac15d31e0a20b8d6..8bdd338d3c39896763789426dbf44c0d90b9962d 100644
--- a/app/templates/config_codes_decisions.html
+++ b/app/templates/config_codes_decisions.j2
@@ -1,4 +1,4 @@
-{% extends "base.html" %}
+{% extends "base.j2" %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
diff --git a/app/templates/config_dept.html b/app/templates/config_dept.j2
similarity index 100%
rename from app/templates/config_dept.html
rename to app/templates/config_dept.j2
diff --git a/app/templates/config_logos.html b/app/templates/config_logos.html
deleted file mode 100644
index 69d18f7bddded4b268e1cb935169453bec358647..0000000000000000000000000000000000000000
--- a/app/templates/config_logos.html
+++ /dev/null
@@ -1,132 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-{% import 'bootstrap/wtf.html' as wtf %}
-
-{% macro render_field(field, with_label=True) %}
-<div>
-    {% if with_label %}
-    <span class="wtf-field">{{ field.label }} :</span>
-    {% endif %}
-    <span class="wtf-field">{{ field(**kwargs)|safe }}
-        {% if field.errors %}
-        <ul class=errors>
-            {% for error in field.errors %}
-            <li>{{ error }}</li>
-            {% endfor %}
-        </ul>
-        {% endif %}
-    </span>
-</div>
-{% endmacro %}
-
-{% macro render_add_logo(add_logo_form) %}
-    <details {{ add_logo_form.opened() }}>
-        <summary>
-            <h3>Ajouter un logo</h3>
-        </summary>
-        <div>
-            {{ render_field(add_logo_form.name) }}
-            {{ render_field(add_logo_form.upload) }}
-            {{ render_field(add_logo_form.do_insert, False, onSubmit="submit_form") }}
-        </div>
-    </details>
-{% endmacro %}
-
-{% macro render_logo(dept_form, logo_form) %}
-    <details {{ logo_form.opened() }}>
-        {{ logo_form.hidden_tag() }}
-        <summary>
-            {% if logo_form.titre %}
-                <h3 class="titre_logo">{{ logo_form.titre }}</h3>
-                {% if logo_form.description %}
-                    <div class="sco_help">{{ logo_form.description }}</div>
-                {% endif %}
-            {% else %}
-                <h3 class="titre_logo">Logo personalisé: {{ logo_form.logo_id.data }}</h3>
-                {% if logo_form.description %}
-                    <div class="sco_help">{{ logo_form.description }}</div>
-                {% endif %}
-            {% endif %}
-        </summary>
-        <div class="content">
-            <div class="image_logo">
-                <img src="{{ logo_form.logo.get_url_small() }}" alt="pas de logo chargé" />
-            </div>
-            <div class="infos_logo">
-                <h4>{{ logo_form.logo.logoname }} (Format: {{ logo_form.logo.suffix }})</h4>
-                Taille: {{ logo_form.logo.size }} px
-                {% if logo_form.logo.mm %} &nbsp; / &nbsp; {{ logo_form.logo.mm }} mm {% endif %}<br />
-                Aspect ratio: {{ logo_form.logo.aspect_ratio }}<br />
-                Usage: <span style="font-family: system-ui">{{ logo_form.logo.get_usage() }}</span>
-            </div>
-            <div class="actions_logo">
-                    <div class="action_label">Modifier l'image</div>
-                    <div class="action_button">
-                        <span class="wtf-field">{{ render_field(logo_form.upload, False, onchange="submit_form()") }}</span>
-                    </div>
-                    {% if logo_form.can_delete %}
-                        <div class="action_label">Renommer</div>
-                        <div class="action_button">
-                            {{ render_field(logo_form.new_name, False) }}
-                            {{ render_field(logo_form.do_rename, False, onSubmit="submit_form()") }}
-                        </div>
-                        <div class="action_label">Supprimer l'image</div>
-                        <div class="action_button">
-                            {{ render_field(logo_form.do_delete, False, onSubmit="submit_form()") }}
-                        </div>
-                    {% endif %}
-            </div>
-        </div>
-    </details>
-{% endmacro %}
-
-{% macro render_logos(dept_form) %}
-    {% for logo_entry in dept_form.logos.entries %}
-    {% set logo_form = logo_entry.form %}
-    {{ render_logo(dept_form, logo_form) }}
-    {% else %}
-    <p class="logo-titre_logo">
-    <h3 class="titre_logo">Aucun logo défini en propre à ce département</h3>
-    </p>
-    {% endfor %}
-{% endmacro %}
-
-{% block app_content %}
-
-<script src="/ScoDoc/static/jQuery/jquery.js"></script>
-<script src="/ScoDoc/static/js/config_logos.js"></script>
-
-<form id="config_logos_form" class="sco-form" action="" method="post" enctype="multipart/form-data" novalidate>
-    {{ form.hidden_tag() }}
-
-    <div class="configuration_logo">
-        <h1>Bibliothèque de logos</h1>
-        {% for dept_entry in form.depts.entries %}
-            {% set dept_form = dept_entry.form %}
-            {{ dept_entry.form.hidden_tag() }}
-            <details {{ dept_form.opened() }}>
-            <summary>
-                <span class="entete_dept">
-                    {% if dept_entry.form.is_local() %}
-                            <h2>Département {{ dept_form.dept_name.data }}</h2>
-                            <h3 class="effectifs">{{ dept_form.count() }}</h3>
-                            <div class="sco_help">Les paramètres donnés sont spécifiques à ce département.<br />
-                                Les logos du département se substituent aux logos de même nom définis globalement:</div>
-                   {% else %}
-                            <h2>Logos généraux</h2>
-                            <h3 class="effectifs">{{ dept_form.count() }}</h3>
-                            <div class="sco_help">Les images de cette section sont utilisé pour tous les départements,
-                                mais peuvent être redéfinies localement au niveau de chaque département
-                                (il suffit de définir un logo local de même nom)</div>
-                   {% endif %}
-                </span>
-            </summary>
-            <div>
-                {{ render_logos(dept_form) }}
-                {{ render_add_logo(dept_form.add_logo.form) }}
-            </div>
-        </details>
-        {% endfor %}
-    </div>
-</form>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/config_logos.j2 b/app/templates/config_logos.j2
new file mode 100644
index 0000000000000000000000000000000000000000..03808c1b22ec0a1368140590c55b79a6b8c4f60c
--- /dev/null
+++ b/app/templates/config_logos.j2
@@ -0,0 +1,132 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+{% import 'bootstrap/wtf.html' as wtf %}
+
+{% macro render_field(field, with_label=True) %}
+<div>
+    {% if with_label %}
+    <span class="wtf-field">{{ field.label }} :</span>
+    {% endif %}
+    <span class="wtf-field">{{ field(**kwargs)|safe }}
+        {% if field.errors %}
+        <ul class=errors>
+            {% for error in field.errors %}
+            <li>{{ error }}</li>
+            {% endfor %}
+        </ul>
+        {% endif %}
+    </span>
+</div>
+{% endmacro %}
+
+{% macro render_add_logo(add_logo_form) %}
+<details {{ add_logo_form.opened() }}>
+    <summary>
+        <h3>Ajouter un logo</h3>
+    </summary>
+    <div>
+        {{ render_field(add_logo_form.name) }}
+        {{ render_field(add_logo_form.upload) }}
+        {{ render_field(add_logo_form.do_insert, False, onSubmit="submit_form") }}
+    </div>
+</details>
+{% endmacro %}
+
+{% macro render_logo(dept_form, logo_form) %}
+<details {{ logo_form.opened() }}>
+    {{ logo_form.hidden_tag() }}
+    <summary>
+        {% if logo_form.titre %}
+        <h3 class="titre_logo">{{ logo_form.titre }}</h3>
+        {% if logo_form.description %}
+        <div class="sco_help">{{ logo_form.description }}</div>
+        {% endif %}
+        {% else %}
+        <h3 class="titre_logo">Logo personalisé: {{ logo_form.logo_id.data }}</h3>
+        {% if logo_form.description %}
+        <div class="sco_help">{{ logo_form.description }}</div>
+        {% endif %}
+        {% endif %}
+    </summary>
+    <div class="content">
+        <div class="image_logo">
+            <img src="{{ logo_form.logo.get_url_small() }}" alt="pas de logo chargé" />
+        </div>
+        <div class="infos_logo">
+            <h4>{{ logo_form.logo.logoname }} (Format: {{ logo_form.logo.suffix }})</h4>
+            Taille: {{ logo_form.logo.size }} px
+            {% if logo_form.logo.mm %} &nbsp; / &nbsp; {{ logo_form.logo.mm }} mm {% endif %}<br />
+            Aspect ratio: {{ logo_form.logo.aspect_ratio }}<br />
+            Usage: <span style="font-family: system-ui">{{ logo_form.logo.get_usage() }}</span>
+        </div>
+        <div class="actions_logo">
+            <div class="action_label">Modifier l'image</div>
+            <div class="action_button">
+                <span class="wtf-field">{{ render_field(logo_form.upload, False, onchange="submit_form()") }}</span>
+            </div>
+            {% if logo_form.can_delete %}
+            <div class="action_label">Renommer</div>
+            <div class="action_button">
+                {{ render_field(logo_form.new_name, False) }}
+                {{ render_field(logo_form.do_rename, False, onSubmit="submit_form()") }}
+            </div>
+            <div class="action_label">Supprimer l'image</div>
+            <div class="action_button">
+                {{ render_field(logo_form.do_delete, False, onSubmit="submit_form()") }}
+            </div>
+            {% endif %}
+        </div>
+    </div>
+</details>
+{% endmacro %}
+
+{% macro render_logos(dept_form) %}
+{% for logo_entry in dept_form.logos.entries %}
+{% set logo_form = logo_entry.form %}
+{{ render_logo(dept_form, logo_form) }}
+{% else %}
+<p class="logo-titre_logo">
+<h3 class="titre_logo">Aucun logo défini en propre à ce département</h3>
+</p>
+{% endfor %}
+{% endmacro %}
+
+{% block app_content %}
+
+<script src="/ScoDoc/static/jQuery/jquery.js"></script>
+<script src="/ScoDoc/static/js/config_logos.js"></script>
+
+<form id="config_logos_form" class="sco-form" action="" method="post" enctype="multipart/form-data" novalidate>
+    {{ form.hidden_tag() }}
+
+    <div class="configuration_logo">
+        <h1>Bibliothèque de logos</h1>
+        {% for dept_entry in form.depts.entries %}
+        {% set dept_form = dept_entry.form %}
+        {{ dept_entry.form.hidden_tag() }}
+        <details {{ dept_form.opened() }}>
+            <summary>
+                <span class="entete_dept">
+                    {% if dept_entry.form.is_local() %}
+                    <h2>Département {{ dept_form.dept_name.data }}</h2>
+                    <h3 class="effectifs">{{ dept_form.count() }}</h3>
+                    <div class="sco_help">Les paramètres donnés sont spécifiques à ce département.<br />
+                        Les logos du département se substituent aux logos de même nom définis globalement:</div>
+                    {% else %}
+                    <h2>Logos généraux</h2>
+                    <h3 class="effectifs">{{ dept_form.count() }}</h3>
+                    <div class="sco_help">Les images de cette section sont utilisé pour tous les départements,
+                        mais peuvent être redéfinies localement au niveau de chaque département
+                        (il suffit de définir un logo local de même nom)</div>
+                    {% endif %}
+                </span>
+            </summary>
+            <div>
+                {{ render_logos(dept_form) }}
+                {{ render_add_logo(dept_form.add_logo.form) }}
+            </div>
+        </details>
+        {% endfor %}
+    </div>
+</form>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/configuration.html b/app/templates/configuration.j2
similarity index 51%
rename from app/templates/configuration.html
rename to app/templates/configuration.j2
index e6694e1d0aef82eb5151ff26f8864a7beff8f063..05567ef3f2719d8ea66e72132c13a94380a8acf5 100644
--- a/app/templates/configuration.html
+++ b/app/templates/configuration.j2
@@ -1,12 +1,12 @@
 {# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
+{% extends 'base.j2' %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% macro render_field(field, with_label=True) %}
 <div>
-    {%  if with_label %}
-        <span class="wtf-field">{{ field.label }} :</span>
-    {%  endif %}
+    {% if with_label %}
+    <span class="wtf-field">{{ field.label }} :</span>
+    {% endif %}
     <span class="wtf-field">{{ field(**kwargs)|safe }}
         {% if field.errors %}
         <ul class=errors>
@@ -22,10 +22,10 @@
 {% block app_content %}
 
 <h1>Configuration générale</h1>
-    <div class="sco_help greenboldtext">Les paramètres donnés ici s'appliquent à tout ScoDoc (tous les départements).</div>
+<div class="sco_help greenboldtext">Les paramètres donnés ici s'appliquent à tout ScoDoc (tous les départements).</div>
 
 <section>
-<h2>Calcul des "bonus" définis par l'établissement</h2>
+    <h2>Calcul des "bonus" définis par l'établissement</h2>
     <form id="configuration_form" class="sco-form" action="" method="post" enctype="multipart/form-data" novalidate>
         {{ form_bonus.hidden_tag() }}
         <div class="row">
@@ -39,35 +39,36 @@
 </section>
 
 <section>
-<h2>Gestion des images: logos, signatures, ...</h2>
-    <div class="sco_help">Ces images peuvent être intégrées dans les documents 
-    générés par ScoDoc: bulletins, PV, etc.
+    <h2>Gestion des images: logos, signatures, ...</h2>
+    <div class="sco_help">Ces images peuvent être intégrées dans les documents
+        générés par ScoDoc: bulletins, PV, etc.
     </div>
     <p><a class="stdlink" href="{{url_for('scodoc.configure_logos')}}">configuration des images et logos</a>
     </p>
 </section>
 
 <section>
-<h2>Exports Apogée</h2>
-    <p><a class="stdlink" href="{{url_for('scodoc.config_codes_decisions')}}">configuration des codes de décision</a></p>
+    <h2>Exports Apogée</h2>
+    <p><a class="stdlink" href="{{url_for('scodoc.config_codes_decisions')}}">configuration des codes de décision</a>
+    </p>
 </section>
 
 <h2>Utilisateurs</h2>
 <section>
-    <p><a class="stdlink" href="{{url_for('auth.reset_standard_roles_permissions')}}">remettre 
-    les permissions des rôles standards à leurs valeurs par défaut</a> (efface les modifications apportées)
+    <p><a class="stdlink" href="{{url_for('auth.reset_standard_roles_permissions')}}">remettre
+            les permissions des rôles standards à leurs valeurs par défaut</a> (efface les modifications apportées)
     </p>
 </section>
 
 <h2>ScoDoc</h2>
-    <form id="configuration_form_scodoc" class="sco-form" action="" method="post" enctype="multipart/form-data" novalidate>
-        {{ form_scodoc.hidden_tag() }}
-        <div class="row">
-            <div class="col-md-4">
-                {{ wtf.quick_form(form_scodoc) }}
-            </div>
+<form id="configuration_form_scodoc" class="sco-form" action="" method="post" enctype="multipart/form-data" novalidate>
+    {{ form_scodoc.hidden_tag() }}
+    <div class="row">
+        <div class="col-md-4">
+            {{ wtf.quick_form(form_scodoc) }}
         </div>
-    </form>
+    </div>
+</form>
 {% endblock %}
 
 {% block scripts %}
@@ -75,20 +76,19 @@
 
 <script>
 
-function update_bonus_description() {
-    var query = "/ScoDoc/get_bonus_description/" + $("#configuration_form select")[0].value;
-    $.get(query, '', function (data) {
-        $("#bonus_description").html(data);
-    });
-}
+    function update_bonus_description() {
+        var query = "/ScoDoc/get_bonus_description/" + $("#configuration_form select")[0].value;
+        $.get(query, '', function (data) {
+            $("#bonus_description").html(data);
+        });
+    }
+
+    $(function () {
+        $("#configuration_form select").change(function () {
+            update_bonus_description();
+        });
 
-$(function()
-{
-    $("#configuration_form select").change(function(){ 
         update_bonus_description();
     });
-
-    update_bonus_description();
-});
 </script>
-{% endblock %}
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/confirm_dialog.html b/app/templates/confirm_dialog.j2
similarity index 89%
rename from app/templates/confirm_dialog.html
rename to app/templates/confirm_dialog.j2
index 5ef4e1601a25c8f561f36952a5ce422a6d04f45e..4755ed104443fbc598238c4fbf2b21e799b432c8 100644
--- a/app/templates/confirm_dialog.html
+++ b/app/templates/confirm_dialog.j2
@@ -1,5 +1,4 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
+{% extends 'base.j2' %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
diff --git a/app/templates/create_dept.html b/app/templates/create_dept.j2
similarity index 90%
rename from app/templates/create_dept.html
rename to app/templates/create_dept.j2
index 7745af7a01ab6e6f5a478014d03a3fb68653eff8..75887a4c2f4ac8ff8e7dbca84c22a51e51f82cd7 100644
--- a/app/templates/create_dept.html
+++ b/app/templates/create_dept.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends "base.html" %}
+{% extends "base.j2" %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
diff --git a/app/templates/dept_news.html b/app/templates/dept_news.html
deleted file mode 100644
index 23e3f26c80cbb93ef3c83fc9808458794850a8de..0000000000000000000000000000000000000000
--- a/app/templates/dept_news.html
+++ /dev/null
@@ -1,47 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends "sco_page.html" %}
-{% block styles %}
-{{super()}}
-{% endblock %}
-
-{% block app_content %}
-<h2>Opérations dans le département {{g.scodoc_dept}}</h2>
-
-<table id="dept_news" class="table table-striped">
-<thead>
-    <tr>
-    <th>Date</th>
-    <th>Type</th>
-    <th>Auteur</th>
-    <th>Détail</th>
-    </tr>
-</thead>
-<tbody>
-</tbody>
-</table>
-{% endblock %}
-
-
-{% block scripts %}
-{{super()}}
-<script>
-    $(document).ready(function () {
-      $('#dept_news').DataTable({
-        ajax: '{{url_for("scolar.dept_news_json", scodoc_dept=g.scodoc_dept)}}',
-        serverSide: true,
-        columns: [
-          { 
-            data: {
-                _:    "date.display",
-                sort: "date.timestamp"
-            } 
-          },
-          {data: 'type', searchable: false},
-          {data: 'authenticated_user', orderable: false, searchable: true},
-          {data: 'text', orderable: false, searchable: true}
-        ],
-        "order": [[ 0, "desc" ]]
-      });
-    });
-</script>
-{% endblock %}
diff --git a/app/templates/dept_news.j2 b/app/templates/dept_news.j2
new file mode 100644
index 0000000000000000000000000000000000000000..23b0ae51d0a91ea85535e039cdd5e27c7081c0b5
--- /dev/null
+++ b/app/templates/dept_news.j2
@@ -0,0 +1,47 @@
+{# -*- mode: jinja-html -*- #}
+{% extends "sco_page.j2" %}
+{% block styles %}
+{{super()}}
+{% endblock %}
+
+{% block app_content %}
+<h2>Opérations dans le département {{g.scodoc_dept}}</h2>
+
+<table id="dept_news" class="table table-striped">
+  <thead>
+    <tr>
+      <th>Date</th>
+      <th>Type</th>
+      <th>Auteur</th>
+      <th>Détail</th>
+    </tr>
+  </thead>
+  <tbody>
+  </tbody>
+</table>
+{% endblock %}
+
+
+{% block scripts %}
+{{super()}}
+<script>
+  $(document).ready(function () {
+    $('#dept_news').DataTable({
+      ajax: '{{url_for("scolar.dept_news_json", scodoc_dept=g.scodoc_dept)}}',
+      serverSide: true,
+      columns: [
+        {
+          data: {
+            _: "date.display",
+            sort: "date.timestamp"
+          }
+        },
+        { data: 'type', searchable: false },
+        { data: 'authenticated_user', orderable: false, searchable: true },
+        { data: 'text', orderable: false, searchable: true }
+      ],
+      "order": [[0, "desc"]]
+    });
+  });
+</script>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/email/reset_password.html b/app/templates/email/reset_password.j2
similarity index 100%
rename from app/templates/email/reset_password.html
rename to app/templates/email/reset_password.j2
diff --git a/app/templates/email/welcome.html b/app/templates/email/welcome.j2
similarity index 100%
rename from app/templates/email/welcome.html
rename to app/templates/email/welcome.j2
diff --git a/app/templates/entreprises/_correspondant.html b/app/templates/entreprises/_correspondant.j2
similarity index 100%
rename from app/templates/entreprises/_correspondant.html
rename to app/templates/entreprises/_correspondant.j2
diff --git a/app/templates/entreprises/_offre.html b/app/templates/entreprises/_offre.j2
similarity index 100%
rename from app/templates/entreprises/_offre.html
rename to app/templates/entreprises/_offre.j2
diff --git a/app/templates/entreprises/contacts.html b/app/templates/entreprises/contacts.html
deleted file mode 100644
index 8158e7e70a82c24a4942db9795f47f82008b68b6..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/contacts.html
+++ /dev/null
@@ -1,104 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-
-{% block styles %}
-{{super()}}
-<script src="/ScoDoc/static/jQuery/jquery-1.12.4.min.js"></script>
-<link rel="stylesheet" type="text/css" href="/ScoDoc/static/DataTables/datatables.min.css">
-<script type="text/javascript" charset="utf8" src="/ScoDoc/static/DataTables/datatables.min.js"></script>
-{% endblock %}
-
-{% block app_content %}
-    <div class="container">
-        <ul class="breadcrumbs">
-            <li class="breadcrumbs_item">
-                <a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
-            </li>
-            <li class="breadcrumbs_item">
-                <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>
-            </li>
-        </ul>
-    </div>
-
-    <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', entreprise_id=entreprise.id) }}">Ajouter contact</a>
-        {% endif %}
-        <table id="table-contacts">
-            <thead>
-                <tr>
-                    <td data-priority="">Date</td>
-                    <td data-priority="">Utilisateur</td>
-                    <td data-priority="">Notes</td>
-                    {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
-                    <td data-priority="">Action</td>
-                    {% endif %}
-                </tr>
-            </thead>
-            <tbody>
-                {% for contact in contacts %}
-                <tr>
-                    <td>{{ contact.date.strftime('%d/%m/%Y %Hh%M') }}</td>
-                    <td>{{ contact.user|get_nomcomplet_by_id }}</td>
-                    <td>{{ contact.notes }}</td>
-                    {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
-                    <td>
-                        <div class="btn-group">
-                            <a class="btn btn-default dropdown-toggle" data-toggle="dropdown" href="#">Action
-                                <span class="caret"></span>
-                            </a>
-                            <ul class="dropdown-menu pull-left">
-                                <li><a href="{{ url_for('entreprises.edit_contact', entreprise_id=entreprise.id, contact_id=contact.id) }}">Modifier</a></li>
-                                <li><a href="{{ url_for('entreprises.delete_contact', entreprise_id=entreprise.id, contact_id=contact.id) }}" style="color:red">Supprimer</a></li>
-                            </ul>
-                        </div>
-                    </td>
-                    {% endif %}
-                </tr>
-                {% endfor %}
-            </tbody>
-            <tfoot>
-                <tr>
-                    <td>Date</td>
-                    <td>Utilisateur</td>
-                    <td>Notes</td>
-                    {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
-                    <td>Action</td>
-                    {% endif %}
-                </tr>
-            </tfoot>
-        </table>
-    </div>
-
-    <script>
-        document.addEventListener('DOMContentLoaded', function () {
-            let table = new DataTable('#table-contacts',
-            {
-                "autoWidth": false,
-                "responsive": {
-                    "details": true
-                },
-                "pageLength": 10,
-                "language": {
-                    "emptyTable": "Aucune donnée disponible dans le tableau",
-                    "info": "Affichage de _START_ à _END_ sur _TOTAL_ entrées",
-                    "infoEmpty": "Affichage de 0 à 0 sur 0 entrées",
-                    "infoFiltered": "(filtrées depuis un total de _MAX_ entrées)",
-                    "lengthMenu": "Afficher _MENU_ entrées",
-                    "loadingRecords": "Chargement...",
-                    "processing":     "Traitement...",
-                    "search": "Rechercher:",
-                    "zeroRecords": "Aucune entrée correspondante trouvée",
-                    "paginate": {
-                        "next":       "Suivante",
-                        "previous":   "Précédente"
-                    }
-                }
-            });
-        });
-    </script>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/contacts.j2 b/app/templates/entreprises/contacts.j2
new file mode 100644
index 0000000000000000000000000000000000000000..2180a01153097c3008d4904540bb5fcd830bb99d
--- /dev/null
+++ b/app/templates/entreprises/contacts.j2
@@ -0,0 +1,109 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+
+{% block styles %}
+{{super()}}
+<script src="/ScoDoc/static/jQuery/jquery-1.12.4.min.js"></script>
+<link rel="stylesheet" type="text/css" href="/ScoDoc/static/DataTables/datatables.min.css">
+<script type="text/javascript" charset="utf8" src="/ScoDoc/static/DataTables/datatables.min.js"></script>
+{% endblock %}
+
+{% block app_content %}
+<div class="container">
+    <ul class="breadcrumbs">
+        <li class="breadcrumbs_item">
+            <a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
+        </li>
+        <li class="breadcrumbs_item">
+            <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>
+        </li>
+    </ul>
+</div>
+
+<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', entreprise_id=entreprise.id) }}">Ajouter contact</a>
+    {% endif %}
+    <table id="table-contacts">
+        <thead>
+            <tr>
+                <td data-priority="">Date</td>
+                <td data-priority="">Utilisateur</td>
+                <td data-priority="">Notes</td>
+                {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
+                <td data-priority="">Action</td>
+                {% endif %}
+            </tr>
+        </thead>
+        <tbody>
+            {% for contact in contacts %}
+            <tr>
+                <td>{{ contact.date.strftime('%d/%m/%Y %Hh%M') }}</td>
+                <td>{{ contact.user|get_nomcomplet_by_id }}</td>
+                <td>{{ contact.notes }}</td>
+                {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
+                <td>
+                    <div class="btn-group">
+                        <a class="btn btn-default dropdown-toggle" data-toggle="dropdown" href="#">Action
+                            <span class="caret"></span>
+                        </a>
+                        <ul class="dropdown-menu pull-left">
+                            <li><a
+                                    href="{{ url_for('entreprises.edit_contact', entreprise_id=entreprise.id, contact_id=contact.id) }}">Modifier</a>
+                            </li>
+                            <li><a href="{{ url_for('entreprises.delete_contact', entreprise_id=entreprise.id, contact_id=contact.id) }}"
+                                    style="color:red">Supprimer</a></li>
+                        </ul>
+                    </div>
+                </td>
+                {% endif %}
+            </tr>
+            {% endfor %}
+        </tbody>
+        <tfoot>
+            <tr>
+                <td>Date</td>
+                <td>Utilisateur</td>
+                <td>Notes</td>
+                {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
+                <td>Action</td>
+                {% endif %}
+            </tr>
+        </tfoot>
+    </table>
+</div>
+
+<script>
+    document.addEventListener('DOMContentLoaded', function () {
+        let table = new DataTable('#table-contacts',
+            {
+                "autoWidth": false,
+                "responsive": {
+                    "details": true
+                },
+                "pageLength": 10,
+                "language": {
+                    "emptyTable": "Aucune donnée disponible dans le tableau",
+                    "info": "Affichage de _START_ à _END_ sur _TOTAL_ entrées",
+                    "infoEmpty": "Affichage de 0 à 0 sur 0 entrées",
+                    "infoFiltered": "(filtrées depuis un total de _MAX_ entrées)",
+                    "lengthMenu": "Afficher _MENU_ entrées",
+                    "loadingRecords": "Chargement...",
+                    "processing": "Traitement...",
+                    "search": "Rechercher:",
+                    "zeroRecords": "Aucune entrée correspondante trouvée",
+                    "paginate": {
+                        "next": "Suivante",
+                        "previous": "Précédente"
+                    }
+                }
+            });
+    });
+</script>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/correspondants.html b/app/templates/entreprises/correspondants.html
deleted file mode 100644
index d4ce63225bbde5e49f46ea0540217a8980b29c41..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/correspondants.html
+++ /dev/null
@@ -1,93 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-
-{% block styles %}
-{{super()}}
-<script src="/ScoDoc/static/jQuery/jquery-1.12.4.min.js"></script>
-<link rel="stylesheet" type="text/css" href="/ScoDoc/static/DataTables/datatables.min.css">
-<script type="text/javascript" charset="utf8" src="/ScoDoc/static/DataTables/datatables.min.js"></script>
-{% endblock %}
-
-{% block app_content %}
-    {% include 'entreprises/nav.html' %}
-
-    {% if logs %}
-    <div class="container">
-        <h3>Dernières opérations <a href="{{ url_for('entreprises.logs') }}">Voir tout</a></h3>
-        <ul>
-            {% for log in logs %}
-                <li><span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span><span>{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet_by_username }}</span></li>
-            {% endfor %}
-        </ul>
-    </div>
-    {% endif %}
-
-    <div class="container" style="margin-bottom: 10px;">
-        <h1>Liste des correspondants</h1>
-        <table id="table-correspondants">
-            <thead>
-                <tr>
-                    <td data-priority="1">Nom</td>
-                    <td data-priority="3">Prenom</td>
-                    <td data-priority="4">Téléphone</td>
-                    <td data-priority="5">Mail</td>
-                    <td data-priority="6">Poste</td>
-                    <td data-priority="7">Service</td>
-                    <td data-priority="2">Entreprise</td>
-                </tr>
-            </thead>
-            <tbody>
-            {% for correspondant, site in correspondants %}
-                <tr>
-                    <td>{{ correspondant.nom }}</td>
-                    <td>{{ correspondant.prenom }}</td>
-                    <td>{{ correspondant.telephone }}</td>
-                    <td>{{ correspondant.mail }}</td>
-                    <td>{{ correspondant.poste}}</td>
-                    <td>{{ correspondant.service}}</td>
-                    <td><a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=site.entreprise.id) }}">{{ site.nom }}</a></td>
-                </tr>
-            {% endfor %}
-            </tbody>
-            <tfoot>
-                <tr>
-                    <td>Nom</td>
-                    <td>Prenom</td>
-                    <td>Téléphone</td>
-                    <td>Mail</td>
-                    <td>Poste</td>
-                    <td>Service</td>
-                    <td>Entreprise</td>
-                </tr>
-            </tfoot>
-        </table>
-    </div>
-
-    <script>
-        document.addEventListener('DOMContentLoaded', function () {
-            let table = new DataTable('#table-correspondants',
-            {
-                "autoWidth": false,
-                "responsive": {
-                    "details": true
-                },
-                "pageLength": 10,
-                "language": {
-                    "emptyTable": "Aucune donnée disponible dans le tableau",
-                    "info": "Affichage de _START_ à _END_ sur _TOTAL_ entrées",
-                    "infoEmpty": "Affichage de 0 à 0 sur 0 entrées",
-                    "infoFiltered": "(filtrées depuis un total de _MAX_ entrées)",
-                    "lengthMenu": "Afficher _MENU_ entrées",
-                    "loadingRecords": "Chargement...",
-                    "processing":     "Traitement...",
-                    "search": "Rechercher:",
-                    "zeroRecords": "Aucune entrée correspondante trouvée",
-                    "paginate": {
-                        "next":       "Suivante",
-                        "previous":   "Précédente"
-                    }
-                }
-            });
-        });
-    </script>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/correspondants.j2 b/app/templates/entreprises/correspondants.j2
new file mode 100644
index 0000000000000000000000000000000000000000..dc47ff35c9ee4efd6ddfb999dd4b5b158cef1a98
--- /dev/null
+++ b/app/templates/entreprises/correspondants.j2
@@ -0,0 +1,95 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+
+{% block styles %}
+{{super()}}
+<script src="/ScoDoc/static/jQuery/jquery-1.12.4.min.js"></script>
+<link rel="stylesheet" type="text/css" href="/ScoDoc/static/DataTables/datatables.min.css">
+<script type="text/javascript" charset="utf8" src="/ScoDoc/static/DataTables/datatables.min.js"></script>
+{% endblock %}
+
+{% block app_content %}
+{% include 'entreprises/nav.html' %}
+
+{% if logs %}
+<div class="container">
+    <h3>Dernières opérations <a href="{{ url_for('entreprises.logs') }}">Voir tout</a></h3>
+    <ul>
+        {% for log in logs %}
+        <li><span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span><span>{{ log.text|safe }} par
+                {{ log.authenticated_user|get_nomcomplet_by_username }}</span></li>
+        {% endfor %}
+    </ul>
+</div>
+{% endif %}
+
+<div class="container" style="margin-bottom: 10px;">
+    <h1>Liste des correspondants</h1>
+    <table id="table-correspondants">
+        <thead>
+            <tr>
+                <td data-priority="1">Nom</td>
+                <td data-priority="3">Prenom</td>
+                <td data-priority="4">Téléphone</td>
+                <td data-priority="5">Mail</td>
+                <td data-priority="6">Poste</td>
+                <td data-priority="7">Service</td>
+                <td data-priority="2">Entreprise</td>
+            </tr>
+        </thead>
+        <tbody>
+            {% for correspondant, site in correspondants %}
+            <tr>
+                <td>{{ correspondant.nom }}</td>
+                <td>{{ correspondant.prenom }}</td>
+                <td>{{ correspondant.telephone }}</td>
+                <td>{{ correspondant.mail }}</td>
+                <td>{{ correspondant.poste}}</td>
+                <td>{{ correspondant.service}}</td>
+                <td><a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=site.entreprise.id) }}">{{
+                        site.nom }}</a></td>
+            </tr>
+            {% endfor %}
+        </tbody>
+        <tfoot>
+            <tr>
+                <td>Nom</td>
+                <td>Prenom</td>
+                <td>Téléphone</td>
+                <td>Mail</td>
+                <td>Poste</td>
+                <td>Service</td>
+                <td>Entreprise</td>
+            </tr>
+        </tfoot>
+    </table>
+</div>
+
+<script>
+    document.addEventListener('DOMContentLoaded', function () {
+        let table = new DataTable('#table-correspondants',
+            {
+                "autoWidth": false,
+                "responsive": {
+                    "details": true
+                },
+                "pageLength": 10,
+                "language": {
+                    "emptyTable": "Aucune donnée disponible dans le tableau",
+                    "info": "Affichage de _START_ à _END_ sur _TOTAL_ entrées",
+                    "infoEmpty": "Affichage de 0 à 0 sur 0 entrées",
+                    "infoFiltered": "(filtrées depuis un total de _MAX_ entrées)",
+                    "lengthMenu": "Afficher _MENU_ entrées",
+                    "loadingRecords": "Chargement...",
+                    "processing": "Traitement...",
+                    "search": "Rechercher:",
+                    "zeroRecords": "Aucune entrée correspondante trouvée",
+                    "paginate": {
+                        "next": "Suivante",
+                        "previous": "Précédente"
+                    }
+                }
+            });
+    });
+</script>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/entreprises.html b/app/templates/entreprises/entreprises.html
deleted file mode 100644
index 89fd97be65004a385e3ff3051c992cfe30ae0f23..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/entreprises.html
+++ /dev/null
@@ -1,133 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-
-{% block styles %}
-{{super()}}
-<script src="/ScoDoc/static/jQuery/jquery-1.12.4.min.js"></script>
-<link rel="stylesheet" type="text/css" href="/ScoDoc/static/DataTables/datatables.min.css">
-<script type="text/javascript" charset="utf8" src="/ScoDoc/static/DataTables/datatables.min.js"></script>
-{% endblock %}
-
-{% block app_content %}
-    {% include 'entreprises/nav.html' %}
-
-    {% if logs %}
-    <div class="container">
-        <h3>Dernières opérations <a href="{{ url_for('entreprises.logs') }}">Voir tout</a></h3>
-        <ul>
-            {% for log in logs %}
-                <li><span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span><span>{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet_by_username }}</span></li>
-            {% endfor %}
-        </ul>
-    </div>
-    {% endif %}
-
-    <div class="container boutons">
-        {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
-            <a class="btn btn-default" href="{{ url_for('entreprises.add_entreprise') }}">Ajouter une entreprise</a>
-        {% endif %}
-        {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesExport, None) %}
-            <a class="btn btn-default" href="{{ url_for('entreprises.import_donnees') }}">Importer des données</a>
-        {% endif %}
-        {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesExport, None) and entreprises %}
-            <a class="btn btn-default" href="{{ url_for('entreprises.export_donnees') }}">Exporter des données</a>
-        {% endif %}
-    </div>
-
-    <div class="container" style="margin-bottom: 10px;">
-        <h1>Liste des entreprises</h1>
-        {% if form %}
-        <form id="form-entreprise-filter" method="POST" action="">
-            {{ form.hidden_tag() }}
-            <div><input id="active" name="active" type="checkbox" onChange="form.submit()" {% if checked[0] %} checked {% endif %}> {{ form.active.label }}</div>
-            <div><input id="association" name="association" type="checkbox" onChange="form.submit()" {% if checked[1] %} checked {% endif %}> {{ form.association.label }}</div>
-            <div><input id="siret_provisoire" name="siret_provisoire" type="checkbox" onChange="form.submit()" {% if checked[2] %} checked {% endif %}> {{ form.siret_provisoire.label }}</div>
-        </form>
-        {% endif %}
-        <table id="table-entreprises">
-            <thead>
-                <tr>
-                    <td data-priority="2">SIRET</td>
-                    <td data-priority="1">Nom</td>
-                    <td data-priority="4">Adresse</td>
-                    <td data-priority="6">Code postal</td>
-                    <td data-priority="5">Ville</td>
-                    <td data-priority="7">Pays</td>
-                    {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
-                    <td data-priority="3">Action</td>
-                    {% endif %}
-                </tr>
-            </thead>
-            <tbody>
-                {% for entreprise in entreprises %}
-                <tr>
-                    <td><a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=entreprise.id) }}"  style="{% if not entreprise.active %}color:red;{% endif %}{% if entreprise.siret_provisoire %}font-weight:bold;{% endif %}" >{{ entreprise.siret }}</a></td>
-                    <td>{{ entreprise.nom }}</td>
-                    <td>{{ entreprise.adresse }}</td>
-                    <td>{{ entreprise.codepostal }}</td>
-                    <td>{{ entreprise.ville }}</td>
-                    <td>{{ entreprise.pays }}</td>
-                    {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
-                    <td>
-                        <div class="btn-group">
-                            <a class="btn btn-default dropdown-toggle" data-toggle="dropdown" href="#">Action
-                                <span class="caret"></span>
-                            </a>
-                            <ul class="dropdown-menu pull-left">
-                                <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', entreprise_id=entreprise.id)}}" style="color:red">Désactiver</a></li>
-                                {% else %}
-                                <li><a href="{{ url_for('entreprises.fiche_entreprise_activer', entreprise_id=entreprise.id)}}" style="color:lightgreen">Activer</a></li>
-                                {% endif %}
-                            </ul>
-                        </div>
-                    </td>
-                    {% endif %}
-                </tr>
-                {% endfor %}
-            </tbody>
-            <tfoot>
-                <tr>
-                    <td>SIRET</td>
-                    <td>Nom</td>
-                    <td>Adresse</td>
-                    <td>Code postal</td>
-                    <td>Ville</td>
-                    <td>Pays</td>
-                    {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
-                    <td>Action</td>
-                    {% endif %}
-                </tr>
-            </tfoot>
-        </table>
-    </div>
-
-    <script>
-        document.addEventListener('DOMContentLoaded', function () {
-            let table = new DataTable('#table-entreprises',
-            {
-                "autoWidth": false,
-                "responsive": {
-                    "details": true
-                },
-                "pageLength": 10,
-                "language": {
-                    "emptyTable": "Aucune donnée disponible dans le tableau",
-                    "info": "Affichage de _START_ à _END_ sur _TOTAL_ entrées",
-                    "infoEmpty": "Affichage de 0 à 0 sur 0 entrées",
-                    "infoFiltered": "(filtrées depuis un total de _MAX_ entrées)",
-                    "lengthMenu": "Afficher _MENU_ entrées",
-                    "loadingRecords": "Chargement...",
-                    "processing":     "Traitement...",
-                    "search": "Rechercher:",
-                    "zeroRecords": "Aucune entrée correspondante trouvée",
-                    "paginate": {
-                        "next":       "Suivante",
-                        "previous":   "Précédente"
-                    }
-                }
-            });
-        });
-    </script>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/entreprises.j2 b/app/templates/entreprises/entreprises.j2
new file mode 100644
index 0000000000000000000000000000000000000000..5aa4634df0108fe3dd3dd0a2a11bcf8f97e3926c
--- /dev/null
+++ b/app/templates/entreprises/entreprises.j2
@@ -0,0 +1,143 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+
+{% block styles %}
+{{super()}}
+<script src="/ScoDoc/static/jQuery/jquery-1.12.4.min.js"></script>
+<link rel="stylesheet" type="text/css" href="/ScoDoc/static/DataTables/datatables.min.css">
+<script type="text/javascript" charset="utf8" src="/ScoDoc/static/DataTables/datatables.min.js"></script>
+{% endblock %}
+
+{% block app_content %}
+{% include 'entreprises/nav.html' %}
+
+{% if logs %}
+<div class="container">
+    <h3>Dernières opérations <a href="{{ url_for('entreprises.logs') }}">Voir tout</a></h3>
+    <ul>
+        {% for log in logs %}
+        <li><span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span><span>{{ log.text|safe }} par
+                {{ log.authenticated_user|get_nomcomplet_by_username }}</span></li>
+        {% endfor %}
+    </ul>
+</div>
+{% endif %}
+
+<div class="container boutons">
+    {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
+    <a class="btn btn-default" href="{{ url_for('entreprises.add_entreprise') }}">Ajouter une entreprise</a>
+    {% endif %}
+    {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesExport, None) %}
+    <a class="btn btn-default" href="{{ url_for('entreprises.import_donnees') }}">Importer des données</a>
+    {% endif %}
+    {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesExport, None) and entreprises %}
+    <a class="btn btn-default" href="{{ url_for('entreprises.export_donnees') }}">Exporter des données</a>
+    {% endif %}
+</div>
+
+<div class="container" style="margin-bottom: 10px;">
+    <h1>Liste des entreprises</h1>
+    {% if form %}
+    <form id="form-entreprise-filter" method="POST" action="">
+        {{ form.hidden_tag() }}
+        <div><input id="active" name="active" type="checkbox" onChange="form.submit()" {% if checked[0] %} checked {%
+                endif %}> {{ form.active.label }}</div>
+        <div><input id="association" name="association" type="checkbox" onChange="form.submit()" {% if checked[1] %}
+                checked {% endif %}> {{ form.association.label }}</div>
+        <div><input id="siret_provisoire" name="siret_provisoire" type="checkbox" onChange="form.submit()" {% if
+                checked[2] %} checked {% endif %}> {{ form.siret_provisoire.label }}</div>
+    </form>
+    {% endif %}
+    <table id="table-entreprises">
+        <thead>
+            <tr>
+                <td data-priority="2">SIRET</td>
+                <td data-priority="1">Nom</td>
+                <td data-priority="4">Adresse</td>
+                <td data-priority="6">Code postal</td>
+                <td data-priority="5">Ville</td>
+                <td data-priority="7">Pays</td>
+                {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
+                <td data-priority="3">Action</td>
+                {% endif %}
+            </tr>
+        </thead>
+        <tbody>
+            {% for entreprise in entreprises %}
+            <tr>
+                <td><a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=entreprise.id) }}"
+                        style="{% if not entreprise.active %}color:red;{% endif %}{% if entreprise.siret_provisoire %}font-weight:bold;{% endif %}">{{
+                        entreprise.siret }}</a></td>
+                <td>{{ entreprise.nom }}</td>
+                <td>{{ entreprise.adresse }}</td>
+                <td>{{ entreprise.codepostal }}</td>
+                <td>{{ entreprise.ville }}</td>
+                <td>{{ entreprise.pays }}</td>
+                {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
+                <td>
+                    <div class="btn-group">
+                        <a class="btn btn-default dropdown-toggle" data-toggle="dropdown" href="#">Action
+                            <span class="caret"></span>
+                        </a>
+                        <ul class="dropdown-menu pull-left">
+                            <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', entreprise_id=entreprise.id)}}"
+                                    style="color:red">Désactiver</a></li>
+                            {% else %}
+                            <li><a href="{{ url_for('entreprises.fiche_entreprise_activer', entreprise_id=entreprise.id)}}"
+                                    style="color:lightgreen">Activer</a></li>
+                            {% endif %}
+                        </ul>
+                    </div>
+                </td>
+                {% endif %}
+            </tr>
+            {% endfor %}
+        </tbody>
+        <tfoot>
+            <tr>
+                <td>SIRET</td>
+                <td>Nom</td>
+                <td>Adresse</td>
+                <td>Code postal</td>
+                <td>Ville</td>
+                <td>Pays</td>
+                {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
+                <td>Action</td>
+                {% endif %}
+            </tr>
+        </tfoot>
+    </table>
+</div>
+
+<script>
+    document.addEventListener('DOMContentLoaded', function () {
+        let table = new DataTable('#table-entreprises',
+            {
+                "autoWidth": false,
+                "responsive": {
+                    "details": true
+                },
+                "pageLength": 10,
+                "language": {
+                    "emptyTable": "Aucune donnée disponible dans le tableau",
+                    "info": "Affichage de _START_ à _END_ sur _TOTAL_ entrées",
+                    "infoEmpty": "Affichage de 0 à 0 sur 0 entrées",
+                    "infoFiltered": "(filtrées depuis un total de _MAX_ entrées)",
+                    "lengthMenu": "Afficher _MENU_ entrées",
+                    "loadingRecords": "Chargement...",
+                    "processing": "Traitement...",
+                    "search": "Rechercher:",
+                    "zeroRecords": "Aucune entrée correspondante trouvée",
+                    "paginate": {
+                        "next": "Suivante",
+                        "previous": "Précédente"
+                    }
+                }
+            });
+    });
+</script>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/entreprises_validation.html b/app/templates/entreprises/entreprises_validation.html
deleted file mode 100644
index c37e3c11bbd85b617a219db4f6229c53d2f3c538..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/entreprises_validation.html
+++ /dev/null
@@ -1,95 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-
-{% block styles %}
-{{super()}}
-<script src="/ScoDoc/static/jQuery/jquery-1.12.4.min.js"></script>
-<link rel="stylesheet" type="text/css" href="/ScoDoc/static/DataTables/datatables.min.css">
-<script type="text/javascript" charset="utf8" src="/ScoDoc/static/DataTables/datatables.min.js"></script>
-{% endblock %}
-
-{% block app_content %}
-    {% include 'entreprises/nav.html' %}
-
-    {% if logs %}
-    <div class="container">
-        <h3>Dernières opérations</h3>
-        <ul>
-            {% for log in logs %}
-                <li><span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span><span>{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet_by_username }}</span></li>
-            {% endfor %}
-        </ul>
-    </div>
-    {% endif %}
-    
-    <div class="container" style="margin-bottom: 10px;">
-        <h1>Liste des entreprises à valider</h1>
-        <table id="table-entreprises-validation">
-            <thead>
-                <tr>
-                    <td data-priority="3">SIRET</td>
-                    <td data-priority="1">Nom</td>
-                    <td data-priority="4">Adresse</td>
-                    <td data-priority="5">Code postal</td>
-                    <td data-priority="6">Ville</td>
-                    <td data-priority="7">Pays</td>
-                    <td data-priority="2">Action</td>
-                </tr>
-            </thead>
-            <tbody>
-            {% for entreprise in entreprises %}
-            <tr class="table-row active">
-                <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', entreprise_id=entreprise.id) }}">Voir</a>
-                </th>
-            </tr>
-            {% endfor %}
-            </tbody>
-            <tfoot>
-                <tr>
-                    <td>SIRET</td>
-                    <td>Nom</td>
-                    <td>Adresse</td>
-                    <td>Code postal</td>
-                    <td>Ville</td>
-                    <td>Pays</td>
-                    <td>Action</td>
-                </tr>
-            </tfoot>
-        </table>
-    </div>
-
-    <script>
-        document.addEventListener('DOMContentLoaded', function () {
-            let table = new DataTable('#table-entreprises-validation',
-            {
-                "autoWidth": false,
-                "responsive": {
-                    "details": true
-                },
-                "pageLength": 10,
-                "language": {
-                    "emptyTable": "Aucune donnée disponible dans le tableau",
-                    "info": "Affichage de _START_ à _END_ sur _TOTAL_ entrées",
-                    "infoEmpty": "Affichage de 0 à 0 sur 0 entrées",
-                    "infoFiltered": "(filtrées depuis un total de _MAX_ entrées)",
-                    "lengthMenu": "Afficher _MENU_ entrées",
-                    "loadingRecords": "Chargement...",
-                    "processing":     "Traitement...",
-                    "search": "Rechercher:",
-                    "zeroRecords": "Aucune entrée correspondante trouvée",
-                    "paginate": {
-                        "next":       "Suivante",
-                        "previous":   "Précédente"
-                    }
-                }
-            });
-        });
-    </script>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/entreprises_validation.j2 b/app/templates/entreprises/entreprises_validation.j2
new file mode 100644
index 0000000000000000000000000000000000000000..6c2c835769273efe8ceca1decd56c5fa3f5286c3
--- /dev/null
+++ b/app/templates/entreprises/entreprises_validation.j2
@@ -0,0 +1,98 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+
+{% block styles %}
+{{super()}}
+<script src="/ScoDoc/static/jQuery/jquery-1.12.4.min.js"></script>
+<link rel="stylesheet" type="text/css" href="/ScoDoc/static/DataTables/datatables.min.css">
+<script type="text/javascript" charset="utf8" src="/ScoDoc/static/DataTables/datatables.min.js"></script>
+{% endblock %}
+
+{% block app_content %}
+{% include 'entreprises/nav.html' %}
+
+{% if logs %}
+<div class="container">
+    <h3>Dernières opérations</h3>
+    <ul>
+        {% for log in logs %}
+        <li><span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span><span>{{ log.text|safe }} par
+                {{ log.authenticated_user|get_nomcomplet_by_username }}</span></li>
+        {% endfor %}
+    </ul>
+</div>
+{% endif %}
+
+<div class="container" style="margin-bottom: 10px;">
+    <h1>Liste des entreprises à valider</h1>
+    <table id="table-entreprises-validation">
+        <thead>
+            <tr>
+                <td data-priority="3">SIRET</td>
+                <td data-priority="1">Nom</td>
+                <td data-priority="4">Adresse</td>
+                <td data-priority="5">Code postal</td>
+                <td data-priority="6">Ville</td>
+                <td data-priority="7">Pays</td>
+                <td data-priority="2">Action</td>
+            </tr>
+        </thead>
+        <tbody>
+            {% for entreprise in entreprises %}
+            <tr class="table-row active">
+                <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', entreprise_id=entreprise.id) }}">Voir</a>
+                </th>
+            </tr>
+            {% endfor %}
+        </tbody>
+        <tfoot>
+            <tr>
+                <td>SIRET</td>
+                <td>Nom</td>
+                <td>Adresse</td>
+                <td>Code postal</td>
+                <td>Ville</td>
+                <td>Pays</td>
+                <td>Action</td>
+            </tr>
+        </tfoot>
+    </table>
+</div>
+
+<script>
+    document.addEventListener('DOMContentLoaded', function () {
+        let table = new DataTable('#table-entreprises-validation',
+            {
+                "autoWidth": false,
+                "responsive": {
+                    "details": true
+                },
+                "pageLength": 10,
+                "language": {
+                    "emptyTable": "Aucune donnée disponible dans le tableau",
+                    "info": "Affichage de _START_ à _END_ sur _TOTAL_ entrées",
+                    "infoEmpty": "Affichage de 0 à 0 sur 0 entrées",
+                    "infoFiltered": "(filtrées depuis un total de _MAX_ entrées)",
+                    "lengthMenu": "Afficher _MENU_ entrées",
+                    "loadingRecords": "Chargement...",
+                    "processing": "Traitement...",
+                    "search": "Rechercher:",
+                    "zeroRecords": "Aucune entrée correspondante trouvée",
+                    "paginate": {
+                        "next": "Suivante",
+                        "previous": "Précédente"
+                    }
+                }
+            });
+    });
+</script>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/error.html b/app/templates/entreprises/error.html
deleted file mode 100644
index b1db9c31337d780b7aca108f6a1c6c4777cf6c3b..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/error.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-
-{% block app_content %}
-
-    <h2>Erreur !</h2>
-
-    {{ e }}
-
-    <p>
-        <a href="{{ url_for('entreprises.index') }}">Retour</a>
-    </p>
-
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/error.j2 b/app/templates/entreprises/error.j2
new file mode 100644
index 0000000000000000000000000000000000000000..dc2c0ccf088ece65fd24ff2bd9af6290e4f9abe8
--- /dev/null
+++ b/app/templates/entreprises/error.j2
@@ -0,0 +1,14 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+
+{% block app_content %}
+
+<h2>Erreur !</h2>
+
+{{ e }}
+
+<p>
+    <a href="{{ url_for('entreprises.index') }}">Retour</a>
+</p>
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/fiche_entreprise.html b/app/templates/entreprises/fiche_entreprise.html
deleted file mode 100644
index c895348ab5240e868f5caea3824222be344438ce..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/fiche_entreprise.html
+++ /dev/null
@@ -1,227 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-
-{% block styles %}
-{{super()}}
-<script src="/ScoDoc/static/jQuery/jquery-1.12.4.min.js"></script>
-<link rel="stylesheet" type="text/css" href="/ScoDoc/static/DataTables/datatables.min.css">
-<script type="text/javascript" charset="utf8" src="/ScoDoc/static/DataTables/datatables.min.js"></script>
-{% endblock %}
-
-{% block app_content %}
-    <div class="container">
-        <ul class="breadcrumbs">
-            <li class="breadcrumbs_item">
-                <a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
-            </li>
-            <li class="breadcrumbs_item">
-                <a href="" class="breadcrumbs_link breadcrumbs_link-active">Fiche entreprise</a>
-            </li>
-        </ul>
-    </div>
-    
-    {% if logs %}
-    <div class="container">
-        <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>
-                <span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span>
-                <span>{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet_by_username }}</span>
-            </li>
-            {% endfor %}
-        </ul>
-    </div>
-    {% endif %}
-    
-    <div class="container fiche-entreprise">
-        <h2>Fiche entreprise - {{ entreprise.nom }} ({{ entreprise.siret }})</h2>
-
-        {% if not entreprise.active %}
-        <div class="info-active">
-            La fiche entreprise est désactivée<br>
-            {% if entreprise.notes_active != "" %}
-            Notes : {{ entreprise.notes_active }}
-            {% endif %}
-        </div>
-        {% endif %}
-
-        <div class="entreprise">
-            <div>
-                SIRET {% if entreprise.siret_provisoire %}provisoire{% endif %} : {{ entreprise.siret }}<br>
-                Nom : {{ entreprise.nom }}<br>
-                Adresse : {{ entreprise.adresse }}<br>
-                Code postal : {{ entreprise.codepostal }}<br>
-                Ville : {{ entreprise.ville }}<br>
-                Pays : {{ entreprise.pays }}<br>
-                {% if entreprise.association %}
-                Association
-                {% endif %}
-            </div>
-
-            {% 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', entreprise_id=entreprise.id) }}">Ajouter taxe apprentissage</a>
-                <div class="taxe-apprentissage">
-                    <ul id="liste-taxes-apprentissages">
-                        {% if not taxes|check_taxe_now %}
-                        <li>année actuelle : non versée</li>
-                        {% endif %}
-                        {% for taxe in taxes %}
-                        <li>
-                            <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>
-                </div>
-            </div>
-            {% endif %}
-        </div>
-
-        <div>
-        {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
-            <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', entreprise_id=entreprise.id) }}">Désactiver</a>
-            {% else %}
-            <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', 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', 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>
-
-
-        <div class="sites-et-offres">
-            {% if entreprise.sites %}
-            <div>
-                <h3>Sites</h3>
-                {% for site in entreprise.sites %}
-                <div class="site">
-                    Nom : {{ site.nom }}<br>
-                    Adresse : {{ site.adresse }}<br>
-                    Code postal : {{ site.codepostal }}<br>
-                    Ville : {{ site.ville }}<br>
-                    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', 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) %}
-                        {% for correspondant in site.correspondants %}
-                            {% include 'entreprises/_correspondant.html' %}
-                        {% endfor %}
-                    {% endif %}
-                </div>
-                {% endfor %}
-            </div>
-            {% endif %}
-
-            {% if offres %}
-            <div>
-                <h3>Offres - <a href="{{ url_for('entreprises.offres_expirees', entreprise_id=entreprise.id) }}">Voir les offres expirées</a></h3>
-                {% for offre, files, offre_depts, correspondant in offres %}
-                    {% include 'entreprises/_offre.html' %}
-                {% endfor %}
-            </div>
-            {% endif %}
-        </div>
-    </div>
-    
-    <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', entreprise_id=entreprise.id) }}" style="margin-bottom:10px;">Ajouter stage ou apprentissage</a>
-        {% endif %}
-        <table id="table-stages-apprentissages">
-            <thead>
-                <tr>
-                    <td data-priority="3">Date début</td>
-                    <td data-priority="4">Date fin</td>
-                    <td data-priority="5">Durée</td>
-                    <td data-priority="2">Type</td>
-                    <td data-priority="1">Étudiant</td>
-                    <td data-priority="6">Formation</td>
-                    <td data-priority="7">Notes</td>
-                    {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
-                    <td data-priority="3">Action</td>
-                    {% endif %}
-                </tr>
-            </thead>
-            <tbody>
-                {% for stage_apprentissage, etudiant in stages_apprentissages %}
-                <tr>
-                    <td>{{ stage_apprentissage.date_debut.strftime('%d/%m/%Y') }}</td>
-                    <td>{{ stage_apprentissage.date_fin.strftime('%d/%m/%Y') }}</td>
-                    <td>{{ (stage_apprentissage.date_fin-stage_apprentissage.date_debut).days//7 }} semaines</td>
-                    <td>{{ stage_apprentissage.type_offre }}</td>
-                    <td><a href="{{ url_for('scolar.ficheEtud', scodoc_dept=etudiant.dept_id|get_dept_acronym, etudid=stage_apprentissage.etudid) }}">{{ etudiant.nom|format_nom }} {{ etudiant.prenom|format_prenom }}</a></td>
-                    <td>{% if stage_apprentissage.formation_text %}{{ stage_apprentissage.formation_text }}{% endif %}</td>
-                    <td>{{ stage_apprentissage.notes }}</td>
-                    {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
-                    <td>
-                        <div class="btn-group">
-                            <a class="btn btn-default dropdown-toggle" data-toggle="dropdown" href="#">Action
-                                <span class="caret"></span>
-                            </a>
-                            <ul class="dropdown-menu pull-left">
-                                <li><a href="{{ url_for('entreprises.edit_stage_apprentissage', entreprise_id=entreprise.id, stage_apprentissage_id=stage_apprentissage.id) }}">Modifier</a></li>
-                                <li><a href="{{ url_for('entreprises.delete_stage_apprentissage', entreprise_id=entreprise.id, stage_apprentissage_id=stage_apprentissage.id) }}" style="color:red">Supprimer</a></li>
-                            </ul>
-                        </div>
-                    </td>
-                    {% endif %}
-                </tr>
-                {% endfor %}
-            </tbody>
-            <tfoot>
-                <tr>
-                    <td>Date début</td>
-                    <td>Date fin</td>
-                    <td>Durée</td>
-                    <td>Type</td>
-                    <td>Étudiant</td>
-                    <td>Formation</td>
-                    <td>Notes</td>
-                    {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
-                    <td>Action</td>
-                    {% endif %}
-                </tr>
-            </tfoot>
-        </table>
-    </div>
-
-    <script>
-        document.addEventListener('DOMContentLoaded', function () {
-            let table = new DataTable('#table-stages-apprentissages',
-            {
-                "autoWidth": false,
-                "responsive": {
-                    "details": true
-                },
-                "pageLength": 10,
-                "language": {
-                    "emptyTable": "Aucune donnée disponible dans le tableau",
-                    "info": "Affichage de _START_ à _END_ sur _TOTAL_ entrées",
-                    "infoEmpty": "Affichage de 0 à 0 sur 0 entrées",
-                    "infoFiltered": "(filtrées depuis un total de _MAX_ entrées)",
-                    "lengthMenu": "Afficher _MENU_ entrées",
-                    "loadingRecords": "Chargement...",
-                    "processing":     "Traitement...",
-                    "search": "Rechercher:",
-                    "zeroRecords": "Aucune entrée correspondante trouvée",
-                    "paginate": {
-                        "next":       "Suivante",
-                        "previous":   "Précédente"
-                    }
-                }
-            });
-        });
-    </script>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/fiche_entreprise.j2 b/app/templates/entreprises/fiche_entreprise.j2
new file mode 100644
index 0000000000000000000000000000000000000000..1970db6aca2c978c1a8f4e9406f907d072d34e36
--- /dev/null
+++ b/app/templates/entreprises/fiche_entreprise.j2
@@ -0,0 +1,253 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+
+{% block styles %}
+{{super()}}
+<script src="/ScoDoc/static/jQuery/jquery-1.12.4.min.js"></script>
+<link rel="stylesheet" type="text/css" href="/ScoDoc/static/DataTables/datatables.min.css">
+<script type="text/javascript" charset="utf8" src="/ScoDoc/static/DataTables/datatables.min.js"></script>
+{% endblock %}
+
+{% block app_content %}
+<div class="container">
+    <ul class="breadcrumbs">
+        <li class="breadcrumbs_item">
+            <a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
+        </li>
+        <li class="breadcrumbs_item">
+            <a href="" class="breadcrumbs_link breadcrumbs_link-active">Fiche entreprise</a>
+        </li>
+    </ul>
+</div>
+
+{% if logs %}
+<div class="container">
+    <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>
+            <span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span>
+            <span>{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet_by_username }}</span>
+        </li>
+        {% endfor %}
+    </ul>
+</div>
+{% endif %}
+
+<div class="container fiche-entreprise">
+    <h2>Fiche entreprise - {{ entreprise.nom }} ({{ entreprise.siret }})</h2>
+
+    {% if not entreprise.active %}
+    <div class="info-active">
+        La fiche entreprise est désactivée<br>
+        {% if entreprise.notes_active != "" %}
+        Notes : {{ entreprise.notes_active }}
+        {% endif %}
+    </div>
+    {% endif %}
+
+    <div class="entreprise">
+        <div>
+            SIRET {% if entreprise.siret_provisoire %}provisoire{% endif %} : {{ entreprise.siret }}<br>
+            Nom : {{ entreprise.nom }}<br>
+            Adresse : {{ entreprise.adresse }}<br>
+            Code postal : {{ entreprise.codepostal }}<br>
+            Ville : {{ entreprise.ville }}<br>
+            Pays : {{ entreprise.pays }}<br>
+            {% if entreprise.association %}
+            Association
+            {% endif %}
+        </div>
+
+        {% 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', entreprise_id=entreprise.id) }}">Ajouter taxe
+                apprentissage</a>
+            <div class="taxe-apprentissage">
+                <ul id="liste-taxes-apprentissages">
+                    {% if not taxes|check_taxe_now %}
+                    <li>année actuelle : non versée</li>
+                    {% endif %}
+                    {% for taxe in taxes %}
+                    <li>
+                        <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>
+            </div>
+        </div>
+        {% endif %}
+    </div>
+
+    <div>
+        {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
+        <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', entreprise_id=entreprise.id) }}">Désactiver</a>
+        {% else %}
+        <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', 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', 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>
+
+
+    <div class="sites-et-offres">
+        {% if entreprise.sites %}
+        <div>
+            <h3>Sites</h3>
+            {% for site in entreprise.sites %}
+            <div class="site">
+                Nom : {{ site.nom }}<br>
+                Adresse : {{ site.adresse }}<br>
+                Code postal : {{ site.codepostal }}<br>
+                Ville : {{ site.ville }}<br>
+                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', 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) %}
+                {% for correspondant in site.correspondants %}
+                {% include 'entreprises/_correspondant.html' %}
+                {% endfor %}
+                {% endif %}
+            </div>
+            {% endfor %}
+        </div>
+        {% endif %}
+
+        {% if offres %}
+        <div>
+            <h3>Offres - <a href="{{ url_for('entreprises.offres_expirees', entreprise_id=entreprise.id) }}">Voir les
+                    offres expirées</a></h3>
+            {% for offre, files, offre_depts, correspondant in offres %}
+            {% include 'entreprises/_offre.html' %}
+            {% endfor %}
+        </div>
+        {% endif %}
+    </div>
+</div>
+
+<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', entreprise_id=entreprise.id) }}"
+        style="margin-bottom:10px;">Ajouter stage ou apprentissage</a>
+    {% endif %}
+    <table id="table-stages-apprentissages">
+        <thead>
+            <tr>
+                <td data-priority="3">Date début</td>
+                <td data-priority="4">Date fin</td>
+                <td data-priority="5">Durée</td>
+                <td data-priority="2">Type</td>
+                <td data-priority="1">Étudiant</td>
+                <td data-priority="6">Formation</td>
+                <td data-priority="7">Notes</td>
+                {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
+                <td data-priority="3">Action</td>
+                {% endif %}
+            </tr>
+        </thead>
+        <tbody>
+            {% for stage_apprentissage, etudiant in stages_apprentissages %}
+            <tr>
+                <td>{{ stage_apprentissage.date_debut.strftime('%d/%m/%Y') }}</td>
+                <td>{{ stage_apprentissage.date_fin.strftime('%d/%m/%Y') }}</td>
+                <td>{{ (stage_apprentissage.date_fin-stage_apprentissage.date_debut).days//7 }} semaines</td>
+                <td>{{ stage_apprentissage.type_offre }}</td>
+                <td><a
+                        href="{{ url_for('scolar.ficheEtud', scodoc_dept=etudiant.dept_id|get_dept_acronym, etudid=stage_apprentissage.etudid) }}">{{
+                        etudiant.nom|format_nom }} {{ etudiant.prenom|format_prenom }}</a></td>
+                <td>{% if stage_apprentissage.formation_text %}{{ stage_apprentissage.formation_text }}{% endif %}</td>
+                <td>{{ stage_apprentissage.notes }}</td>
+                {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
+                <td>
+                    <div class="btn-group">
+                        <a class="btn btn-default dropdown-toggle" data-toggle="dropdown" href="#">Action
+                            <span class="caret"></span>
+                        </a>
+                        <ul class="dropdown-menu pull-left">
+                            <li><a
+                                    href="{{ url_for('entreprises.edit_stage_apprentissage', entreprise_id=entreprise.id, stage_apprentissage_id=stage_apprentissage.id) }}">Modifier</a>
+                            </li>
+                            <li><a href="{{ url_for('entreprises.delete_stage_apprentissage', entreprise_id=entreprise.id, stage_apprentissage_id=stage_apprentissage.id) }}"
+                                    style="color:red">Supprimer</a></li>
+                        </ul>
+                    </div>
+                </td>
+                {% endif %}
+            </tr>
+            {% endfor %}
+        </tbody>
+        <tfoot>
+            <tr>
+                <td>Date début</td>
+                <td>Date fin</td>
+                <td>Durée</td>
+                <td>Type</td>
+                <td>Étudiant</td>
+                <td>Formation</td>
+                <td>Notes</td>
+                {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
+                <td>Action</td>
+                {% endif %}
+            </tr>
+        </tfoot>
+    </table>
+</div>
+
+<script>
+    document.addEventListener('DOMContentLoaded', function () {
+        let table = new DataTable('#table-stages-apprentissages',
+            {
+                "autoWidth": false,
+                "responsive": {
+                    "details": true
+                },
+                "pageLength": 10,
+                "language": {
+                    "emptyTable": "Aucune donnée disponible dans le tableau",
+                    "info": "Affichage de _START_ à _END_ sur _TOTAL_ entrées",
+                    "infoEmpty": "Affichage de 0 à 0 sur 0 entrées",
+                    "infoFiltered": "(filtrées depuis un total de _MAX_ entrées)",
+                    "lengthMenu": "Afficher _MENU_ entrées",
+                    "loadingRecords": "Chargement...",
+                    "processing": "Traitement...",
+                    "search": "Rechercher:",
+                    "zeroRecords": "Aucune entrée correspondante trouvée",
+                    "paginate": {
+                        "next": "Suivante",
+                        "previous": "Précédente"
+                    }
+                }
+            });
+    });
+</script>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/fiche_entreprise_validation.html b/app/templates/entreprises/fiche_entreprise_validation.html
deleted file mode 100644
index f4b6f71822b375f2d7ebb9ff491265bf43ec4822..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/fiche_entreprise_validation.html
+++ /dev/null
@@ -1,84 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-
-{% block app_content %}
-<div class="container">
-    <ul class="breadcrumbs">
-        <li class="breadcrumbs_item">
-            <a href="{{ url_for('entreprises.validation') }}" class="breadcrumbs_link">Entreprises</a>
-        </li>
-        <li class="breadcrumbs_item">
-            <a href="" class="breadcrumbs_link breadcrumbs_link-active">Fiche entreprise</a>
-        </li>
-    </ul>
-</div>
-
-<div class="container">
-    <h2>Fiche entreprise - {{ entreprise.nom }} ({{ entreprise.siret }})</h2>
-
-    <div class="entreprise">
-        <div>
-            SIRET {% if entreprise.siret_provisoire %}provisoire{% endif %} : {{ entreprise.siret }}<br>
-            Nom : {{ entreprise.nom }}<br>
-            Adresse : {{ entreprise.adresse }}<br>
-            Code postal : {{ entreprise.codepostal }}<br>
-            Ville : {{ entreprise.ville }}<br>
-            Pays : {{ entreprise.pays }}<br>
-            {% if entreprise.association %}
-            Association
-            {% endif %}
-        </div>
-    </div>
-
-    <div class="sites-et-offres">
-        {% if entreprise.sites %}
-        <div>
-            <h3>Sites</h3>
-            {% for site in entreprise.sites %}
-            <div class="site">
-                Nom : {{ site.nom }}<br>
-                Adresse : {{ site.adresse }}<br>
-                Code postal : {{ site.codepostal }}<br>
-                Ville : {{ site.ville }}<br>
-                Pays : {{ site.pays }}
-                {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesCorrespondants, None) %}
-                    {% for correspondant in site.correspondants %}
-                        <div class="correspondant">
-                            <div>
-                                Civilité : {{ correspondant.civilite|get_civilité }}<br>
-                                Nom : {{ correspondant.nom }}<br>
-                                Prénom : {{ correspondant.prenom }}<br>
-                                {% if correspondant.telephone %}
-                                Téléphone : {{ correspondant.telephone }}<br>
-                                {% endif %}
-                                {% if correspondant.mail %}
-                                Mail : {{ correspondant.mail }}<br>
-                                {% endif %}
-                                {% if correspondant.poste %}
-                                Poste : {{ correspondant.poste }}<br>
-                                {% endif %}
-                                {% if correspondant.service %}
-                                Service : {{ correspondant.service }}<br>
-                                {% endif %}
-                                {% if correspondant.origine %}
-                                Origine : {{ correspondant.origine }}<br>
-                                {% endif %}
-                                {% if correspondant.notes %}
-                                Notes : {{ correspondant.notes }}<br>
-                                {% endif %}
-                            </div>
-                        </div>
-                    {% endfor %}
-                {% endif %}
-            </div>
-            {% endfor %}
-        </div>
-        {% endif %}
-    </div>
-
-    <div>
-        <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 %}
\ No newline at end of file
diff --git a/app/templates/entreprises/fiche_entreprise_validation.j2 b/app/templates/entreprises/fiche_entreprise_validation.j2
new file mode 100644
index 0000000000000000000000000000000000000000..e67c7bf71a4634eca0118dc3aa6c61b13f84b572
--- /dev/null
+++ b/app/templates/entreprises/fiche_entreprise_validation.j2
@@ -0,0 +1,86 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+
+{% block app_content %}
+<div class="container">
+    <ul class="breadcrumbs">
+        <li class="breadcrumbs_item">
+            <a href="{{ url_for('entreprises.validation') }}" class="breadcrumbs_link">Entreprises</a>
+        </li>
+        <li class="breadcrumbs_item">
+            <a href="" class="breadcrumbs_link breadcrumbs_link-active">Fiche entreprise</a>
+        </li>
+    </ul>
+</div>
+
+<div class="container">
+    <h2>Fiche entreprise - {{ entreprise.nom }} ({{ entreprise.siret }})</h2>
+
+    <div class="entreprise">
+        <div>
+            SIRET {% if entreprise.siret_provisoire %}provisoire{% endif %} : {{ entreprise.siret }}<br>
+            Nom : {{ entreprise.nom }}<br>
+            Adresse : {{ entreprise.adresse }}<br>
+            Code postal : {{ entreprise.codepostal }}<br>
+            Ville : {{ entreprise.ville }}<br>
+            Pays : {{ entreprise.pays }}<br>
+            {% if entreprise.association %}
+            Association
+            {% endif %}
+        </div>
+    </div>
+
+    <div class="sites-et-offres">
+        {% if entreprise.sites %}
+        <div>
+            <h3>Sites</h3>
+            {% for site in entreprise.sites %}
+            <div class="site">
+                Nom : {{ site.nom }}<br>
+                Adresse : {{ site.adresse }}<br>
+                Code postal : {{ site.codepostal }}<br>
+                Ville : {{ site.ville }}<br>
+                Pays : {{ site.pays }}
+                {% if current_user.has_permission(current_user.Permission.RelationsEntreprisesCorrespondants, None) %}
+                {% for correspondant in site.correspondants %}
+                <div class="correspondant">
+                    <div>
+                        Civilité : {{ correspondant.civilite|get_civilité }}<br>
+                        Nom : {{ correspondant.nom }}<br>
+                        Prénom : {{ correspondant.prenom }}<br>
+                        {% if correspondant.telephone %}
+                        Téléphone : {{ correspondant.telephone }}<br>
+                        {% endif %}
+                        {% if correspondant.mail %}
+                        Mail : {{ correspondant.mail }}<br>
+                        {% endif %}
+                        {% if correspondant.poste %}
+                        Poste : {{ correspondant.poste }}<br>
+                        {% endif %}
+                        {% if correspondant.service %}
+                        Service : {{ correspondant.service }}<br>
+                        {% endif %}
+                        {% if correspondant.origine %}
+                        Origine : {{ correspondant.origine }}<br>
+                        {% endif %}
+                        {% if correspondant.notes %}
+                        Notes : {{ correspondant.notes }}<br>
+                        {% endif %}
+                    </div>
+                </div>
+                {% endfor %}
+                {% endif %}
+            </div>
+            {% endfor %}
+        </div>
+        {% endif %}
+    </div>
+
+    <div>
+        <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 %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form.html b/app/templates/entreprises/form.html
deleted file mode 100644
index 067f4a50856db2ee4689a10c2748313545d25f9a..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/form.html
+++ /dev/null
@@ -1,62 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-{% import 'bootstrap/wtf.html' as wtf %}
-
-{% block styles %}
-{{super()}}
-<link type="text/css" rel="stylesheet" href="/ScoDoc/static/css/autosuggest_inquisitor.css" />
-<script src="/ScoDoc/static/libjs/AutoSuggest.js"></script>
-{% endblock %}
-
-{% block app_content %}
-    <h1>{{ title }}</h1>
-    <br>
-    <div class="row">
-        <div class="col-md-4">
-            <p>
-                (*) champs requis
-            </p>
-            {{ wtf.quick_form(form, novalidate=True) }}
-        </div>
-    </div>
-
-    <script>
-        {# pour les formulaires offre #}
-        var champ_depts = document.getElementById("depts")
-        if (champ_depts) {
-            var closest_form_control = champ_depts.closest(".form-control")
-            closest_form_control.classList.remove("form-control")
-        }
-
-        if(document.getElementById("expiration_date") && document.getElementById("expiration_date").value === "")
-            expiration()
-
-        if(document.getElementById("type_offre"))
-            document.getElementById("type_offre").addEventListener("change", expiration);
-
-        function expiration() {
-            var date = new Date()
-            var expiration = document.getElementById("expiration_date")
-            var type_offre = document.getElementById("type_offre").value
-            if (type_offre === "Alternance") {
-                expiration.value = `${date.getFullYear() + 1}-01-01`
-            } else {
-                if(date.getMonth() + 1  < 8)
-                    expiration.value = `${date.getFullYear()}-08-01`
-                else
-                    expiration.value = `${date.getFullYear() + 1}-08-01`
-            }
-        }
-
-        var responsables_options = {
-            script: "/ScoDoc/entreprises/responsables?",
-            varname: "term",
-            json: true,
-            noresults: "Valeur invalide !",
-            minchars: 2,
-            timeout: 60000
-        };
-        
-        var as_utilisateurs = new bsn.AutoSuggest('utilisateur', responsables_options);
-    </script>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form.j2 b/app/templates/entreprises/form.j2
new file mode 100644
index 0000000000000000000000000000000000000000..2f1f735a9032e2a1dd37bf247d280aea1de68892
--- /dev/null
+++ b/app/templates/entreprises/form.j2
@@ -0,0 +1,62 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+{% import 'bootstrap/wtf.html' as wtf %}
+
+{% block styles %}
+{{super()}}
+<link type="text/css" rel="stylesheet" href="/ScoDoc/static/css/autosuggest_inquisitor.css" />
+<script src="/ScoDoc/static/libjs/AutoSuggest.js"></script>
+{% endblock %}
+
+{% block app_content %}
+<h1>{{ title }}</h1>
+<br>
+<div class="row">
+    <div class="col-md-4">
+        <p>
+            (*) champs requis
+        </p>
+        {{ wtf.quick_form(form, novalidate=True) }}
+    </div>
+</div>
+
+<script>
+    {# pour les formulaires offre # }
+    var champ_depts = document.getElementById("depts")
+    if (champ_depts) {
+        var closest_form_control = champ_depts.closest(".form-control")
+        closest_form_control.classList.remove("form-control")
+    }
+
+    if (document.getElementById("expiration_date") && document.getElementById("expiration_date").value === "")
+        expiration()
+
+    if (document.getElementById("type_offre"))
+        document.getElementById("type_offre").addEventListener("change", expiration);
+
+    function expiration() {
+        var date = new Date()
+        var expiration = document.getElementById("expiration_date")
+        var type_offre = document.getElementById("type_offre").value
+        if (type_offre === "Alternance") {
+            expiration.value = `${date.getFullYear() + 1}-01-01`
+        } else {
+            if (date.getMonth() + 1 < 8)
+                expiration.value = `${date.getFullYear()}-08-01`
+            else
+                expiration.value = `${date.getFullYear() + 1}-08-01`
+        }
+    }
+
+    var responsables_options = {
+        script: "/ScoDoc/entreprises/responsables?",
+        varname: "term",
+        json: true,
+        noresults: "Valeur invalide !",
+        minchars: 2,
+        timeout: 60000
+    };
+
+    var as_utilisateurs = new bsn.AutoSuggest('utilisateur', responsables_options);
+</script>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_ajout_correspondants.html b/app/templates/entreprises/form_ajout_correspondants.html
deleted file mode 100644
index 3690a3470d6cada2b2ee8150443ddbf524ba3bf9..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/form_ajout_correspondants.html
+++ /dev/null
@@ -1,91 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-{% import 'bootstrap/wtf.html' as wtf %}
-
-{% block styles %}
-{{super()}}
-{% endblock %}
-
-{% block app_content %}
-    <h1>{{ title }}</h1>
-    <br>
-    <div class="row">
-        <div class="col-md-4">
-            <p>
-                (*) champs requis
-            </p>
-            <form method="POST" action="" novalidate>
-                {{ form.hidden_tag() }}
-                {{ form.correspondants.label }}
-                {% for subfield in form.correspondants %}
-                    {% if subfield.errors %}
-                    <p class="title-form-error">Formulaire {{ subfield.label.text }}</p>
-                    {% endif %}
-                    {% for subsubfield in subfield %}
-                        {% if subsubfield.errors %}
-                            {% for error in subsubfield.errors %}
-                                <p class="help-block form-error">{{ error }}</p>
-                            {% endfor %}
-                        {% endif %}
-                    {% endfor %}
-                {% endfor %}
-                {{ form.correspondants }}
-                <div style="margin-bottom: 10px;">
-                    <button class="btn btn-default" id="add-correspondant-field">Ajouter un correspondant</button>
-                    {{ form.submit(class_="btn btn-default") }}
-                    {{ form.cancel(class_="btn btn-default") }}
-                </div>
-            </form>
-        </div>
-    </div>
-
-    <script>
-        let allCorrepondantsFieldWrapper = document.getElementById('correspondants');
-        let allCorrepondantsForm = allCorrepondantsFieldWrapper.getElementsByTagName('li');
-        for(let i = 0; i < allCorrepondantsForm.length; i++) {
-            let form_id = allCorrepondantsForm[i].getElementsByTagName('table')[0].id
-            if(form_id.split('-')[1] != 0)
-                allCorrepondantsForm[i].insertAdjacentHTML('beforeend', `<div class="btn btn-default btn-remove" onclick="deleteForm('${form_id}')">Retirer ce correspondant</div>`)
-        }
-
-        window.onload = function(e) {
-            let addCorrespondantFieldBtn = document.getElementById('add-correspondant-field');
-            addCorrespondantFieldBtn.addEventListener('click', function(e){
-                e.preventDefault();
-                let allCorrepondantsFieldWrapper = document.getElementById('correspondants');
-                let allCorrepondantsField = allCorrepondantsFieldWrapper.getElementsByTagName('input');
-                let correspondantInputIds = []
-                let csrf_token = document.getElementById('csrf_token').value;
-                for(let i = 0; i < allCorrepondantsField.length; i++) {
-                    correspondantInputIds.push(parseInt(allCorrepondantsField[i].name.split('-')[1]));
-                }
-                let newFieldName = `correspondants-${Math.max(...correspondantInputIds) + 1}`;
-                allCorrepondantsFieldWrapper.insertAdjacentHTML('beforeend',`
-                <li>
-                    <label for="${newFieldName}">Correspondants-${Math.max(...correspondantInputIds) + 1}</label>
-                    <table id="${newFieldName}">
-                        <tr><th><label for="${newFieldName}-civilite">Civilité (*)</label></th><td><select class="form-control" id="${newFieldName}-civilite" name="${newFieldName}-civilite" required><option value="H">Monsieur</option><option value="F">Madame</option></select></td></tr>
-                        <tr><th><label for="${newFieldName}-nom">Nom (*)</label></th><td><input class="form-control" id="${newFieldName}-nom" name="${newFieldName}-nom" required type="text" value=""></td></tr>
-                        <tr><th><label for="${newFieldName}-prenom">Prénom (*)</label></th><td><input class="form-control" id="${newFieldName}-prenom" name="${newFieldName}-prenom" required type="text" value=""></td></tr>
-                        <tr><th><label for="${newFieldName}-telephone">Téléphone (*)</label></th><td><input class="form-control" id="${newFieldName}-telephone" name="${newFieldName}-telephone" type="text" value=""></td></tr>
-                        <tr><th><label for="${newFieldName}-mail">Mail (*)</label></th><td><input class="form-control" id="${newFieldName}-mail" name="${newFieldName}-mail" type="text" value=""></td></tr>
-                        <tr><th><label for="${newFieldName}-poste">Poste</label></th><td><input class="form-control" id="${newFieldName}-poste" name="${newFieldName}-poste" type="text" value=""></td></tr>
-                        <tr><th><label for="${newFieldName}-service">Service</label></th><td><input class="form-control" id="${newFieldName}-service" name="${newFieldName}-service" type="text" value=""></td></tr>
-                        <tr><th><label for="${newFieldName}-origine">Origine</label></th><td><input class="form-control" id="${newFieldName}-origine" name="${newFieldName}-origine" type="text" value=""></td></tr>
-                        <tr><th><label for="${newFieldName}-notes">Notes</label></th><td><input class="form-control" id="${newFieldName}-notes" name="${newFieldName}-notes" type="text" value=""></td></tr>
-                    </table>
-                    <input id="${newFieldName}-csrf_token" name="${newFieldName}-csrf_token" type="hidden" value=${csrf_token}>
-                    <div class="btn btn-default btn-remove" onclick="deleteForm('${newFieldName}')">Retirer ce correspondant</div>
-                </li>
-                `);
-            });
-        }
-
-        function deleteForm(x) {
-            var li_form = document.querySelector(`label[for=${x}]`).closest('li');
-            if (li_form) {
-                li_form.remove()
-            }
-        }
-    </script>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_ajout_correspondants.j2 b/app/templates/entreprises/form_ajout_correspondants.j2
new file mode 100644
index 0000000000000000000000000000000000000000..ada71b15505bc8a9c5ba3ccb5dcdf53f978e2da1
--- /dev/null
+++ b/app/templates/entreprises/form_ajout_correspondants.j2
@@ -0,0 +1,91 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+{% import 'bootstrap/wtf.html' as wtf %}
+
+{% block styles %}
+{{super()}}
+{% endblock %}
+
+{% block app_content %}
+<h1>{{ title }}</h1>
+<br>
+<div class="row">
+    <div class="col-md-4">
+        <p>
+            (*) champs requis
+        </p>
+        <form method="POST" action="" novalidate>
+            {{ form.hidden_tag() }}
+            {{ form.correspondants.label }}
+            {% for subfield in form.correspondants %}
+            {% if subfield.errors %}
+            <p class="title-form-error">Formulaire {{ subfield.label.text }}</p>
+            {% endif %}
+            {% for subsubfield in subfield %}
+            {% if subsubfield.errors %}
+            {% for error in subsubfield.errors %}
+            <p class="help-block form-error">{{ error }}</p>
+            {% endfor %}
+            {% endif %}
+            {% endfor %}
+            {% endfor %}
+            {{ form.correspondants }}
+            <div style="margin-bottom: 10px;">
+                <button class="btn btn-default" id="add-correspondant-field">Ajouter un correspondant</button>
+                {{ form.submit(class_="btn btn-default") }}
+                {{ form.cancel(class_="btn btn-default") }}
+            </div>
+        </form>
+    </div>
+</div>
+
+<script>
+    let allCorrepondantsFieldWrapper = document.getElementById('correspondants');
+    let allCorrepondantsForm = allCorrepondantsFieldWrapper.getElementsByTagName('li');
+    for (let i = 0; i < allCorrepondantsForm.length; i++) {
+        let form_id = allCorrepondantsForm[i].getElementsByTagName('table')[0].id
+        if (form_id.split('-')[1] != 0)
+            allCorrepondantsForm[i].insertAdjacentHTML('beforeend', `<div class="btn btn-default btn-remove" onclick="deleteForm('${form_id}')">Retirer ce correspondant</div>`)
+    }
+
+    window.onload = function (e) {
+        let addCorrespondantFieldBtn = document.getElementById('add-correspondant-field');
+        addCorrespondantFieldBtn.addEventListener('click', function (e) {
+            e.preventDefault();
+            let allCorrepondantsFieldWrapper = document.getElementById('correspondants');
+            let allCorrepondantsField = allCorrepondantsFieldWrapper.getElementsByTagName('input');
+            let correspondantInputIds = []
+            let csrf_token = document.getElementById('csrf_token').value;
+            for (let i = 0; i < allCorrepondantsField.length; i++) {
+                correspondantInputIds.push(parseInt(allCorrepondantsField[i].name.split('-')[1]));
+            }
+            let newFieldName = `correspondants-${Math.max(...correspondantInputIds) + 1}`;
+            allCorrepondantsFieldWrapper.insertAdjacentHTML('beforeend', `
+                <li>
+                    <label for="${newFieldName}">Correspondants-${Math.max(...correspondantInputIds) + 1}</label>
+                    <table id="${newFieldName}">
+                        <tr><th><label for="${newFieldName}-civilite">Civilité (*)</label></th><td><select class="form-control" id="${newFieldName}-civilite" name="${newFieldName}-civilite" required><option value="H">Monsieur</option><option value="F">Madame</option></select></td></tr>
+                        <tr><th><label for="${newFieldName}-nom">Nom (*)</label></th><td><input class="form-control" id="${newFieldName}-nom" name="${newFieldName}-nom" required type="text" value=""></td></tr>
+                        <tr><th><label for="${newFieldName}-prenom">Prénom (*)</label></th><td><input class="form-control" id="${newFieldName}-prenom" name="${newFieldName}-prenom" required type="text" value=""></td></tr>
+                        <tr><th><label for="${newFieldName}-telephone">Téléphone (*)</label></th><td><input class="form-control" id="${newFieldName}-telephone" name="${newFieldName}-telephone" type="text" value=""></td></tr>
+                        <tr><th><label for="${newFieldName}-mail">Mail (*)</label></th><td><input class="form-control" id="${newFieldName}-mail" name="${newFieldName}-mail" type="text" value=""></td></tr>
+                        <tr><th><label for="${newFieldName}-poste">Poste</label></th><td><input class="form-control" id="${newFieldName}-poste" name="${newFieldName}-poste" type="text" value=""></td></tr>
+                        <tr><th><label for="${newFieldName}-service">Service</label></th><td><input class="form-control" id="${newFieldName}-service" name="${newFieldName}-service" type="text" value=""></td></tr>
+                        <tr><th><label for="${newFieldName}-origine">Origine</label></th><td><input class="form-control" id="${newFieldName}-origine" name="${newFieldName}-origine" type="text" value=""></td></tr>
+                        <tr><th><label for="${newFieldName}-notes">Notes</label></th><td><input class="form-control" id="${newFieldName}-notes" name="${newFieldName}-notes" type="text" value=""></td></tr>
+                    </table>
+                    <input id="${newFieldName}-csrf_token" name="${newFieldName}-csrf_token" type="hidden" value=${csrf_token}>
+                    <div class="btn btn-default btn-remove" onclick="deleteForm('${newFieldName}')">Retirer ce correspondant</div>
+                </li>
+                `);
+        });
+    }
+
+    function deleteForm(x) {
+        var li_form = document.querySelector(`label[for=${x}]`).closest('li');
+        if (li_form) {
+            li_form.remove()
+        }
+    }
+</script>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_ajout_entreprise.html b/app/templates/entreprises/form_ajout_entreprise.html
deleted file mode 100644
index 83dff9fd4554e55d115cc22c1b69d5b69895a147..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/form_ajout_entreprise.html
+++ /dev/null
@@ -1,58 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-{% import 'bootstrap/wtf.html' as wtf %}
-
-{% block app_content %}
-    <h1>Ajout entreprise</h1>
-    <br>
-    <div class="row">
-        <div class="col-md-4">
-            <p>
-                Les champs s'auto complète selon le SIRET<br>
-                (*) champs requis
-            </p>
-            {{ wtf.quick_form(form, novalidate=True) }}
-        </div>
-    </div>
-    
-    <script>
-        {# ajout margin-bottom sur le champ pays #}
-        var champ_pays = document.getElementById("pays")
-        if (champ_pays !== null) {
-            var closest_form_group = champ_pays.closest(".form-group")
-            closest_form_group.style.marginBottom = "50px"
-        }
-
-        document.getElementById("siret").addEventListener("keyup", autocomplete);
-
-        function autocomplete() {
-            var input = document.getElementById("siret").value.replaceAll(" ", "")
-            if(input.length >= 14) {
-                fetch("https://entreprise.data.gouv.fr/api/sirene/v1/siret/" + input)
-                .then(response => {
-                    if(response.ok)
-                        return response.json()
-                    else {
-                        emptyForm()
-                    }
-                })
-                .then(response => fillForm(response))
-                .catch(err => err)
-            }
-        }
-
-        function fillForm(response) {
-            document.getElementById("nom_entreprise").value = response.etablissement.l1_normalisee
-            document.getElementById("adresse").value = response.etablissement.l4_normalisee
-            document.getElementById("codepostal").value = response.etablissement.code_postal
-            document.getElementById("ville").value = response.etablissement.libelle_commune  
-        }
-
-        function emptyForm() {
-            document.getElementById("nom_entreprise").value = ''
-            document.getElementById("adresse").value = ''
-            document.getElementById("codepostal").value = ''
-            document.getElementById("ville").value = ''
-        }
-    </script>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_ajout_entreprise.j2 b/app/templates/entreprises/form_ajout_entreprise.j2
new file mode 100644
index 0000000000000000000000000000000000000000..08f20dec72478948a7de1c4281af57e16d77bb26
--- /dev/null
+++ b/app/templates/entreprises/form_ajout_entreprise.j2
@@ -0,0 +1,58 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+{% import 'bootstrap/wtf.html' as wtf %}
+
+{% block app_content %}
+<h1>Ajout entreprise</h1>
+<br>
+<div class="row">
+    <div class="col-md-4">
+        <p>
+            Les champs s'auto complète selon le SIRET<br>
+            (*) champs requis
+        </p>
+        {{ wtf.quick_form(form, novalidate=True) }}
+    </div>
+</div>
+
+<script>
+    {# ajout margin - bottom sur le champ pays # }
+    var champ_pays = document.getElementById("pays")
+    if (champ_pays !== null) {
+        var closest_form_group = champ_pays.closest(".form-group")
+        closest_form_group.style.marginBottom = "50px"
+    }
+
+    document.getElementById("siret").addEventListener("keyup", autocomplete);
+
+    function autocomplete() {
+        var input = document.getElementById("siret").value.replaceAll(" ", "")
+        if (input.length >= 14) {
+            fetch("https://entreprise.data.gouv.fr/api/sirene/v1/siret/" + input)
+                .then(response => {
+                    if (response.ok)
+                        return response.json()
+                    else {
+                        emptyForm()
+                    }
+                })
+                .then(response => fillForm(response))
+                .catch(err => err)
+        }
+    }
+
+    function fillForm(response) {
+        document.getElementById("nom_entreprise").value = response.etablissement.l1_normalisee
+        document.getElementById("adresse").value = response.etablissement.l4_normalisee
+        document.getElementById("codepostal").value = response.etablissement.code_postal
+        document.getElementById("ville").value = response.etablissement.libelle_commune
+    }
+
+    function emptyForm() {
+        document.getElementById("nom_entreprise").value = ''
+        document.getElementById("adresse").value = ''
+        document.getElementById("codepostal").value = ''
+        document.getElementById("ville").value = ''
+    }
+</script>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_ajout_stage_apprentissage.html b/app/templates/entreprises/form_ajout_stage_apprentissage.html
deleted file mode 100644
index 8055850f2b164a0b6164de7b0e90165a5b042f1b..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/form_ajout_stage_apprentissage.html
+++ /dev/null
@@ -1,36 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-{% import 'bootstrap/wtf.html' as wtf %}
-
-{% block styles %}
-{{super()}}
-<link type="text/css" rel="stylesheet" href="/ScoDoc/static/css/autosuggest_inquisitor.css" />
-<script src="/ScoDoc/static/libjs/AutoSuggest.js"></script>
-{% endblock %}
-
-{% block app_content %}
-    <h1>{{ title }}</h1>
-    <br>
-    <div class="row">
-        <div class="col-md-4">
-            <p>
-                (*) champs requis
-            </p>
-            {{ wtf.quick_form(form, novalidate=True) }}
-        </div>
-    </div>
-    
-    <script>
-        window.onload = function(e) {
-            var etudiants_options = {
-                script: "/ScoDoc/entreprises/etudiants?",
-                varname: "term",
-                json: true,
-                noresults: "Valeur invalide !",
-                minchars: 2,
-                timeout: 60000
-            };
-            var as_etudiants = new bsn.AutoSuggest('etudiant', etudiants_options);
-        }
-    </script>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_ajout_stage_apprentissage.j2 b/app/templates/entreprises/form_ajout_stage_apprentissage.j2
new file mode 100644
index 0000000000000000000000000000000000000000..ba25df2afe37c61bbc1e45a7d9bf51fb82fb6132
--- /dev/null
+++ b/app/templates/entreprises/form_ajout_stage_apprentissage.j2
@@ -0,0 +1,36 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+{% import 'bootstrap/wtf.html' as wtf %}
+
+{% block styles %}
+{{super()}}
+<link type="text/css" rel="stylesheet" href="/ScoDoc/static/css/autosuggest_inquisitor.css" />
+<script src="/ScoDoc/static/libjs/AutoSuggest.js"></script>
+{% endblock %}
+
+{% block app_content %}
+<h1>{{ title }}</h1>
+<br>
+<div class="row">
+    <div class="col-md-4">
+        <p>
+            (*) champs requis
+        </p>
+        {{ wtf.quick_form(form, novalidate=True) }}
+    </div>
+</div>
+
+<script>
+    window.onload = function (e) {
+        var etudiants_options = {
+            script: "/ScoDoc/entreprises/etudiants?",
+            varname: "term",
+            json: true,
+            noresults: "Valeur invalide !",
+            minchars: 2,
+            timeout: 60000
+        };
+        var as_etudiants = new bsn.AutoSuggest('etudiant', etudiants_options);
+    }
+</script>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_confirmation.html b/app/templates/entreprises/form_confirmation.html
deleted file mode 100644
index 5de63ba068dba8a1520bd46650b2726b78f47a5b..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/form_confirmation.html
+++ /dev/null
@@ -1,15 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-{% import 'bootstrap/wtf.html' as wtf %}
-
-{% block app_content %} 
-    <h1>{{ title }}</h1>
-    <br>
-    <div>{{ info_message }}</div>
-    <br>
-    <div class="row">
-        <div class="col-md-4">
-            {{ wtf.quick_form(form) }}
-        </div>
-    </div>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_confirmation.j2 b/app/templates/entreprises/form_confirmation.j2
new file mode 100644
index 0000000000000000000000000000000000000000..f29930c2a9ab7dfd55a9197882ea191af67d0013
--- /dev/null
+++ b/app/templates/entreprises/form_confirmation.j2
@@ -0,0 +1,15 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+{% import 'bootstrap/wtf.html' as wtf %}
+
+{% block app_content %}
+<h1>{{ title }}</h1>
+<br>
+<div>{{ info_message }}</div>
+<br>
+<div class="row">
+    <div class="col-md-4">
+        {{ wtf.quick_form(form) }}
+    </div>
+</div>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_envoi_offre.html b/app/templates/entreprises/form_envoi_offre.html
deleted file mode 100644
index 860ce372a4256a924d8fdeedaea261c7a1c598e8..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/form_envoi_offre.html
+++ /dev/null
@@ -1,88 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-{% import 'bootstrap/wtf.html' as wtf %}
-
-{% block styles %}
-{{super()}}
-<link type="text/css" rel="stylesheet" href="/ScoDoc/static/css/autosuggest_inquisitor.css" />
-<script src="/ScoDoc/static/libjs/AutoSuggest.js"></script>
-{% endblock %}
-
-{% block app_content %}
-    <h1>Envoyer une offre</h1>
-    <br>
-    <div class="row">
-        <div class="col-md-4">
-            <p>
-                (*) champs requis
-            </p>
-            <form method="POST" action="" novalidate>
-                {{ form.hidden_tag() }}
-                {{ form.responsables.label }}
-                {% for error in form.responsables.errors %}
-                    <p class="help-block form-error">{{ error }}</p>
-                {% endfor %}
-                {{ form.responsables }}
-                <div style="margin-bottom: 10px;">
-                    <button class="btn btn-default" id="add-responsable-field">Ajouter un responsable</button>
-                    {{ form.submit(class_="btn btn-default") }}
-                    {{ form.cancel(class_="btn btn-default") }}
-                </div>
-            </form>
-        </div>
-    </div>
-    
-    <script>
-        let allResponsablesFieldWrapper = document.getElementById('responsables');
-        let allResponsablesField = allResponsablesFieldWrapper.getElementsByTagName('li');
-        for(let i = 0; i < allResponsablesField.length; i++) {
-            let form_id = allResponsablesField[i].getElementsByTagName('input')[0].id
-            if(form_id.split('-')[1] != 0)
-                allResponsablesField[i].insertAdjacentHTML('beforeend', `<div class="btn btn-default btn-remove" onclick="deleteForm('${form_id}')">Retirer</div>`)
-        }
-
-        window.onload = function(e) {
-            var responsables_options = {
-                script: "/ScoDoc/entreprises/responsables?",
-                varname: "term",
-                json: true,
-                noresults: "Valeur invalide !",
-                minchars: 2,
-                timeout: 60000
-            };
-
-            let allResponsablesFieldWrapper = document.getElementById('responsables');
-            let allResponsablesField = allResponsablesFieldWrapper.getElementsByTagName('input');
-            for(let i = 0; i < allResponsablesField.length; i++) {
-                new bsn.AutoSuggest(allResponsablesField[i].id, responsables_options);
-            }
-
-            let addResponsableFieldBtn = document.getElementById('add-responsable-field');
-            addResponsableFieldBtn.addEventListener('click', function(e){
-                e.preventDefault();
-                let allResponsablesFieldWrapper = document.getElementById('responsables');
-                let allResponsablesField = allResponsablesFieldWrapper.getElementsByTagName('input');
-                let responsableInputIds = []
-                for(let i = 0; i < allResponsablesField.length; i++) {
-                    responsableInputIds.push(parseInt(allResponsablesField[i].name.split('-')[1]));
-                }
-                let newFieldName = `responsables-${Math.max(...responsableInputIds) + 1}`;
-                allResponsablesFieldWrapper.insertAdjacentHTML('beforeend',`
-                <li>
-                    <label for="${newFieldName}">Responsable (*)</label>
-                    <input class="form-control" id="${newFieldName}" name="${newFieldName}" type="text" value="" placeholder="Tapez le nom du responsable de formation">
-                    <div class="btn btn-default btn-remove" onclick="deleteForm('${newFieldName}')">Retirer</div>
-                </li> 
-                `);
-                var as_r = new bsn.AutoSuggest(newFieldName, responsables_options);
-            });
-        }
-
-        function deleteForm(x) {
-            var li_form = document.querySelector(`label[for=${x}]`).closest('li');
-            if (li_form) {
-                li_form.remove()
-            }
-        }
-    </script>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_envoi_offre.j2 b/app/templates/entreprises/form_envoi_offre.j2
new file mode 100644
index 0000000000000000000000000000000000000000..ab1be632f8ea1e8bac4e4c948d80b45d527e9139
--- /dev/null
+++ b/app/templates/entreprises/form_envoi_offre.j2
@@ -0,0 +1,88 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+{% import 'bootstrap/wtf.html' as wtf %}
+
+{% block styles %}
+{{super()}}
+<link type="text/css" rel="stylesheet" href="/ScoDoc/static/css/autosuggest_inquisitor.css" />
+<script src="/ScoDoc/static/libjs/AutoSuggest.js"></script>
+{% endblock %}
+
+{% block app_content %}
+<h1>Envoyer une offre</h1>
+<br>
+<div class="row">
+    <div class="col-md-4">
+        <p>
+            (*) champs requis
+        </p>
+        <form method="POST" action="" novalidate>
+            {{ form.hidden_tag() }}
+            {{ form.responsables.label }}
+            {% for error in form.responsables.errors %}
+            <p class="help-block form-error">{{ error }}</p>
+            {% endfor %}
+            {{ form.responsables }}
+            <div style="margin-bottom: 10px;">
+                <button class="btn btn-default" id="add-responsable-field">Ajouter un responsable</button>
+                {{ form.submit(class_="btn btn-default") }}
+                {{ form.cancel(class_="btn btn-default") }}
+            </div>
+        </form>
+    </div>
+</div>
+
+<script>
+    let allResponsablesFieldWrapper = document.getElementById('responsables');
+    let allResponsablesField = allResponsablesFieldWrapper.getElementsByTagName('li');
+    for (let i = 0; i < allResponsablesField.length; i++) {
+        let form_id = allResponsablesField[i].getElementsByTagName('input')[0].id
+        if (form_id.split('-')[1] != 0)
+            allResponsablesField[i].insertAdjacentHTML('beforeend', `<div class="btn btn-default btn-remove" onclick="deleteForm('${form_id}')">Retirer</div>`)
+    }
+
+    window.onload = function (e) {
+        var responsables_options = {
+            script: "/ScoDoc/entreprises/responsables?",
+            varname: "term",
+            json: true,
+            noresults: "Valeur invalide !",
+            minchars: 2,
+            timeout: 60000
+        };
+
+        let allResponsablesFieldWrapper = document.getElementById('responsables');
+        let allResponsablesField = allResponsablesFieldWrapper.getElementsByTagName('input');
+        for (let i = 0; i < allResponsablesField.length; i++) {
+            new bsn.AutoSuggest(allResponsablesField[i].id, responsables_options);
+        }
+
+        let addResponsableFieldBtn = document.getElementById('add-responsable-field');
+        addResponsableFieldBtn.addEventListener('click', function (e) {
+            e.preventDefault();
+            let allResponsablesFieldWrapper = document.getElementById('responsables');
+            let allResponsablesField = allResponsablesFieldWrapper.getElementsByTagName('input');
+            let responsableInputIds = []
+            for (let i = 0; i < allResponsablesField.length; i++) {
+                responsableInputIds.push(parseInt(allResponsablesField[i].name.split('-')[1]));
+            }
+            let newFieldName = `responsables-${Math.max(...responsableInputIds) + 1}`;
+            allResponsablesFieldWrapper.insertAdjacentHTML('beforeend', `
+                <li>
+                    <label for="${newFieldName}">Responsable (*)</label>
+                    <input class="form-control" id="${newFieldName}" name="${newFieldName}" type="text" value="" placeholder="Tapez le nom du responsable de formation">
+                    <div class="btn btn-default btn-remove" onclick="deleteForm('${newFieldName}')">Retirer</div>
+                </li> 
+                `);
+            var as_r = new bsn.AutoSuggest(newFieldName, responsables_options);
+        });
+    }
+
+    function deleteForm(x) {
+        var li_form = document.querySelector(`label[for=${x}]`).closest('li');
+        if (li_form) {
+            li_form.remove()
+        }
+    }
+</script>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_modification_entreprise.html b/app/templates/entreprises/form_modification_entreprise.html
deleted file mode 100644
index 27483d5be594fefc33c5619efc39d412238615fe..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/form_modification_entreprise.html
+++ /dev/null
@@ -1,68 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-{% import 'bootstrap/wtf.html' as wtf %}
-
-{% block styles %}
-{{super()}}
-{% endblock %}
-
-{% block app_content %}
-    <h1>{{ title }}</h1>
-    <br>
-    <div class="row">
-        <div class="col-md-4">
-            <p>
-                (*) champs requis
-            </p>
-            {{ wtf.quick_form(form, novalidate=True) }}
-        </div>
-
-        <div id="sirene-data" class="col-md-5">
-            <b>Informations de la base SIRENE</b>
-            <div id="nom_entreprise_base"></div>
-            <div id="adresse_base"></div>
-            <div id="codepostal_base"></div>
-            <div id="ville_base"></div>
-            <a class="btn btn-primary" onclick="getData()">Copier</a>
-        </div>
-    </div>
-
-    <script>
-        var value = document.getElementById("siret").value;
-        fetch("https://entreprise.data.gouv.fr/api/sirene/v1/siret/" + value)
-        .then(response => {
-            if(response.ok)
-                return response.json()
-        })
-        .then(response => showSireneData(response))
-        .catch(err => {
-            document.getElementById("sirene-data").style.display = "none"
-            return err
-        })
-
-        function showSireneData(response) {
-            document.getElementById("nom_entreprise_base").innerHTML = "Nom de l'entreprise: " + response.etablissement.l1_normalisee
-            document.getElementById("adresse_base").innerHTML = "Adresse: " + response.etablissement.l4_normalisee
-            document.getElementById("codepostal_base").innerHTML = "Code postal: " + response.etablissement.code_postal
-            document.getElementById("ville_base").innerHTML = "Ville: " + response.etablissement.libelle_commune
-        }
-
-        function getData() {
-            var value = document.getElementById("siret").value;
-            fetch("https://entreprise.data.gouv.fr/api/sirene/v1/siret/" + value)
-            .then(response => {
-                if(response.ok)
-                    return response.json()
-            })
-            .then(response => fillForm(response))
-            .catch(err => err)
-        }
-
-        function fillForm(response) {
-            document.getElementById("nom").value = response.etablissement.l1_normalisee
-            document.getElementById("adresse").value = response.etablissement.l4_normalisee
-            document.getElementById("codepostal").value = response.etablissement.code_postal
-            document.getElementById("ville").value = response.etablissement.libelle_commune
-        }
-    </script>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_modification_entreprise.j2 b/app/templates/entreprises/form_modification_entreprise.j2
new file mode 100644
index 0000000000000000000000000000000000000000..8f325ff861ee7f2aa8ba46f0b28bf25f5abb1903
--- /dev/null
+++ b/app/templates/entreprises/form_modification_entreprise.j2
@@ -0,0 +1,68 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+{% import 'bootstrap/wtf.html' as wtf %}
+
+{% block styles %}
+{{super()}}
+{% endblock %}
+
+{% block app_content %}
+<h1>{{ title }}</h1>
+<br>
+<div class="row">
+    <div class="col-md-4">
+        <p>
+            (*) champs requis
+        </p>
+        {{ wtf.quick_form(form, novalidate=True) }}
+    </div>
+
+    <div id="sirene-data" class="col-md-5">
+        <b>Informations de la base SIRENE</b>
+        <div id="nom_entreprise_base"></div>
+        <div id="adresse_base"></div>
+        <div id="codepostal_base"></div>
+        <div id="ville_base"></div>
+        <a class="btn btn-primary" onclick="getData()">Copier</a>
+    </div>
+</div>
+
+<script>
+    var value = document.getElementById("siret").value;
+    fetch("https://entreprise.data.gouv.fr/api/sirene/v1/siret/" + value)
+        .then(response => {
+            if (response.ok)
+                return response.json()
+        })
+        .then(response => showSireneData(response))
+        .catch(err => {
+            document.getElementById("sirene-data").style.display = "none"
+            return err
+        })
+
+    function showSireneData(response) {
+        document.getElementById("nom_entreprise_base").innerHTML = "Nom de l'entreprise: " + response.etablissement.l1_normalisee
+        document.getElementById("adresse_base").innerHTML = "Adresse: " + response.etablissement.l4_normalisee
+        document.getElementById("codepostal_base").innerHTML = "Code postal: " + response.etablissement.code_postal
+        document.getElementById("ville_base").innerHTML = "Ville: " + response.etablissement.libelle_commune
+    }
+
+    function getData() {
+        var value = document.getElementById("siret").value;
+        fetch("https://entreprise.data.gouv.fr/api/sirene/v1/siret/" + value)
+            .then(response => {
+                if (response.ok)
+                    return response.json()
+            })
+            .then(response => fillForm(response))
+            .catch(err => err)
+    }
+
+    function fillForm(response) {
+        document.getElementById("nom").value = response.etablissement.l1_normalisee
+        document.getElementById("adresse").value = response.etablissement.l4_normalisee
+        document.getElementById("codepostal").value = response.etablissement.code_postal
+        document.getElementById("ville").value = response.etablissement.libelle_commune
+    }
+</script>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_validate_confirmation.html b/app/templates/entreprises/form_validate_confirmation.html
deleted file mode 100644
index 277bf237cdadf1876dd8ecfcfc8a475c17f520ee..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/form_validate_confirmation.html
+++ /dev/null
@@ -1,15 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-{% import 'bootstrap/wtf.html' as wtf %}
-
-{% block app_content %} 
-    <h1>Validation entreprise</h1>
-    <br>
-    <div style="color:green;">Cliquez sur le bouton Valider pour confirmer votre validation</div>
-    <br>
-    <div class="row">
-        <div class="col-md-4">
-            {{ wtf.quick_form(form) }}
-        </div>
-    </div>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/form_validate_confirmation.j2 b/app/templates/entreprises/form_validate_confirmation.j2
new file mode 100644
index 0000000000000000000000000000000000000000..d41f19d665a2683cfaeb62f0bcd6432c42c3d6c1
--- /dev/null
+++ b/app/templates/entreprises/form_validate_confirmation.j2
@@ -0,0 +1,15 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+{% import 'bootstrap/wtf.html' as wtf %}
+
+{% block app_content %}
+<h1>Validation entreprise</h1>
+<br>
+<div style="color:green;">Cliquez sur le bouton Valider pour confirmer votre validation</div>
+<br>
+<div class="row">
+    <div class="col-md-4">
+        {{ wtf.quick_form(form) }}
+    </div>
+</div>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/import_donnees.html b/app/templates/entreprises/import_donnees.html
deleted file mode 100644
index ee883862acd6e5e73eab141dc5713e211627de46..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/import_donnees.html
+++ /dev/null
@@ -1,149 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-{% import 'bootstrap/wtf.html' as wtf %}
-
-{% block styles %}
-{{super()}}
-{% endblock %}
-
-{% block app_content %}
-    <div class="container">
-        <ul class="breadcrumbs">
-            <li class="breadcrumbs_item">
-                <a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
-            </li>
-            <li class="breadcrumbs_item">
-                <a href="" class="breadcrumbs_link breadcrumbs_link-active">Importation données</a>
-            </li>
-        </ul>
-    </div>
-
-    <div class="container">
-        <h1>{{ title }}</h1>
-        <br>
-        <div>
-            <a href="{{ url_for('entreprises.import_donnees_get_file_sample') }}">Obtenir la feuille excel à remplir</a>
-        </div>
-        <br>
-        <div class="row">
-            <div class="col-md-4">
-                <p>
-                    (*) champs requis
-                </p>
-                {{ wtf.quick_form(form, novalidate=True) }}
-            </div>
-        </div>
-
-        {% if not entreprises_import and not sites_import and not correspondants_import %}
-            <div>Feuille Entreprises</div>
-            <table class="table">
-                <thead><tr><td><b>Attribut</b></td><td><b>Type</b></td><td><b>Description</b></td></tr></thead>
-                <tr><td>siret (*)</td><td>text</td><td>siret de l'entreprise</td></tr>
-                <tr><td>nom_entreprise (*)</td><td>text</td><td>nom de l'entreprise</td></tr>
-                <tr><td>adresse (*)</td><td>text</td><td>adresse de l'entreprise</td></tr>
-                <tr><td>ville (*)</td><td>text</td><td>ville de l'entreprise</td></tr>
-                <tr><td>code_postal (*)</td><td>text</td><td>code postal de l'entreprise</td></tr>
-                <tr><td>pays</td><td>text</td><td>pays de l'entreprise</td></tr>
-            </table>
-            <div>Feuille Sites</div>
-            <table class="table">
-                <thead><tr><td><b>Attribut</b></td><td><b>Type</b></td><td><b>Description</b></td></tr></thead>
-                <tr><td>siret_entreprise (*)</td><td>text</td><td>siret de l'entreprise</td></tr>
-                <tr><td>id_site (*)</td><td>text</td><td>id du site (ne rien remplir pour créer un site)</td></tr>
-                <tr><td>nom_site (*)</td><td>text</td><td>nom du site</td></tr>
-                <tr><td>adresse (*)</td><td>text</td><td>adresse du site</td></tr>
-                <tr><td>ville (*)</td><td>text</td><td>ville du site</td></tr>
-                <tr><td>code_postal (*)</td><td>text</td><td>code postal du site</td></tr>
-                <tr><td>pays (*)</td><td>text</td><td>pays du site</td></tr>
-                
-            </table>
-            <div>Feuille Correspondants (à utiliser pour les modifications)</div>
-            <table class="table">
-                <thead><tr><td><b>Attribut</b></td><td><b>Type</b></td><td><b>Description</b></td></tr></thead>
-                <tr><td>civilite (*)</td><td>text</td><td>civilite du correspondant (H ou F)</td></tr>
-                <tr><td>nom (*)</td><td>text</td><td>nom du correspondant</td></tr>
-                <tr><td>prenom (*)</td><td>text</td><td>prenom du correspondant</td></tr>
-                <tr><td>telephone (*)</td><td>text</td><td>telephone du correspondant</td></tr>
-                <tr><td>mail (*)</td><td>text</td><td>mail du correspondant</td></tr>
-                <tr><td>poste</td><td>text</td><td>poste du correspondant</td></tr>
-                <tr><td>service</td><td>text</td><td>service dans lequel travaille le correspondant</td></tr>
-                <tr><td>origine</td><td>text</td><td>origine du correspondant</td></tr>
-                <tr><td>notes</td><td>text</td><td>notes sur le correspondant</td></tr>
-                <tr><td>nom_site</td><td>text</td><td>nom du site lié au correspondant</td></tr>
-            </table>
-        {% endif %}
-
-        {% if entreprises_import %}
-            <br><div>Importation de {{ entreprises_import|length }} entreprise(s)</div>
-            {% for entreprise in entreprises_import %}
-                <div class="entreprise">
-                    <div>
-                        SIRET : {{ entreprise.siret }}<br>
-                        Nom : {{ entreprise.nom }}<br>
-                        Adresse : {{ entreprise.adresse }}<br>
-                        Code postal : {{ entreprise.codepostal }}<br>
-                        Ville : {{ entreprise.ville }}<br>
-                        Pays : {{ entreprise.pays }}<br>
-                        <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">
-                            Nom : {{ site.nom }}<br>
-                            Adresse : {{ site.adresse }}<br>
-                            Code postal : {{ site.codepostal }}<br>
-                            Ville : {{ site.ville }}<br>
-                            Pays : {{ site.pays }}
-                        </div>
-                    {% endfor %}
-                </div>
-            {% endfor %}
-        {% endif %}
-
-        {% if sites_import %}
-            <br><div>Importation de {{ sites_import|length }} site(s)</div>
-            {% for site in sites_import %}
-                <div class="site">
-                    Nom : {{ site.nom }}<br>
-                    Adresse : {{ site.adresse }}<br>
-                    Code postal : {{ site.codepostal }}<br>
-                    Ville : {{ site.ville }}<br>
-                    Pays : {{ site.pays }}<br>
-                    <a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=site.entreprise_id) }}" target="_blank">Fiche entreprise</a>
-                </div>
-            {% endfor %}
-        {% endif %}
-
-        {% if correspondants_import %}
-            <br><div>Importation de {{ correspondants_import|length }} correspondant(s)</div>
-            {% for correspondant in correspondants_import %}
-                <div class="correspondant">
-                    <div>
-                        Civilité : {{ correspondant.civilite|get_civilité }}<br>
-                        Nom : {{ correspondant.nom }}<br>
-                        Prénom : {{ correspondant.prenom }}<br>
-                        {% if correspondant.telephone %}
-                        Téléphone : {{ correspondant.telephone }}<br>
-                        {% endif %}
-                        {% if correspondant.mail %}
-                        Mail : {{ correspondant.mail }}<br>
-                        {% endif %}
-                        {% if correspondant.poste %}
-                        Poste : {{ correspondant.poste }}<br>
-                        {% endif %}
-                        {% if correspondant.service %}
-                        Service : {{ correspondant.service }}<br>
-                        {% endif %}
-                        {% if correspondant.origine %}
-                        Origine : {{ correspondant.origine }}<br>
-                        {% endif %}
-                        {% if correspondant.notes %}
-                        Notes : {{ correspondant.notes }}<br>
-                        {% endif %}
-                        <a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=correspondant.site.entreprise.id) }}" target="_blank">Fiche entreprise</a>
-                    </div>
-                </div>
-            {% endfor %}
-        {% endif %}
-    </div>
-    
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/import_donnees.j2 b/app/templates/entreprises/import_donnees.j2
new file mode 100644
index 0000000000000000000000000000000000000000..8293e469fcaf12f0c8139d9dfc54bb6daaced58e
--- /dev/null
+++ b/app/templates/entreprises/import_donnees.j2
@@ -0,0 +1,265 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+{% import 'bootstrap/wtf.html' as wtf %}
+
+{% block styles %}
+{{super()}}
+{% endblock %}
+
+{% block app_content %}
+<div class="container">
+    <ul class="breadcrumbs">
+        <li class="breadcrumbs_item">
+            <a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
+        </li>
+        <li class="breadcrumbs_item">
+            <a href="" class="breadcrumbs_link breadcrumbs_link-active">Importation données</a>
+        </li>
+    </ul>
+</div>
+
+<div class="container">
+    <h1>{{ title }}</h1>
+    <br>
+    <div>
+        <a href="{{ url_for('entreprises.import_donnees_get_file_sample') }}">Obtenir la feuille excel à remplir</a>
+    </div>
+    <br>
+    <div class="row">
+        <div class="col-md-4">
+            <p>
+                (*) champs requis
+            </p>
+            {{ wtf.quick_form(form, novalidate=True) }}
+        </div>
+    </div>
+
+    {% if not entreprises_import and not sites_import and not correspondants_import %}
+    <div>Feuille Entreprises</div>
+    <table class="table">
+        <thead>
+            <tr>
+                <td><b>Attribut</b></td>
+                <td><b>Type</b></td>
+                <td><b>Description</b></td>
+            </tr>
+        </thead>
+        <tr>
+            <td>siret (*)</td>
+            <td>text</td>
+            <td>siret de l'entreprise</td>
+        </tr>
+        <tr>
+            <td>nom_entreprise (*)</td>
+            <td>text</td>
+            <td>nom de l'entreprise</td>
+        </tr>
+        <tr>
+            <td>adresse (*)</td>
+            <td>text</td>
+            <td>adresse de l'entreprise</td>
+        </tr>
+        <tr>
+            <td>ville (*)</td>
+            <td>text</td>
+            <td>ville de l'entreprise</td>
+        </tr>
+        <tr>
+            <td>code_postal (*)</td>
+            <td>text</td>
+            <td>code postal de l'entreprise</td>
+        </tr>
+        <tr>
+            <td>pays</td>
+            <td>text</td>
+            <td>pays de l'entreprise</td>
+        </tr>
+    </table>
+    <div>Feuille Sites</div>
+    <table class="table">
+        <thead>
+            <tr>
+                <td><b>Attribut</b></td>
+                <td><b>Type</b></td>
+                <td><b>Description</b></td>
+            </tr>
+        </thead>
+        <tr>
+            <td>siret_entreprise (*)</td>
+            <td>text</td>
+            <td>siret de l'entreprise</td>
+        </tr>
+        <tr>
+            <td>id_site (*)</td>
+            <td>text</td>
+            <td>id du site (ne rien remplir pour créer un site)</td>
+        </tr>
+        <tr>
+            <td>nom_site (*)</td>
+            <td>text</td>
+            <td>nom du site</td>
+        </tr>
+        <tr>
+            <td>adresse (*)</td>
+            <td>text</td>
+            <td>adresse du site</td>
+        </tr>
+        <tr>
+            <td>ville (*)</td>
+            <td>text</td>
+            <td>ville du site</td>
+        </tr>
+        <tr>
+            <td>code_postal (*)</td>
+            <td>text</td>
+            <td>code postal du site</td>
+        </tr>
+        <tr>
+            <td>pays (*)</td>
+            <td>text</td>
+            <td>pays du site</td>
+        </tr>
+
+    </table>
+    <div>Feuille Correspondants (à utiliser pour les modifications)</div>
+    <table class="table">
+        <thead>
+            <tr>
+                <td><b>Attribut</b></td>
+                <td><b>Type</b></td>
+                <td><b>Description</b></td>
+            </tr>
+        </thead>
+        <tr>
+            <td>civilite (*)</td>
+            <td>text</td>
+            <td>civilite du correspondant (H ou F)</td>
+        </tr>
+        <tr>
+            <td>nom (*)</td>
+            <td>text</td>
+            <td>nom du correspondant</td>
+        </tr>
+        <tr>
+            <td>prenom (*)</td>
+            <td>text</td>
+            <td>prenom du correspondant</td>
+        </tr>
+        <tr>
+            <td>telephone (*)</td>
+            <td>text</td>
+            <td>telephone du correspondant</td>
+        </tr>
+        <tr>
+            <td>mail (*)</td>
+            <td>text</td>
+            <td>mail du correspondant</td>
+        </tr>
+        <tr>
+            <td>poste</td>
+            <td>text</td>
+            <td>poste du correspondant</td>
+        </tr>
+        <tr>
+            <td>service</td>
+            <td>text</td>
+            <td>service dans lequel travaille le correspondant</td>
+        </tr>
+        <tr>
+            <td>origine</td>
+            <td>text</td>
+            <td>origine du correspondant</td>
+        </tr>
+        <tr>
+            <td>notes</td>
+            <td>text</td>
+            <td>notes sur le correspondant</td>
+        </tr>
+        <tr>
+            <td>nom_site</td>
+            <td>text</td>
+            <td>nom du site lié au correspondant</td>
+        </tr>
+    </table>
+    {% endif %}
+
+    {% if entreprises_import %}
+    <br>
+    <div>Importation de {{ entreprises_import|length }} entreprise(s)</div>
+    {% for entreprise in entreprises_import %}
+    <div class="entreprise">
+        <div>
+            SIRET : {{ entreprise.siret }}<br>
+            Nom : {{ entreprise.nom }}<br>
+            Adresse : {{ entreprise.adresse }}<br>
+            Code postal : {{ entreprise.codepostal }}<br>
+            Ville : {{ entreprise.ville }}<br>
+            Pays : {{ entreprise.pays }}<br>
+            <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">
+            Nom : {{ site.nom }}<br>
+            Adresse : {{ site.adresse }}<br>
+            Code postal : {{ site.codepostal }}<br>
+            Ville : {{ site.ville }}<br>
+            Pays : {{ site.pays }}
+        </div>
+        {% endfor %}
+    </div>
+    {% endfor %}
+    {% endif %}
+
+    {% if sites_import %}
+    <br>
+    <div>Importation de {{ sites_import|length }} site(s)</div>
+    {% for site in sites_import %}
+    <div class="site">
+        Nom : {{ site.nom }}<br>
+        Adresse : {{ site.adresse }}<br>
+        Code postal : {{ site.codepostal }}<br>
+        Ville : {{ site.ville }}<br>
+        Pays : {{ site.pays }}<br>
+        <a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=site.entreprise_id) }}" target="_blank">Fiche
+            entreprise</a>
+    </div>
+    {% endfor %}
+    {% endif %}
+
+    {% if correspondants_import %}
+    <br>
+    <div>Importation de {{ correspondants_import|length }} correspondant(s)</div>
+    {% for correspondant in correspondants_import %}
+    <div class="correspondant">
+        <div>
+            Civilité : {{ correspondant.civilite|get_civilité }}<br>
+            Nom : {{ correspondant.nom }}<br>
+            Prénom : {{ correspondant.prenom }}<br>
+            {% if correspondant.telephone %}
+            Téléphone : {{ correspondant.telephone }}<br>
+            {% endif %}
+            {% if correspondant.mail %}
+            Mail : {{ correspondant.mail }}<br>
+            {% endif %}
+            {% if correspondant.poste %}
+            Poste : {{ correspondant.poste }}<br>
+            {% endif %}
+            {% if correspondant.service %}
+            Service : {{ correspondant.service }}<br>
+            {% endif %}
+            {% if correspondant.origine %}
+            Origine : {{ correspondant.origine }}<br>
+            {% endif %}
+            {% if correspondant.notes %}
+            Notes : {{ correspondant.notes }}<br>
+            {% endif %}
+            <a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=correspondant.site.entreprise.id) }}"
+                target="_blank">Fiche entreprise</a>
+        </div>
+    </div>
+    {% endfor %}
+    {% endif %}
+</div>
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/logs.html b/app/templates/entreprises/logs.html
deleted file mode 100644
index 2072c4a8426b131b23a6b2e16145aa75b2c51b6c..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/logs.html
+++ /dev/null
@@ -1,54 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-
-{% block app_content %}
-    <div class="container">
-        <ul class="breadcrumbs">
-            <li class="breadcrumbs_item">
-                <a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
-            </li>
-            <li class="breadcrumbs_item">
-                <a href="" class="breadcrumbs_link breadcrumbs_link-active">Dernières opérations</a>
-            </li>
-        </ul>
-    </div>
-
-    <div class="container">
-        <h3>Dernières opérations</h3>
-        {% if logs.items %}
-            <ul>
-                {% for log in logs.items %}
-                    <li><span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span><span>{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet_by_username }}</span></li>
-                {% endfor %}
-            </ul>
-
-            <div class="text-center">
-                <a href="{{ url_for('entreprises.logs', page=logs.prev_num) }}" class="btn btn-default {% if logs.page == 1 %}disabled{% endif %}">
-                    &laquo;
-                </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', page=page_num) }}" class="btn btn-inverse">{{ page_num }}</a>
-                        {% else %}
-                        <a href="{{ url_for('entreprises.logs', page=page_num) }}" class="btn btn-default">{{ page_num }}</a>
-                        {% endif %}
-                {% else %}
-                    ...
-                {% endif %}
-                {% endfor %}
-                <a href="{{ url_for('entreprises.logs', page=logs.next_num) }}" class="btn btn-default {% if logs.page == logs.pages %}disabled{% endif %}">
-                    &raquo;
-                </a>
-            </div>
-
-            <p class="text-center">
-                Page {{ logs.page }} sur {{ logs.pages }}
-            </p>
-        {% else %}
-            <div>Aucune opération</div>
-        {% endif %}
-    </div>
-    
-    
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/logs.j2 b/app/templates/entreprises/logs.j2
new file mode 100644
index 0000000000000000000000000000000000000000..a704b7c5b1fe1d1e18f38ffb83ce08f7bd7a2f67
--- /dev/null
+++ b/app/templates/entreprises/logs.j2
@@ -0,0 +1,57 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+
+{% block app_content %}
+<div class="container">
+    <ul class="breadcrumbs">
+        <li class="breadcrumbs_item">
+            <a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
+        </li>
+        <li class="breadcrumbs_item">
+            <a href="" class="breadcrumbs_link breadcrumbs_link-active">Dernières opérations</a>
+        </li>
+    </ul>
+</div>
+
+<div class="container">
+    <h3>Dernières opérations</h3>
+    {% if logs.items %}
+    <ul>
+        {% for log in logs.items %}
+        <li><span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span><span>{{ log.text|safe }} par
+                {{ log.authenticated_user|get_nomcomplet_by_username }}</span></li>
+        {% endfor %}
+    </ul>
+
+    <div class="text-center">
+        <a href="{{ url_for('entreprises.logs', page=logs.prev_num) }}"
+            class="btn btn-default {% if logs.page == 1 %}disabled{% endif %}">
+            &laquo;
+        </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', page=page_num) }}" class="btn btn-inverse">{{ page_num }}</a>
+        {% else %}
+        <a href="{{ url_for('entreprises.logs', page=page_num) }}" class="btn btn-default">{{ page_num }}</a>
+        {% endif %}
+        {% else %}
+        ...
+        {% endif %}
+        {% endfor %}
+        <a href="{{ url_for('entreprises.logs', page=logs.next_num) }}"
+            class="btn btn-default {% if logs.page == logs.pages %}disabled{% endif %}">
+            &raquo;
+        </a>
+    </div>
+
+    <p class="text-center">
+        Page {{ logs.page }} sur {{ logs.pages }}
+    </p>
+    {% else %}
+    <div>Aucune opération</div>
+    {% endif %}
+</div>
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/logs_entreprise.html b/app/templates/entreprises/logs_entreprise.html
deleted file mode 100644
index ea549c45f1bc543f58e141352d4d39dbc6c6b145..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/logs_entreprise.html
+++ /dev/null
@@ -1,56 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-
-{% block app_content %}
-    <div class="container">
-        <ul class="breadcrumbs">
-            <li class="breadcrumbs_item">
-                <a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
-            </li>
-            <li class="breadcrumbs_item">
-                <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>
-            </li>
-        </ul>
-    </div>
-
-    <div class="container">
-        <h3>Dernières opérations - {{ entreprise.nom }}</h3>
-        {% if logs.items %}
-        <ul>
-            {% for log in logs.items %}
-                <li><span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span><span>{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet_by_username }}</span></li>
-            {% endfor %}
-        </ul>
-
-        <div class="text-center">
-            <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 %}">
-                &laquo;
-            </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', entreprise_id=entreprise.id, page=page_num) }}" class="btn btn-inverse">{{ page_num }}</a>
-                    {% else %}
-                    <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', entreprise_id=entreprise.id, page=logs.next_num) }}" class="btn btn-default {% if logs.page == logs.pages %}disabled{% endif %}">
-                &raquo;
-            </a>
-        </div>
-
-        <p class="text-center">
-            Page {{ logs.page }} sur {{ logs.pages }}
-        </p>
-        {% else %}
-            <div>Aucune opération</div>
-        {% endif %}
-    </div>
-    
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/logs_entreprise.j2 b/app/templates/entreprises/logs_entreprise.j2
new file mode 100644
index 0000000000000000000000000000000000000000..1a22a4e1590dc9bb4b6ef950e3a9d563c59e4606
--- /dev/null
+++ b/app/templates/entreprises/logs_entreprise.j2
@@ -0,0 +1,62 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+
+{% block app_content %}
+<div class="container">
+    <ul class="breadcrumbs">
+        <li class="breadcrumbs_item">
+            <a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
+        </li>
+        <li class="breadcrumbs_item">
+            <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>
+        </li>
+    </ul>
+</div>
+
+<div class="container">
+    <h3>Dernières opérations - {{ entreprise.nom }}</h3>
+    {% if logs.items %}
+    <ul>
+        {% for log in logs.items %}
+        <li><span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span><span>{{ log.text|safe }} par
+                {{ log.authenticated_user|get_nomcomplet_by_username }}</span></li>
+        {% endfor %}
+    </ul>
+
+    <div class="text-center">
+        <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 %}">
+            &laquo;
+        </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', entreprise_id=entreprise.id, page=page_num) }}"
+            class="btn btn-inverse">{{ page_num }}</a>
+        {% else %}
+        <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', entreprise_id=entreprise.id, page=logs.next_num) }}"
+            class="btn btn-default {% if logs.page == logs.pages %}disabled{% endif %}">
+            &raquo;
+        </a>
+    </div>
+
+    <p class="text-center">
+        Page {{ logs.page }} sur {{ logs.pages }}
+    </p>
+    {% else %}
+    <div>Aucune opération</div>
+    {% endif %}
+</div>
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/nav.html b/app/templates/entreprises/nav.j2
similarity index 100%
rename from app/templates/entreprises/nav.html
rename to app/templates/entreprises/nav.j2
diff --git a/app/templates/entreprises/offres_expirees.html b/app/templates/entreprises/offres_expirees.html
deleted file mode 100644
index 06142d412a60ad27605d0e3dadfa22f86b7247f8..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/offres_expirees.html
+++ /dev/null
@@ -1,29 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-
-{% block app_content %}
-    <div class="container">
-        <ul class="breadcrumbs">
-            <li class="breadcrumbs_item">
-                <a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
-            </li>
-            <li class="breadcrumbs_item">
-                <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>
-            </li>
-        </ul>
-    </div>
-
-    <div class="container">
-        <h1>Offres expirées - {{ entreprise.nom }}</h1>
-        {% if offres_expirees %}
-            {% for offre, files, offre_depts, correspondant in offres_expirees %}
-                {% include 'entreprises/_offre.html' %}
-            {% endfor %}
-        {% else %}
-            <div>Aucune offre expirées</div>
-        {% endif %}
-    </div>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/offres_expirees.j2 b/app/templates/entreprises/offres_expirees.j2
new file mode 100644
index 0000000000000000000000000000000000000000..26bc42c4b25f01a231da400b6d5177b328b0f4b6
--- /dev/null
+++ b/app/templates/entreprises/offres_expirees.j2
@@ -0,0 +1,30 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+
+{% block app_content %}
+<div class="container">
+    <ul class="breadcrumbs">
+        <li class="breadcrumbs_item">
+            <a href="{{ url_for('entreprises.index') }}" class="breadcrumbs_link">Entreprises</a>
+        </li>
+        <li class="breadcrumbs_item">
+            <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>
+        </li>
+    </ul>
+</div>
+
+<div class="container">
+    <h1>Offres expirées - {{ entreprise.nom }}</h1>
+    {% if offres_expirees %}
+    {% for offre, files, offre_depts, correspondant in offres_expirees %}
+    {% include 'entreprises/_offre.html' %}
+    {% endfor %}
+    {% else %}
+    <div>Aucune offre expirées</div>
+    {% endif %}
+</div>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/offres_recues.html b/app/templates/entreprises/offres_recues.html
deleted file mode 100644
index ce7719b9e91984810f1b964acf8bb6987f836153..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/offres_recues.html
+++ /dev/null
@@ -1,52 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-
-{% block app_content %}
-    {% include 'entreprises/nav.html' %}
-
-    <div class="container">
-        <h1>Offres reçues</h1>
-        {% if offres_recues %}
-            {% for envoi_offre, offre, files, correspondant in offres_recues %}
-            <div class="offre offre-recue">
-                <div style="word-break:break-all; text-align: justify;">
-                    Envoyé le {{ envoi_offre.date_envoi.strftime('%d/%m/%Y') }} à {{ envoi_offre.date_envoi.strftime('%Hh%M') }} par {{ envoi_offre.sender_id|get_nomcomplet_by_id }}<br>
-                    Intitulé : {{ offre.intitule }}<br>
-                    Description : {{ offre.description }}<br>
-                    Type de l'offre : {{ offre.type_offre }}<br>
-                    Missions : {{ offre.missions }}<br>
-                    Durée : {{ offre.duree }}<br>
-
-                    {% if offre.correspondant_id %}
-                    Contacté {{ correspondant.nom }} {{ correspondant.prenom }}
-                        {% if correspondant.mail and correspondant.telephone %} 
-                        ({{ correspondant.mail }} - {{ correspondant.telephone }})
-                        {% else %}
-                        ({{ correspondant.mail }}{{ correspondant.telephone }})
-                        {% endif %}
-                    {% endif %}
-
-                    {% if correspondant.poste %}
-                    - poste : {{ correspondant.poste }}
-                    {% endif %}
-                    {% if correspondant.service %}
-                    - service : {{ correspondant.service }}
-                    {% endif %}
-                    <br>
-
-                    <a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=offre.entreprise_id) }}">lien vers l'entreprise</a><br>
-
-                    {% for filedir, filename in files %}
-                        <a href="{{ url_for('entreprises.get_offre_file', entreprise_id=offre.entreprise_id, offre_id=offre.id, filedir=filedir, filename=filename) }}">{{ filename }}</a><br>
-                    {% endfor %}
-                </div>
-                <div>
-                    <a href="{{ url_for('entreprises.delete_offre_recue', envoi_offre_id=envoi_offre.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 %}
-        {% else %}
-            <div>Aucune offre reçue</div>
-        {% endif %}
-    </div>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/offres_recues.j2 b/app/templates/entreprises/offres_recues.j2
new file mode 100644
index 0000000000000000000000000000000000000000..a8166b66dbd901bb0e4c16e308c17ab9487bac1f
--- /dev/null
+++ b/app/templates/entreprises/offres_recues.j2
@@ -0,0 +1,58 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+
+{% block app_content %}
+{% include 'entreprises/nav.html' %}
+
+<div class="container">
+    <h1>Offres reçues</h1>
+    {% if offres_recues %}
+    {% for envoi_offre, offre, files, correspondant in offres_recues %}
+    <div class="offre offre-recue">
+        <div style="word-break:break-all; text-align: justify;">
+            Envoyé le {{ envoi_offre.date_envoi.strftime('%d/%m/%Y') }} à {{ envoi_offre.date_envoi.strftime('%Hh%M') }}
+            par {{ envoi_offre.sender_id|get_nomcomplet_by_id }}<br>
+            Intitulé : {{ offre.intitule }}<br>
+            Description : {{ offre.description }}<br>
+            Type de l'offre : {{ offre.type_offre }}<br>
+            Missions : {{ offre.missions }}<br>
+            Durée : {{ offre.duree }}<br>
+
+            {% if offre.correspondant_id %}
+            Contacté {{ correspondant.nom }} {{ correspondant.prenom }}
+            {% if correspondant.mail and correspondant.telephone %}
+            ({{ correspondant.mail }} - {{ correspondant.telephone }})
+            {% else %}
+            ({{ correspondant.mail }}{{ correspondant.telephone }})
+            {% endif %}
+            {% endif %}
+
+            {% if correspondant.poste %}
+            - poste : {{ correspondant.poste }}
+            {% endif %}
+            {% if correspondant.service %}
+            - service : {{ correspondant.service }}
+            {% endif %}
+            <br>
+
+            <a href="{{ url_for('entreprises.fiche_entreprise', entreprise_id=offre.entreprise_id) }}">lien vers
+                l'entreprise</a><br>
+
+            {% for filedir, filename in files %}
+            <a
+                href="{{ url_for('entreprises.get_offre_file', entreprise_id=offre.entreprise_id, offre_id=offre.id, filedir=filedir, filename=filename) }}">{{
+                filename }}</a><br>
+            {% endfor %}
+        </div>
+        <div>
+            <a href="{{ url_for('entreprises.delete_offre_recue', envoi_offre_id=envoi_offre.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 %}
+    {% else %}
+    <div>Aucune offre reçue</div>
+    {% endif %}
+</div>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/preferences.html b/app/templates/entreprises/preferences.html
deleted file mode 100644
index 39b45de8bf9ec754b9806f217028fa944eca1771..0000000000000000000000000000000000000000
--- a/app/templates/entreprises/preferences.html
+++ /dev/null
@@ -1,17 +0,0 @@
-{# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
-{% import 'bootstrap/wtf.html' as wtf %}
-
-{% block app_content %}
-    {% include 'entreprises/nav.html' %}
-
-    <div class="container">
-        <h1>Préférences module gestion entreprises</h1>
-        <br>
-        <div class="row">
-            <div class="col-md-4">
-                {{ wtf.quick_form(form, novalidate=True) }}
-            </div>
-        </div>
-    </div>
-{% endblock %}
\ No newline at end of file
diff --git a/app/templates/entreprises/preferences.j2 b/app/templates/entreprises/preferences.j2
new file mode 100644
index 0000000000000000000000000000000000000000..5da57f0d9cb88ca42444e015df51f1758778928e
--- /dev/null
+++ b/app/templates/entreprises/preferences.j2
@@ -0,0 +1,17 @@
+{# -*- mode: jinja-html -*- #}
+{% extends 'base.j2' %}
+{% import 'bootstrap/wtf.html' as wtf %}
+
+{% block app_content %}
+{% include 'entreprises/nav.html' %}
+
+<div class="container">
+    <h1>Préférences module gestion entreprises</h1>
+    <br>
+    <div class="row">
+        <div class="col-md-4">
+            {{ wtf.quick_form(form, novalidate=True) }}
+        </div>
+    </div>
+</div>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/error_500.html b/app/templates/error_500.j2
similarity index 76%
rename from app/templates/error_500.html
rename to app/templates/error_500.j2
index dffc113c4c758491974256b9fb03842ec84002f2..3e47f80872c8466a22845ced5c911e1158fb6b5c 100644
--- a/app/templates/error_500.html
+++ b/app/templates/error_500.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
+{% extends 'base.j2' %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block title %}Une erreur est survenue !{% endblock %}
@@ -7,7 +7,7 @@
 {% block app_content %}
 <h1>Une erreur est survenue !</h1>
 <p>Oups...</tt> <span style="color:red;"><b>ScoDoc version
-    <span style="font-size: 120%;">{{SCOVERSION}}</span></b></span> 
+            <span style="font-size: 120%;">{{SCOVERSION}}</span></b></span>
     a un problème, désolé.</p>
 <p><tt style="font-size:60%">{{date}}</tt></p>
 
@@ -16,23 +16,23 @@
     }}">le canal Discord</a></b>.
 </p>
 {% if 'scodoc_dept' in g %}
-    <p>Pour aider les développeurs à corriger le problème, nous vous 
+<p>Pour aider les développeurs à corriger le problème, nous vous
     suggérons d'envoyer les données anonymisées sur votre configuration:
-    <form method="POST" action="{{ url_for( 'scolar.sco_dump_and_send_db', 
+<form method="POST" action="{{ url_for( 'scolar.sco_dump_and_send_db', 
         scodoc_dept=g.scodoc_dept ) }}">
     <input type="hidden" name="request_url" value="{{request_url}}">
     <input type="hidden" name="traceback_str_base64" value="{{traceback_str_base64}}">
     <input type="submit" value="Envoyer données assistance">
     <div>Message optionnel: </div>
     <textarea name="message" cols="40" rows="4"></textarea>
-    
-    </form>
-    </p>
+
+</form>
+</p>
 {% endif %}
-<p>Vous pouvez aussi envoyer un mail à la liste "notes" 
+<p>Vous pouvez aussi envoyer un mail à la liste "notes"
     <a href="mailto:{{scu.SCO_USERS_LIST}}">{{scu.SCO_USERS_LIST}}</a>
 </p>
-<p>Pour plus d'informations sur les listes de diffusion 
+<p>Pour plus d'informations sur les listes de diffusion
     <a href="{{ scu.SCO_LISTS_URL }}">voir cette page</a>.
 </p>
 
diff --git a/app/templates/error_503.html b/app/templates/error_503.j2
similarity index 100%
rename from app/templates/error_503.html
rename to app/templates/error_503.j2
diff --git a/app/templates/error_access_denied.html b/app/templates/error_access_denied.j2
similarity index 94%
rename from app/templates/error_access_denied.html
rename to app/templates/error_access_denied.j2
index 516361d5c41117d02c1552c857cc1d0ddb5bbeec..92cf9ec8abe1e52c42bcfc3cb5e715f60fd1127f 100644
--- a/app/templates/error_access_denied.html
+++ b/app/templates/error_access_denied.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
+{% extends 'base.j2' %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
diff --git a/app/templates/essais/testcheckbox.html b/app/templates/essais/testcheckbox.j2
similarity index 95%
rename from app/templates/essais/testcheckbox.html
rename to app/templates/essais/testcheckbox.j2
index 5bd3e339e6372b9c29fb7795a603b856bc93f8cc..111df3670f2af36df970af4f778ecf3b0ab5c27c 100644
--- a/app/templates/essais/testcheckbox.html
+++ b/app/templates/essais/testcheckbox.j2
@@ -1,4 +1,4 @@
-{% extends 'base.html' %}
+{% extends 'base.j2' %}
 
 {% block app_content %}
 
diff --git a/app/templates/flashed_messages.html b/app/templates/flashed_messages.j2
similarity index 100%
rename from app/templates/flashed_messages.html
rename to app/templates/flashed_messages.j2
diff --git a/app/templates/formsemestre_header.html b/app/templates/formsemestre_header.j2
similarity index 100%
rename from app/templates/formsemestre_header.html
rename to app/templates/formsemestre_header.j2
diff --git a/app/templates/formsemestre_page_title.html b/app/templates/formsemestre_page_title.j2
similarity index 100%
rename from app/templates/formsemestre_page_title.html
rename to app/templates/formsemestre_page_title.j2
diff --git a/app/templates/main/index.html b/app/templates/main/index.j2
similarity index 98%
rename from app/templates/main/index.html
rename to app/templates/main/index.j2
index 35005c95d237b57d2ee05c971c0a9ad7ccdfdb3e..f02aabbe51bb907faa19e2a5b59b7012e0e5f989 100644
--- a/app/templates/main/index.html
+++ b/app/templates/main/index.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
+{% extends 'base.j2' %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
diff --git a/app/templates/pn/form_descr.j2 b/app/templates/pn/form_descr.j2
index b27340c4bf5573443d55fc3cbe79ab8c623d736b..c610b288c3799df3e7a073ede488a5ec5b58bf3b 100644
--- a/app/templates/pn/form_descr.j2
+++ b/app/templates/pn/form_descr.j2
@@ -21,7 +21,7 @@
         <span class="fd_v">{{parcours.__doc__|e}}</span>
     </div>
     <div class="fd_d"><span class="fd_t">Commentaire:</span>
-        <span class="fd_v explication">{{formation.commentaire|e}}</span>
+        <span class="fd_v explication">{{formation.commentaire or ''}}</span>
     </div>
 
     {% if parcours.UE_IS_MODULE %}
diff --git a/app/templates/pn/ue_infos.j2 b/app/templates/pn/ue_infos.j2
index 4be2b72a61d6cfc2e7cf0f31ae33220ce353ca3a..071b1b8731e0c0f468e7645ca844291d8a1606d7 100644
--- a/app/templates/pn/ue_infos.j2
+++ b/app/templates/pn/ue_infos.j2
@@ -1,75 +1,72 @@
 {# -*- mode: jinja-html -*- #}
 {# Informations sur une UE #}
-{% extends "sco_page.html" %}
+{% extends "sco_page.j2" %}
 
 {% block app_content %}
-
-<h2>Unité d'Enseignement {{ue.acronyme}} {{ue.titre}}</h2>
+<!-- begin ue_infos -->
+<h2>Unité d'Enseignement {{ue.acronyme|e}} {{ue.titre}}</h2>
 <div class="ue_infos">
 
 
-<ul>
-<li>{{ue.acronyme}}
-    <ul>
-        <li>Semestre: {{ue.semestre_idx}}</li>
-        <li>Code: <tt>{{ue.ue_code}}</tt></li>
-        <li>Type: {{ue.type}}</li>
-        <li>Externe: {{ "oui" if ue.is_external else "non" }}</li>
-        <li>Code Apogée: {{ue.code_apogee or "aucun"}}</li>
-    </ul>
-</li>
-<li>Formation:
     <ul>
-        <li>Acronyme: {{ue.formation.acronyme}}</li>
-        <li>Titre: {{ue.formation.titre}}</li>
-        <li>Version: {{ue.formation.version}}</li>
+        <li>{{ue.acronyme}}
+            <ul>
+                <li>Semestre: {{ue.semestre_idx}}</li>
+                <li>Code: <tt>{{ue.ue_code}}</tt></li>
+                <li>Type: {{ue.type}}</li>
+                <li>Externe: {{ "oui" if ue.is_external else "non" }}</li>
+                <li>Code Apogée: {{ue.code_apogee or "aucun"}}</li>
+            </ul>
+        </li>
+        <li>Formation:
+            <ul>
+                <li>Acronyme: {{ue.formation.acronyme}}</li>
+                <li>Titre: {{ue.formation.titre}}</li>
+                <li>Version: {{ue.formation.version}}</li>
+            </ul>
+        </li>
     </ul>
-</li>
-</ul>
-<h3>Utilisation de l'unité {{ue.acronyme}}</h3>
-<ul>
-<li>Modules rattachés: {{ue.modules.count()}}</li>
-<li>Matières rattachées: {{ue.matieres.count()}}</li>
-<li>Semestres avec modules rattachés à cette UE:
-{% for sem in formsemestres %}
-    {% if loop.first %}
+    <h3>Utilisation de l'unité {{ue.acronyme}}</h3>
     <ul>
-    {% endif %}
-    <li><a href="{{url_for('notes.formsemestre_status', 
-        scodoc_dept=g.scodoc_dept, formsemestre_id=sem.id )}}"
-    >{{sem.titre_mois()}}</a></li>
-    {% if loop.last %}
-    </ul>
-    {% endif %}
-{% else %}
-    <em>aucun</em>
-{% endfor %}
-</li>
+        <li>Modules rattachés: {{ue.modules.count()}}</li>
+        <li>Matières rattachées: {{ue.matieres.count()}}</li>
+        <li>Semestres avec modules rattachés à cette UE:
+            {% for sem in formsemestres %}
+            {% if loop.first %}
+            <ul>
+                {% endif %}
+                <li><a href="{{url_for('notes.formsemestre_status', 
+        scodoc_dept=g.scodoc_dept, formsemestre_id=sem.id )}}">{{sem.titre_mois()}}</a></li>
+                {% if loop.last %}
+            </ul>
+            {% endif %}
+            {% else %}
+            <em>aucun</em>
+            {% endfor %}
+        </li>
 
-<li>Étudiants ayant validé cette UE: {{nb_etuds_valid_ue}}
-</li>
+        <li>Étudiants ayant validé cette UE: {{nb_etuds_valid_ue}}
+        </li>
 
-<li>
-    {% if can_safely_be_suppressed %}
-    cette UE pourrait être supprimée
-    {% else %}
-    <em>cette UE ne peut pas être supprimée</em>
-    {% endif %}
-</ul>
+        <li>
+            {% if can_safely_be_suppressed %}
+            cette UE pourrait être supprimée
+            {% else %}
+            <em>cette UE ne peut pas être supprimée</em>
+            {% endif %}
+    </ul>
 
-<ul>
-    {% if ue.is_locked %}
-    <li><em>non modifiable car utilisée dans des semestres verrouillés</em></li>
-    {% else %}
-    <li><a href="{{url_for('notes.ue_edit', scodoc_dept=g.scodoc_dept, ue_id=ue.id)}}"
-        >modifier cette UE</a>
-    </li>
-    {% endif %}
-    <li><a href="{{url_for("notes.ue_table", 
-        scodoc_dept=g.scodoc_dept, formation_id=ue.formation.id)}}"
-        >retour à la page d'édition de la formation</a>
-    </li>
-</ul>
+    <ul>
+        {% if ue.is_locked %}
+        <li><em>non modifiable car utilisée dans des semestres verrouillés</em></li>
+        {% else %}
+        <li><a href="{{url_for('notes.ue_edit', scodoc_dept=g.scodoc_dept, ue_id=ue.id)}}">modifier cette UE</a>
+        </li>
+        {% endif %}
+        <li><a href="{{url_for('notes.ue_table', scodoc_dept=g.scodoc_dept, formation_id=ue.formation.id)}}">retour à
+                la page d'édition de la formation</a>
+        </li>
+    </ul>
 </div>
-
-{% endblock %}
+<!-- end ue_infos -->
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/sco_page.html b/app/templates/sco_page.j2
similarity index 97%
rename from app/templates/sco_page.html
rename to app/templates/sco_page.j2
index e55c5627e0a7ef0d6c6261b403af6f178655f317..bea87fbb9bf94e6db2cc358817da0309cbbce95a 100644
--- a/app/templates/sco_page.html
+++ b/app/templates/sco_page.j2
@@ -20,7 +20,7 @@
 
 {% block content %}
 {% block scodoc_sidebar %}
-{% include "sidebar.html" %}
+{% include "sidebar.j2" %}
 {% endblock %}
 
 <div id="gtrcontent" class="gtrcontent">
@@ -33,7 +33,7 @@
     </div>
     {% if sco.sem %}
     {% block formsemestre_header %}
-    {% include "formsemestre_header.html" %}
+    {% include "formsemestre_header.j2" %}
     {% endblock %}
     {% endif %}
 
diff --git a/app/templates/sco_value_error.html b/app/templates/sco_value_error.j2
similarity index 93%
rename from app/templates/sco_value_error.html
rename to app/templates/sco_value_error.j2
index 524f4d88314d0927fe7d175778595c27dc0053c3..94b6031019e25bc00bd2f757b0b0b864540e6468 100644
--- a/app/templates/sco_value_error.html
+++ b/app/templates/sco_value_error.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
+{% extends 'base.j2' %}
 
 {% block app_content %}
 
diff --git a/app/templates/scodoc.html b/app/templates/scodoc.j2
similarity index 87%
rename from app/templates/scodoc.html
rename to app/templates/scodoc.j2
index ddc33a557976794e4a89897713124b0bba4b25ef..e62102ffd70b08adbd6bad0c95e9c94a76a5cc51 100644
--- a/app/templates/scodoc.html
+++ b/app/templates/scodoc.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
+{% extends 'base.j2' %}
 {% import 'bootstrap/wtf.html' as wtf %}
 
 {% block app_content %}
@@ -23,12 +23,13 @@
             {{ dept.preferences.filter_by( name="DeptFullName" ).first().value or "" }}
         </span>
         {% if current_user.is_administrator() %}
-            <span {% if dept.visible %}class="dept_visible">visible{% else %}class="dept_cache">caché aux utilisateurs{% endif %}
-            </span>
-            <a href="{{ url_for('scodoc.toggle_dept_vis', dept_id=dept.id) }}">
+        <span {% if dept.visible %}class="dept_visible">visible{% else %}class="dept_cache">caché aux utilisateurs{%
+            endif %}
+        </span>
+        <a href="{{ url_for('scodoc.toggle_dept_vis', dept_id=dept.id) }}">
             {% if dept.visible %}cacher{% else %}rendre visible{% endif %}
-            </a>
-            </span>
+        </a>
+        </span>
         {% endif %}
     </li>
     {% endif %}
@@ -58,7 +59,7 @@
 </div> -->
 
 <div style="margin-top: 1cm;">
-    Service <b>réservé aux personnels et enseignants</b>, basé sur 
+    Service <b>réservé aux personnels et enseignants</b>, basé sur
     <a href="{{scu.SCO_WEBSITE}}">le logiciel libre ScoDoc.</a>
 </div>
 
diff --git a/app/templates/scodoc/forms/placement.html b/app/templates/scodoc/forms/placement.j2
similarity index 100%
rename from app/templates/scodoc/forms/placement.html
rename to app/templates/scodoc/forms/placement.j2
diff --git a/app/templates/scodoc/help/evaluations.html b/app/templates/scodoc/help/evaluations.j2
similarity index 100%
rename from app/templates/scodoc/help/evaluations.html
rename to app/templates/scodoc/help/evaluations.j2
diff --git a/app/templates/scodoc/help/modules.html b/app/templates/scodoc/help/modules.j2
similarity index 56%
rename from app/templates/scodoc/help/modules.html
rename to app/templates/scodoc/help/modules.j2
index aabce645e20259a4c54e88665bb5689856d5a21d..2335df1a1eafe4f689a2e8f9852e1a8fdb3fe205 100644
--- a/app/templates/scodoc/help/modules.html
+++ b/app/templates/scodoc/help/modules.j2
@@ -27,26 +27,32 @@
     {%endif%}
 </div>
 
+{% if not create %}
 {% if formsemestres %}
-<div class="ue_warning"> <span><b>Module déjà utilisé dans des semestres, soyez prudents !</b></span>
-<p class="help">
-    Ce module est utilisé dans des semestres déjà mis en place, il faut prêter attention
-    aux conséquences des changements effectués ici: par exemple les coefficients vont modifier
-    les notes moyennes calculées. Les modules déjà utilisés ne peuvent pas être changés de semestre, ni détruits.
-    Si vous souhaitez faire cela, allez d'abord modifier les semestres concernés pour déselectionner le module.
-</p>
-<h4>Semestres utilisant ce module:</h4>
-<ul>
-    {%for formsemestre in formsemestres %}
-    <li><a class="stdlink" href="{{
-        url_for('notes.formsemestre_status', 
-            scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre.id)
-        }}">{{formsemestre.titre_mois()}}</a>
-    </li>
-    {% endfor %}
-</ul>
+<div class="ue_warning">
+    <span><b>Module déjà utilisé dans des semestres, soyez prudents !</b></span>
+    <p class="help">
+        Ce module est utilisé dans des semestres déjà mis en place, il faut
+        prêter attention aux conséquences des changements effectués ici: par
+        exemple les coefficients vont modifier les notes moyennes calculées.
+        Les modules déjà utilisés ne peuvent pas être changés de semestre, ni détruits.
+        Si vous souhaitez faire cela, allez d'abord modifier les semestres
+        concernés pour déselectionner le module.
+    </p>
+    <h4>Semestres utilisant ce module:</h4>
+    <ul>
+        {%for formsemestre in formsemestres %}
+        <li><a class="stdlink" href="{{
+            url_for('notes.formsemestre_status', 
+                scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre.id)
+            }}">{{formsemestre.titre_mois()}}</a>
+        </li>
+        {% endfor %}
+    </ul>
 </div>
 {% else %}
-<div><p class="greenboldtext">(module actuellement non utilisé dans les semestres)</p></div>
+<div>
+    <p class="greenboldtext">(module actuellement non utilisé dans les semestres)</p>
+</div>
 {%endif%}
-
+{%endif%}
\ No newline at end of file
diff --git a/app/templates/scolar/affect_groups.html b/app/templates/scolar/affect_groups.j2
similarity index 100%
rename from app/templates/scolar/affect_groups.html
rename to app/templates/scolar/affect_groups.j2
diff --git a/app/templates/scolar/partition_editor.html b/app/templates/scolar/partition_editor.j2
similarity index 100%
rename from app/templates/scolar/partition_editor.html
rename to app/templates/scolar/partition_editor.j2
diff --git a/app/templates/scolar/photos_import_files.html b/app/templates/scolar/photos_import_files.j2
similarity index 96%
rename from app/templates/scolar/photos_import_files.html
rename to app/templates/scolar/photos_import_files.j2
index 460d7d7e40e8c258b6d7a4ced78b3e470d1c54b0..a3c0c942ba292a36970dad727f49c4fdc1174ad1 100644
--- a/app/templates/scolar/photos_import_files.html
+++ b/app/templates/scolar/photos_import_files.j2
@@ -1,5 +1,5 @@
 {# -*- mode: jinja-html -*- #}
-{% extends 'base.html' %}
+{% extends 'base.j2' %}
 
 {% block app_content %}
 
diff --git a/app/templates/sidebar.html b/app/templates/sidebar.j2
similarity index 100%
rename from app/templates/sidebar.html
rename to app/templates/sidebar.j2
diff --git a/app/templates/sidebar_dept.html b/app/templates/sidebar_dept.j2
similarity index 100%
rename from app/templates/sidebar_dept.html
rename to app/templates/sidebar_dept.j2
diff --git a/app/views/notes.py b/app/views/notes.py
index 7b1eec23e2329647b0e1b46d68d92fe80bca62bc..d5b9bca9fc0609866725f840258ad0448b36f5c8 100644
--- a/app/views/notes.py
+++ b/app/views/notes.py
@@ -303,7 +303,7 @@ def formsemestre_bulletinetud(
         )
     if formsemestre.formation.is_apc() and format == "html":
         return render_template(
-            "but/bulletin.html",
+            "but/bulletin.j2",
             appreciations=models.BulAppreciations.query.filter_by(
                 etudid=etudid, formsemestre_id=formsemestre.id
             ).order_by(models.BulAppreciations.date),
@@ -2560,7 +2560,7 @@ def formsemestre_validation_but(
         )
     H.append(
         render_template(
-            "but/documentation_codes_jury.html",
+            "but/documentation_codes_jury.j2",
             nom_univ=f"""Export {sco_preferences.get_preference("InstituteName")
             or sco_preferences.get_preference("UnivName")
             or "Apogée"}""",
@@ -2603,7 +2603,7 @@ def formsemestre_validation_auto_but(formsemestre_id: int = None):
             )
         )
     return render_template(
-        "but/formsemestre_validation_auto_but.html",
+        "but/formsemestre_validation_auto_but.j2",
         form=form,
         sco=ScoData(formsemestre=formsemestre),
         title="Calcul automatique jury BUT",
@@ -2889,7 +2889,7 @@ def formsemestre_jury_but_erase(
         return redirect(dest_url)
 
     return render_template(
-        "confirm_dialog.html",
+        "confirm_dialog.j2",
         title=f"""Effacer les validations de jury {
             ("de" + etud.nomprenom)
             if etud
diff --git a/app/views/refcomp.py b/app/views/refcomp.py
index 86606de850ff6af2f3bd9d549d369320a12cb327..6e820f4b77dc8148b8c1c88c718e52e6cd6403bc 100644
--- a/app/views/refcomp.py
+++ b/app/views/refcomp.py
@@ -46,7 +46,7 @@ def refcomp_show(refcomp_id):
     """Affichage du référentiel de compétences."""
     ref = ApcReferentielCompetences.query.get_or_404(refcomp_id)
     return render_template(
-        "but/refcomp_show.html",
+        "but/refcomp_show.j2",
         ref=ref,
         title="Référentiel de compétences",
         sco=ScoData(),
@@ -114,7 +114,7 @@ def refcomp_table():
         ],
     )
     return render_template(
-        "but/refcomp_table.html",
+        "but/refcomp_table.j2",
         tab=tab,
         title="Référentiels de compétences",
         sco=ScoData(),
@@ -155,7 +155,7 @@ def refcomp_assoc_formation(formation_id: int):
             )
         )
     return render_template(
-        "but/refcomp_assoc.html",
+        "but/refcomp_assoc.j2",
         form=form,
         referentiel_competence_id=formation.referentiel_competence_id,
         formation=formation,
@@ -270,7 +270,7 @@ def refcomp_load(formation_id=None):
             return redirect(url_for("notes.index_html", scodoc_dept=g.scodoc_dept))
 
     return render_template(
-        "but/refcomp_load.html",
+        "but/refcomp_load.j2",
         form=form,
         formation=formation,
         title="Chargement réf. compétences",
diff --git a/app/views/scodoc.py b/app/views/scodoc.py
index 184fcdd1147bce75718782a108b47d078b8db8a6..83055b5048e6753ad523efe03450858f2f92adef 100644
--- a/app/views/scodoc.py
+++ b/app/views/scodoc.py
@@ -86,7 +86,7 @@ def index():
     "Page d'accueil: liste des départements"
     depts = Departement.query.filter_by().order_by(Departement.acronym).all()
     return render_template(
-        "scodoc.html",
+        "scodoc.j2",
         title=sco_version.SCONAME,
         current_app=flask.current_app,
         depts=depts,
@@ -117,7 +117,7 @@ def create_dept():
         flash(f"Département {form.acronym.data} créé.")
         return redirect(url_for("scodoc.index"))
     return render_template(
-        "create_dept.html",
+        "create_dept.j2",
         form=form,
         title="Création d'un nouveau département",
     )
@@ -151,7 +151,7 @@ def config_codes_decisions():
             getattr(form, code).data = ScoDocSiteConfig.get_code_apo(code)
 
     return render_template(
-        "config_codes_decisions.html",
+        "config_codes_decisions.j2",
         form=form,
         title="Configuration des codes de décisions",
     )
@@ -233,7 +233,7 @@ def search_inscr_etud_by_nip(code_nip, format="json", __ac_name="", __ac_passwor
 def about(scodoc_dept=None):
     "version info"
     return render_template(
-        "about.html",
+        "about.j2",
         version=scu.get_scodoc_version(),
         news=sco_version.SCONEWS,
         logo=scu.icontag("borgne_img"),
diff --git a/app/views/scolar.py b/app/views/scolar.py
index 54e5371697a782c0bd965c1607ed0134f830201d..fb66793fddacb43bcaa6d10db0d20fbedbab49ff 100644
--- a/app/views/scolar.py
+++ b/app/views/scolar.py
@@ -214,7 +214,7 @@ class DeptLogosConfigurationForm(FlaskForm):
 #         return flask.redirect(url_for("scolar.index_html", scodoc_dept=scodoc_dept))
 #
 #     return render_template(
-#         "configuration.html",
+#         "configuration.j2",
 #         title="Configuration Logos du département",
 #         form=form,
 #         scodoc_dept=scodoc_dept,
@@ -274,7 +274,7 @@ class DeptLogosConfigurationForm(FlaskForm):
 #         return flask.redirect(url_for("scolar.index_html", scodoc_dept=scodoc_dept))
 #
 #     return render_template(
-#         "configuration.html",
+#         "configuration.j2",
 #         title="Configuration Logos du département",
 #         form=form,
 #         scodoc_dept=scodoc_dept,
@@ -351,7 +351,7 @@ def install_info():
 def dept_news():
     "Affiche table des dernières opérations"
     return render_template(
-        "dept_news.html", title=f"Opérations {g.scodoc_dept}", sco=ScoData()
+        "dept_news.j2", title=f"Opérations {g.scodoc_dept}", sco=ScoData()
     )
 
 
@@ -916,7 +916,7 @@ def partition_editor(formsemestre_id: int):
         </h2>
         """,
         render_template(
-            "scolar/partition_editor.html",
+            "scolar/partition_editor.j2",
             formsemestre=formsemestre,
             read_only=not sco_groups.sco_permissions_check.can_change_groups(
                 formsemestre_id
diff --git a/app/views/users.py b/app/views/users.py
index 4ad30aebfdc1b27b46c6b1b65f383bb4594d9420..f6d0bcc7119345ae155b907708a68c974ef77e4f 100644
--- a/app/views/users.py
+++ b/app/views/users.py
@@ -679,7 +679,7 @@ def create_user_form(user_name=None, edit=0, all_roles=True):
                         "email/welcome.txt", user=the_user, token=token
                     ),
                     html_body=render_template(
-                        "email/welcome.html", user=the_user, token=token
+                        "email/welcome.j2", user=the_user, token=token
                     ),
                 )
 
@@ -816,7 +816,7 @@ def user_info_page(user_name=None):
         raise ScoValueError("invalid user_name")
 
     return render_template(
-        "auth/user_info_page.html",
+        "auth/user_info_page.j2",
         user=user,
         title=f"Utilisateur {user.user_name}",
         Permission=Permission,
@@ -897,7 +897,7 @@ def form_change_password(user_name=None):
         return redirect(destination)
 
     return render_template(
-        "auth/change_password.html",
+        "auth/change_password.j2",
         form=form,
         title="Modification compte ScoDoc",
         auth_username=current_user.user_name,
@@ -1000,4 +1000,4 @@ def toggle_active_user(user_name: str = None):
         db.session.add(u)
         db.session.commit()
         return redirect(url_for("users.index_html", scodoc_dept=g.scodoc_dept))
-    return render_template("auth/toogle_active_user.html", form=form, u=u)
+    return render_template("auth/toogle_active_user.j2", form=form, u=u)