diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1b2eb5b2f4aea9b519edf8560ce4c172e29c855a..28a8d662d217a086f1a479f2cc8bb8af42b69b60 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,8 @@ CHANGELOG
 - [Référentiels] Ajout du nom de l'élément modifié dans la gestion des droits des référentiels.
 - [AIPD] Ajout du nom de l'élément modifié dans la gestion des droits des modèles d'AIPD.
 - [AIPD] Ajout du modèle XML sur la vidéoprotection mis en oeuvre par les autorités publiques.
+- [AIPD] Ajout d'un bouton pour retourner à la liste et un bouton pour générer un PDF depuis l'étape 5 d'évaluation d'une AIPD.
+- [AIPD] Ajout d'un changement dynamique de l'impact potentiel selon le choix de la vraisemblance et de la gravité dans l'étape 3 d'instruction d'une AIPD.
 ### Changement
 - [Global] Divers renommages et traductions.
 - [Documentation] Mise à jour de la documentation technique.
@@ -26,7 +28,11 @@ CHANGELOG
 - [Sous-traitants] Inversion de la case à cocher de l'envoi de données hors UE en dans l'UE.
 - [Indice de maturité] Modification du bouton de modification pour s'afficher que s'il y a des préconisations dans la synthèse d'un indice de maturité.
 - [Bilan] Modification de l'affichage des données du dernier indice de maturité dans le bilan.
+- [AIPD] Amélioration globale dans le PDF d'une AIPD.
+- [AIPD] Modification de l'image sur la gravité et la vraisemblance dans le PDF d'une AIPD.
 - [AIPD] Modification des dates des avis des acteurs pour ne rien afficher par défaut dans le PDF d'une AIPD.
+### Suppression
+- [AIPD] Suppression du bouton pour enregistrer un brouillon dans l'étape 5 d'évaluation d'une AIPD.
 ### Fix
 - [Global] Fix de certains champs manquants dans les documents PDF et Word générés depuis les différents modules.
 - [Indice de maturité] Fix de l'affichage du graphique dans le bilan et la synthèse d'un indice de maturité.
diff --git a/public/images/NiveauRisque.png b/public/images/NiveauRisque.png
index 1aa50b4a1f05af425671b972f01d77996797aca2..5913d6cb5b3c893ab5dec7bc147729dbc8740921 100644
Binary files a/public/images/NiveauRisque.png and b/public/images/NiveauRisque.png differ
diff --git a/templates/Aipd/Analyse_impact/_form_step_3.html.twig b/templates/Aipd/Analyse_impact/_form_step_3.html.twig
index 89c60a1efd384e9463a84622e12cf43fae7d4e7a..0563aa1d87f08b7b58bac30ed4707cbd8032de06 100644
--- a/templates/Aipd/Analyse_impact/_form_step_3.html.twig
+++ b/templates/Aipd/Analyse_impact/_form_step_3.html.twig
@@ -47,7 +47,7 @@
                     {% endif %}
                 </td>
                 <th scope="row">{{ scenario.vars.value.nom }}</th>
-                <td>
+                <td class="vraisemblance">
                     {% if scenario.vars.value.canVraisemblanceBeModified %}
                         {{ form_widget(scenario.vraisemblance) }}
                     {% else %}
@@ -57,7 +57,7 @@
                         </div>
                     {% endif %}
                 </td>
-                <td>
+                <td class="gravite">
                     {% if scenario.vars.value.canGraviteBeModified %}
                         {{ form_widget(scenario.gravite) }}
                     {% else %}
@@ -66,11 +66,10 @@
                             {{ form_widget(scenario.gravite) }}
                         </div>
                     {% endif %}
+                </td>
                 <td class="impact-potentiel">
                     {% if scenario.vars.value.gravite is not null and scenario.vars.value.gravite != 'vide' and scenario.vars.value.vraisemblance is not null and scenario.vars.value.vraisemblance != 'vide' %}
-                        <span>
-                            {{ getScenarioMenaceImpactPotentielLabel(scenario.vars.value)|raw }}
-                        </span>
+                        {{ getScenarioMenaceImpactPotentielLabel(scenario.vars.value)|raw }}
                     {% endif %}
                 </td>
                 <td>{{ form_widget(scenario.precisions) }}</td>
@@ -78,3 +77,73 @@
         {% endfor %}
     </tbody>
 </table>
+
+{% block javascripts %}
+    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>
+
+    <script>
+        $(document).ready(function() {
+            // Fonction pour récupérer le texte ou la valeur d'un sélecteur d'une cellule
+            function getCellData($cell) {
+                var $select = $cell.find('select');
+                if ($select.length) {
+                    return $select.find('option:selected').text(); // Retourne le texte de l'option sélectionnée
+                } else {
+                    return $cell.text().trim(); // Si c'est du texte, retourner le contenu texte
+                }
+            }
+
+            // Fonction pour calculer le résultat dans la colonne "impact-potentiel"
+            function calculateImpact(vraisemblance, gravite) {
+                // Matrice d'évaluation de l'impact
+                if ((vraisemblance === "Négligeable" && gravite === "Négligeable") ||
+                    (vraisemblance === "Limitée" && gravite === "Négligeable") ||
+                    (vraisemblance === "Négligeable" && gravite === "Limitée") ||
+                    (vraisemblance === "Limitée" && gravite === "Limitée")) {
+                    return '<span class="label label-success" style="min-width: 100%; display: inline-block;">Négligeable</span>';
+                  } else if ((vraisemblance === "Négligeable" && gravite === "Importante") ||
+                             (vraisemblance === "Limitée" && gravite === "Importante") ||
+                             (vraisemblance === "Négligeable" && gravite === "Maximale") ||
+                             (vraisemblance === "Limitée" && gravite === "Maximale")) {
+                    return '<span class="label label-default" style="min-width: 100%; display: inline-block !important;background:#605CA8; color:white;">Important</span>';
+                  } else if ((vraisemblance === "Importante" && gravite === "Importante") ||
+                             (vraisemblance === "Maximale" && gravite === "Importante") ||
+                             (vraisemblance === "Importante" && gravite === "Maximale") ||
+                             (vraisemblance === "Maximale" && gravite === "Maximale")) {
+                    return '<span class="label label-danger" style="min-width: 100%; display: inline-block;">Maximal</span>';
+                } else {
+                    return '<span class="label label-warning" style="min-width: 100%; display: inline-block;">Limité</span>';
+                }
+            }
+
+            // Mettre à jour la cellule dans la colonne "impact-potentiel"
+            function updateImpactPotentiel(index) {
+                var $vraisemblanceCell = $('td.vraisemblance').eq(index);
+                var $graviteCell = $('td.gravite').eq(index);
+
+                var vraisemblanceData = getCellData($vraisemblanceCell);
+                var graviteData = getCellData($graviteCell);
+
+                var impactData = calculateImpact(vraisemblanceData, graviteData);
+
+                var $impactCell = $('td.impact-potentiel').eq(index);
+
+                // Si la cellule "impact-potentiel" existe, met à jour son contenu
+                if ($impactCell.length) {
+                    $impactCell.html(impactData);
+                }
+            }
+
+            // Initialiser les cellules "impact-potentiel" lors du chargement de la page
+            $('td.vraisemblance').each(function(index) {
+                updateImpactPotentiel(index);
+            });
+
+            // Mettre à jour la cellule "impact-potentiel" quand un sélecteur est modifié
+            $('select.vraisemblance-dropdown, select.gravite-dropdown').on('change', function() {
+                var index = $(this).closest('td').parent().index();
+                updateImpactPotentiel(index);
+            });
+        });
+    </script>
+{% endblock %}
diff --git a/templates/Aipd/Analyse_impact/edit.html.twig b/templates/Aipd/Analyse_impact/edit.html.twig
index 13c2c0d550b1af7265a76d053e9ff6562af0be98..f85c6e8cb683350d5d83d733900ef59e459c8212 100644
--- a/templates/Aipd/Analyse_impact/edit.html.twig
+++ b/templates/Aipd/Analyse_impact/edit.html.twig
@@ -101,19 +101,3 @@
 
     {{ form_end(form) }}
 {% endblock %}
-{% block javascripts %}
-    <script>
-        $(document).ready(function() {
-            const $table=$('#step3-table');
-            function hideLabel(ev) {
-                const $t = $(ev.target);
-                const $row = $t.parents('tr')
-                const $label = $row.find('.impact-potentiel > span')
-                $label.hide();
-            }
-            $table.find('.vraisemblance-dropdown').on('change', hideLabel)
-            $table.find('.gravite-dropdown').on('change', hideLabel)
-        })
-
-    </script>
-{% endblock %}
diff --git a/templates/Aipd/Analyse_impact/evaluation.html.twig b/templates/Aipd/Analyse_impact/evaluation.html.twig
index a80d3ae0443e9f37d12b33d0dc0d35b00133a724..1fe046ccccddba8592d5588b77db6b7df15165b4 100644
--- a/templates/Aipd/Analyse_impact/evaluation.html.twig
+++ b/templates/Aipd/Analyse_impact/evaluation.html.twig
@@ -26,6 +26,22 @@
 {% endblock %}
 
 {% block body %}
+    {% if is_granted('ROLE_PREVIEW') %}
+        <div class="row">
+            <div class="col-xs-12">
+                <div class="mb-1">
+                    <a href="{{ path('aipd_analyse_impact_list') }}" class="btn btn-default">
+                        <i aria-hidden="true" class="fa fa-arrow-left"></i>
+                        {{ 'global.action.back_to_list'|trans }}
+                    </a>
+                    <a href="{{ path('aipd_analyse_impact_print', {'id': analyseImpact.id}) }}" class="btn btn-default">
+                        <i aria-hidden="true" class="fa fa-print"></i>
+                        {{ 'global.action.print'|trans }}
+                    </a>
+                </div>
+            </div>
+        </div>
+    {% endif %}
 
     <div class="row">
         {# LEFT #}
@@ -130,7 +146,6 @@
                 <div class="box-body text-center">
                     <a href="{{ path('aipd_analyse_impact_list') }}" class="btn btn-default">{{ 'global.action.back_to_list'|trans }}</a>
                     <a href="{{ path('aipd_analyse_impact_validation', {'id': analyseImpact.id}) }}" class="btn btn-primary">{{ 'aipd.analyse_impact.action.validation'|trans }}</a>
-                    <a href="{{ path('aipd_analyse_impact_list') }}" class="btn btn-info">{{ 'global.action.draft'|trans }}</a>
                 </div>
             </div>
         </div>
@@ -222,6 +237,4 @@
 
     {{ encore_entry_script_tags('js/evaluation') }}
 
-
-
 {% endblock %}
diff --git a/templates/Aipd/Analyse_impact/pdf.html.twig b/templates/Aipd/Analyse_impact/pdf.html.twig
index 6ce45e661c53c7e0877fe4d6b9f48adb38a5dc08..94b482c373acd636553331ce5a3f2568f8013014 100644
--- a/templates/Aipd/Analyse_impact/pdf.html.twig
+++ b/templates/Aipd/Analyse_impact/pdf.html.twig
@@ -1,1798 +1,1808 @@
 <!DOCTYPE html>
 <html lang="fr-FR">
-<head>
-    <title>{% block title %}{% endblock %}</title>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
-
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
-    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css">
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v6.5.2/css/all.css" crossorigin="anonymous" referrerpolicy="no-referrer">
-    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
-    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/admin-lte/2.4.17/css/AdminLTE.min.css">
-    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/admin-lte/2.4.17/css/skins/_all-skins.min.css">
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.9/dist/css/bootstrap-select.min.css">
-
-    <!-- Google Font -->
-    <link rel="stylesheet"
-          href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.bundle.min.js"></script>
-    <style>
-        .content-wrapper {
-            background-color: white !important;
-            z-index: 800;
-        }
-
-        h1 {
-            text-align: center;
-            font-size: 55px;
-        }
-
-        h1, h2, h3, h4 {
-            color: #3674b6;
-        }
-        table {
-            border: 1px solid black;
-        }
-
-        .table-bluecell {
-            background: #3674b6;
-            color: white;
-            width: 45%;
-        }
-        .separator {
-            height: 25px;
-        }
-
-        .annexe-head {
-            color: #3674b6;
-            font-size: 1.2em;
-            margin-top: 20px;
-        }
-        .annexe-prelink {
-            margin-left: 25px;
-        }
-        .annexe-link {
-            color: #3674b6;
-        }
-
-        .table-indicateur-head {
-            background: #808080;
-            color: white;
-            text-align: center;
-        }
-        .table-indicateur-maximale {
-            background: #c00000;
-            color: white;
-            text-align: center;
-        }
-        .table-indicateur-importante {
-            background: #ed7d31;
-            text-align: center;
-        }
-        .table-indicateur-limitee {
-            background: #ffc000;
-            text-align: center;
-        }
-        .table-indicateur-negligeable {
-            background: #6fad47;
-            text-align: center;
-        }
-        .reportGraph {
-            width:900px
-        }
-    </style>
-</head>
-
-<body class="hold-transition skin-blue sidebar-mini">
-<div class="content-wrapper">
-    <section class="content-header">
-        <h1 style="font-size: 55px">Analyse d'Impact relative à la Protection des Données</h1>
-        <div class="separator"></div>
-        <div style="text-align: center; font-size: 2em"> Instruction du dossier</div>
-    </section>
-
-    <div class="content container-fluid">
-
-        <div class="row" style="text-align: center"><h2>{{ object.conformiteTraitement.traitement.name }}</h2></div>
-        <div class="row" style="text-align: center"><h2>{{ object.conformiteTraitement.traitement.collectivity.name }}</h2></div>
-
-        <div class="separator"></div>
-        <div class="separator"></div>
-        <div class="row">
-            <div><strong style="font-size: 1.6em; margin-left:30px;">Responsable du traitement</strong></div>
-            <span style="font-size: 1.2em; margin-left:45px;">{{ object.conformiteTraitement.traitement.collectivity.legalManager.civility|dictionary('user_contact_civility') }} {{ object.conformiteTraitement.traitement.collectivity.legalManager.firstName }} {{ object.conformiteTraitement.traitement.collectivity.legalManager.lastName }}</span>
-        </div>
-        <div class="separator"></div>
-        <div class="row">
-            <div><strong style="font-size: 1.6em; margin-left:30px;">Référent RGPD</strong></div>
-            <span style="font-size: 1.2em; margin-left:45px;">{{ object.conformiteTraitement.traitement.collectivity.referent.civility|dictionary('user_contact_civility') }} {{ object.conformiteTraitement.traitement.collectivity.referent.firstName }} {{ object.conformiteTraitement.traitement.collectivity.referent.lastName }}</span>
-        </div>
-        <div class="separator"></div>
-        <div class="row">
-            <div><strong style="font-size: 1.6em; margin-left:30px;">Délégué à la Protection des Données</strong></div>
-            {% if object.conformiteTraitement.traitement.collectivity.differentDpo %}
-                <span style="font-size: 1.2em; margin-left:45px;">{{ object.conformiteTraitement.traitement.collectivity.dpo.civility|dictionary('user_contact_civility') }} {{ object.conformiteTraitement.traitement.collectivity.dpo.firstName }} {{ object.conformiteTraitement.traitement.collectivity.dpo.lastName }}</span>
-            {% else %}
-                <span style="font-size: 1.2em; margin-left:45px;">{{ default_dpo_civility|dictionary('user_contact_civility') }} {{ default_dpo_firstName }} {{ default_dpo_lastName }}<br/></span>
-                <span style="font-size: 1.2em; margin-left:45px;">{{ default_dpo_address_street }}<br/></span>
-                <span style="font-size: 1.2em; margin-left:45px;">{{ default_dpo_address_zip_code }} {{ default_dpo_address_city}}</span>
-            {% endif %}
-        </div>
-        <div class="separator"></div>
-        <div class="row">
-            <div>
-                <strong style="font-size: 1.6em; margin-left:30px;">Date de validation de l’AIPD : </strong>
-                <strong style="font-size: 1.6em; margin-left:150px;">Signature du Responsable du Traitement</strong>
-            </div>
-            <span style="font-size: 1.2em; margin-left:45px;">{{ (object.conformiteTraitement.analyseImpacts|first).dateValidation|date('d/m/Y') }}</span>
-        </div>
-
-        <div  style="page-break-before: always;"></div>
-        <div class="separator"></div>
-        <h2 style="text-align: center;">Sommaire</h2>
-        <div class="separator"></div>
-        <div class="separator"></div>
-        <ul>
-            <li>1. Préambule
-                <ul>
-                    <li>1.1 Méthode d'une Analyse d'Impact relative à la Protection des Données</li>
-                    <li>1.2 Conformité d’une Analyse d’Impact relative à la Protection des Données</li>
-                </ul>
-            </li>
-            <li>2. Étude du contexte</li>
-            <li>3. Études des principes fondamentaux</li>
-            <li>4. Études des risques liés à la sécurité des données
-                <ul>
-                    <li>4.1 Évaluation des risques sur les droits et les libertés des personnes concernées</li>
-                    <li>4.2 Évaluation de l'impact et matrice de décision</li>
-                    <li>4.3 Mesure(s) de réduction des risques envisagée(s)</li>
-                    <li>4.4 Risques résiduels</li>
-                </ul>
-            </li>
-            <li>5. Validation de l'AIPD
-                <ul>
-                    <li>Avis des personnes consultées</li>
-                </ul>
-            </li>
-            <li>6. Annexes
-                <ul>
-                    <li>6.1 Glossaire</li>
-                    <li>6.2 Références</li>
-                    <li>6.3 Fiche de traitement</li>
-                </ul>
-            </li>
-        </ul>
+    <head>
+        <title>{% block title %}{% endblock %}</title>
+        <meta charset="utf-8">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge">
+        <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
+        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
+        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css">
+        <link rel="stylesheet" href="https://use.fontawesome.com/releases/v6.5.2/css/all.css" crossorigin="anonymous" referrerpolicy="no-referrer">
+        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
+        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/admin-lte/2.4.17/css/AdminLTE.min.css">
+        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/admin-lte/2.4.17/css/skins/_all-skins.min.css">
+        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.9/dist/css/bootstrap-select.min.css">
+        <!-- Google Font -->
+        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.bundle.min.js"></script>
+        <style>
+            h1 {
+                text-align: center;
+                font-size: 55px !important;
+            }
+            h1, h2, h3, h4, .h2 {
+                color: #3674b6;
+            }
+            dt {
+                color: #3674b6;
+                font-size: 1.2em;
+                margin-top: 20px;
+            }
+            .txt-center {
+              text-align: center;
+            }
+            .fs-2 {
+              font-size: 2em;
+            }
+            .fs-3 {
+              font-size: 2.5em;
+            }
+            .table-bluecell {
+                background: #3674b6;
+                color: white;
+                width: 45%;
+            }
+            .separator {
+                height: 25px;
+            }
+            .table-indicateur-head {
+                background: #808080;
+                color: white;
+                text-align: center;
+            }
+            .table-indicateur-maximale {
+                background: #c00000;
+                color: white;
+                text-align: center;
+            }
+            .table-indicateur-importante {
+                background: #ed7d31;
+                text-align: center;
+            }
+            .table-indicateur-limitee {
+                background: #ffc000;
+                text-align: center;
+            }
+            .table-indicateur-negligeable {
+                background: #6fad47;
+                text-align: center;
+            }
+            .reportGraph {
+                width:850px;
+            }
+        </style>
+    </head>
 
-        <div  style="page-break-before: always;">
-            <h2>1. Préambule</h2>
-        </div>
-        <div>Le présent document contient tous les éléments nécessaires pour le Responsable de Traitement (RT), le Référent RGPD (RR) et le Délégué à la Protection des Données (DPD) pour mener à bien une Analyse d'Impact relative à la Protection des Données (le sigle AIPD sera utilisé dans la suite de ce document) conforme aux attentes de la CNIL.</div>
-        <div>Il est possible de retrouver l'ensemble des éléments produits dans ce document dans le logiciel Madis.</div>
-
-        <h3>1.1 Méthode d'une Analyse d'Impact relative à la Protection des Données</h3>
-        <div>La démarche pour réaliser une analyse d'impact comprend quatre étapes :</div>
-        <div style="margin-left:50px;">1- Délimiter et décrire le contexte du(des) traitement(s) considéré(s);</div>
-        <div style="margin-left:50px;">2- Analyser les mesures garantissant le respect des principes fondamentaux : la proportionnalité et la nécessité du traitement, et la protection des droits des personnes concernées;</div>
-        <div style="margin-left:50px;">3- Apprécier les risques sur la vie privée liés à la sécurité des données et vérifier qu’ils sont convenablement traités ;</div>
-        <div style="margin-left:50px;">4- Formaliser la validation de l’AIPD au regard des éléments précédents ou bien décider de réviser les étapes précédentes.</div>
-
-        <div style="text-align: center"><img src="{{ base_dir ~ asset("images/cycleAIPD.jpg") }}" height="300" alt="CycleAIPD"></div>
-
-        <div>Il s'agit d'un <strong>processus d'amélioration continue</strong>. Il requiert donc parfois plusieurs itérations pour parvenir à un dispositif de protection de la vie privée acceptable. Il requiert en outre une surveillance des évolutions dans le temps (du contexte, des mesures, des risques, etc.), par exemple tous les ans, et des mises à jour dès qu'une évolution significative a lieu.</div>
-        <div>La démarche devrait être employée <strong>dès la conception d'un nouveau traitement de données à caractère personnel</strong>. En effet, une application en amont permet de déterminer les mesures nécessaires et suffisantes, et donc d'optimiser les coûts. A contrario, une application tardive, alors que le système est déjà créé et les mesures en place, peut remettre en question les choix effectués.</div>
-
-        <h3>1.2 Conformité d’une Analyse d’Impact relative à la Protection des Données</h3>
-        <div>L’objectif est d’obtenir la conformité du traitement grâce à l’AIPD</div>
-        <div class="separator"></div>
-        <div style="text-align: center"><img src="{{ base_dir ~ asset("images/ConformiteAIPD.png") }}" width="800" alt="ConformitéAIPD"></div>
-
-        <div style="page-break-before: always;"></div>
-        <h2>2. Étude du contexte</h2>
-        <div>Ce chapitre a pour objectif de fournir une vision claire de la structure et du traitement de données personnelles considéré</div>
-        <div class="separator"></div>
-        <div class="col-md-6">
-            <table class="table table-bordered">
-                <tr>
-                    <td class="table-bluecell">Nature du traitement</td>
-                    <td>{{ object.conformiteTraitement.traitement.name }}</td>
-                </tr>
-            </table>
-            <div class="separator"></div>
-            {% set critere = object.criterePrincipeFondamentalByCode('contexte_traitement') %}
-            {% if critere and critere.reponse != 'non_renseigne' %}
-                <table class="table table-bordered">
-                    <tr>
-                        <td class="table-bluecell">{{ critere.labelLivrable }}</td>
-                        <td>
-                            La conformité :
-                            {% if critere.reponse == 'conforme' %}
-                                <span class="label label-success" style="min-width: 50px; display: inline-block;">{{ critere.texteConformite }}</span>
-                            {% elseif critere.reponse == 'non_conforme' %}
-                                <span class="label label-danger" style="min-width: 50px; display: inline-block;">{{ critere.texteNonConformite }}</span>
-                            {% elseif critere.reponse == 'non_applicable' %}
-                                <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
-                            {% endif %}
-                            <br/>
-                            {% if critere.justification is not null %}
-                                <i>Justification : </i>{{ critere.justification }}<br />
-                            {% endif %}
-                        </td>
-                    </tr>
-                    {% if critere.fichier %}
-                        <tr>
-                            <td colspan="2" style="text-align: center">
-                                <img src="{{ base_dir ~ asset('/uploads/aipd/critere_principe_fondamentaux/fichier/' ~ critere.fichier)}}" style="max-width:800px" alt="Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}">
-                            </td>
-                        </tr>
-                    {% endif %}
-                </table>
+    <body>
+        <div>
+            <section>
+                <h1>Analyse d'Impact relative à la Protection des Données</h1>
                 <div class="separator"></div>
-            {% endif %}
+                <p class="txt-center fs-2">Instruction du dossier</p>
+            </section>
+
+            <section>
+                <p class="h2 txt-center fs-3">{{ object.conformiteTraitement.traitement.name }}</p>
+                <p class="h2 txt-center fs-3">{{ object.conformiteTraitement.traitement.collectivity.name }}</p>
 
-            {% set critere = object.criterePrincipeFondamentalByCode('portee_traitement') %}
-            {% if critere and critere.reponse != 'non_renseigne' %}
-                <table class="table table-bordered">
-                    <tr>
-                        <td class="table-bluecell">{{  critere.labelLivrable }}</td>
-                        <td>
-                            La conformité :
-                            {% if critere.reponse == 'conforme' %}
-                                <span class="label label-success" style="min-width: 50px; display: inline-block;">{{ critere.texteConformite }}</span>
-                            {% elseif critere.reponse == 'non_conforme' %}
-                                <span class="label label-danger" style="min-width: 50px; display: inline-block;">{{ critere.texteNonConformite }}</span>
-                            {% elseif critere.reponse == 'non_applicable' %}
-                                <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
-                            {% endif %}
-                            <br/>
-                            {% if critere.justification is not null %}
-                                <i>Justification : </i>{{ critere.justification }}<br />
-                            {% endif %}
-                        </td>
-                    </tr>
-                    {% if critere.fichier %}
-                        <tr>
-                            <td colspan="2" style="text-align: center">
-                                <img src="{{ base_dir ~ asset('/uploads/aipd/critere_principe_fondamentaux/fichier/' ~ critere.fichier)}}" style="max-width:800px" alt="Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}">
-                            </td>
-                        </tr>
-                    {% endif %}
-                </table>
                 <div class="separator"></div>
-            {% endif %}
-
-
-            <table class="table table-bordered">
-                <tr>
-                    <td class="table-bluecell">Finalité(s) du traitement</td>
-                    <td>
-                        {{ object.conformiteTraitement.traitement.goal }}</td>
-                </tr>
-            </table>
-            <div class="separator"></div>
-            <table class="table table-bordered">
-                <tr>
-                    <td class="table-bluecell">Données à caractère personnel</td>
-                    <td>
-                        {% for category in object.conformiteTraitement.traitement.dataCategories %}
-                            {{ category }}<br/>
-                        {% endfor %}
-                        {{ object.conformiteTraitement.traitement.dataCategoryOther }}
-                    </td>
-                </tr>
-            </table>
-            <div class="separator"></div>
-            <table class="table table-bordered">
-                <tr>
-                    <td class="table-bluecell">Destinataires</td>
-                    <td>
-                        {{ object.conformiteTraitement.traitement.recipientCategory }}
-                        {% for contractor in object.conformiteTraitement.traitement.contractors %}
-                            <br/>{{ contractor }}
-                        {% endfor %}
-                    </td>
-                </tr>
-            </table>
-            <div class="separator"></div>
-            <table class="table table-bordered">
-                <tr>
-                    <td class="table-bluecell">Durée de conservation</td>
-                    <td>
-                        {% for duration in object.conformiteTraitement.traitement.shelfLifes %}
-                            {{ duration.name }} - {{ duration.duration }} - {{ duration.ultimateFate }} <br/>
-                        {% endfor %}
-                    </td>
-                </tr>
-            </table>
-            <div class="separator"></div>
-            {% set critere = object.criterePrincipeFondamentalByCode('identification_biens') %}
-            {% if critere and critere.reponse != 'non_renseigne' %}
-                <table class="table table-bordered">
-                    <tr>
-                        <td class="table-bluecell">{{  critere.labelLivrable }}</td>
-                        <td>
-                            La conformité :
-                            {% if critere.reponse == 'conforme' %}
-                                <span class="label label-success" style="min-width: 50px; display: inline-block;">{{ critere.texteConformite }}</span>
-                            {% elseif critere.reponse == 'non_conforme' %}
-                                <span class="label label-danger" style="min-width: 50px; display: inline-block;">{{ critere.texteNonConformite }}</span>
-                            {% elseif critere.reponse == 'non_applicable' %}
-                                <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
-                            {% endif %}
-                            <br/>
-                            {% if critere.justification is not null %}
-                                <i>Justification : </i>{{ critere.justification }}<br />
-                            {% endif %}
-                        </td>
-                    </tr>
-                    {% if critere.fichier %}
-                        <tr>
-                            <td colspan="2" style="text-align: center">
-                                <img src="{{ base_dir ~ asset('/uploads/aipd/critere_principe_fondamentaux/fichier/' ~ critere.fichier)}}" style="max-width:800px" alt="Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}">
-                            </td>
-                        </tr>
-                    {% endif %}
-                </table>
                 <div class="separator"></div>
-            {% endif %}
 
-            {% set critere = object.criterePrincipeFondamentalByCode('description_fonctionnelle') %}
-            {% if critere and critere.reponse != 'non_renseigne' %}
-                <table class="table table-bordered">
-                    <tr>
-                        <td class="table-bluecell">{{  critere.labelLivrable }}</td>
-                        <td>
-                            La conformité :
-                            {% if critere.reponse == 'conforme' %}
-                                <span class="label label-success" style="min-width: 50px; display: inline-block;">{{ critere.texteConformite }}</span>
-                            {% elseif critere.reponse == 'non_conforme' %}
-                                <span class="label label-danger" style="min-width: 50px; display: inline-block;">{{ critere.texteNonConformite }}</span>
-                            {% elseif critere.reponse == 'non_applicable' %}
-                                <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
-                            {% endif %}
-                            <br/>
-                            {% if critere.justification is not null %}
-                                <i>Justification : </i>{{ critere.justification }}<br />
-                            {% endif %}
-                        </td>
-                    </tr>
-                    {% if critere.fichier %}
-                        <tr>
-                            <td colspan="2" style="text-align: center">
-                                <img src="{{ base_dir ~ asset('/uploads/aipd/critere_principe_fondamentaux/fichier/' ~ critere.fichier)}}" style="max-width:800px" alt="Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}">
-                            </td>
-                        </tr>
-                    {% endif %}
-                </table>
+                <div class="row">
+                    <div><strong style="font-size: 1.6em; margin-left:30px;">Responsable du traitement</strong></div>
+                    <span style="font-size: 1.2em; margin-left:45px;">{{ object.conformiteTraitement.traitement.collectivity.legalManager.civility|dictionary('user_contact_civility') }} {{ object.conformiteTraitement.traitement.collectivity.legalManager.firstName }} {{ object.conformiteTraitement.traitement.collectivity.legalManager.lastName }}</span>
+                </div>
                 <div class="separator"></div>
-            {% endif %}
-            {% set critere = object.criterePrincipeFondamentalByCode('conformite_code') %}
-            {% if critere and critere.reponse != 'non_renseigne' %}
-                <table class="table table-bordered">
-                    <tr>
-                        <td class="table-bluecell">{{  critere.labelLivrable }}</td>
-                        <td>
-                            La conformité :
-                            {% if critere.reponse == 'conforme' %}
-                                <span class="label label-success" style="min-width: 50px; display: inline-block;">{{ critere.texteConformite }}</span>
-                            {% elseif critere.reponse == 'non_conforme' %}
-                                <span class="label label-danger" style="min-width: 50px; display: inline-block;">{{ critere.texteNonConformite }}</span>
-                            {% elseif critere.reponse == 'non_applicable' %}
-                                <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
-                            {% endif %}
-                            <br/>
-                            {% if critere.justification is not null %}
-                                <i>Justification : </i>{{ critere.justification }}<br />
-                            {% endif %}
-                        </td>
-                    </tr>
-                    {% if critere.fichier %}
-                        <tr>
-                            <td colspan="2" style="text-align: center">
-                                <img src="{{ base_dir ~ asset('/uploads/aipd/critere_principe_fondamentaux/fichier/' ~ critere.fichier)}}" style="max-width:800px" alt="Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}">
-                            </td>
-                        </tr>
+                <div class="row">
+                    <div><strong style="font-size: 1.6em; margin-left:30px;">Référent RGPD</strong></div>
+                    <span style="font-size: 1.2em; margin-left:45px;">{{ object.conformiteTraitement.traitement.collectivity.referent.civility|dictionary('user_contact_civility') }} {{ object.conformiteTraitement.traitement.collectivity.referent.firstName }} {{ object.conformiteTraitement.traitement.collectivity.referent.lastName }}</span>
+                </div>
+                <div class="separator"></div>
+                <div class="row">
+                    <div><strong style="font-size: 1.6em; margin-left:30px;">Délégué à la Protection des Données</strong></div>
+                    {% if object.conformiteTraitement.traitement.collectivity.differentDpo %}
+                        <span style="font-size: 1.2em; margin-left:45px;">{{ object.conformiteTraitement.traitement.collectivity.dpo.civility|dictionary('user_contact_civility') }} {{ object.conformiteTraitement.traitement.collectivity.dpo.firstName }} {{ object.conformiteTraitement.traitement.collectivity.dpo.lastName }}</span>
+                    {% else %}
+                        <span style="font-size: 1.2em; margin-left:45px;">{{ default_dpo_civility|dictionary('user_contact_civility') }} {{ default_dpo_firstName }} {{ default_dpo_lastName }}<br/></span>
+                        <span style="font-size: 1.2em; margin-left:45px;">{{ default_dpo_address_street }}<br/></span>
+                        <span style="font-size: 1.2em; margin-left:45px;">{{ default_dpo_address_zip_code }} {{ default_dpo_address_city}}</span>
                     {% endif %}
-                </table>
+                </div>
                 <div class="separator"></div>
-            {% endif %}
-        </div>
+                <div class="row">
+                    <div>
+                        <strong style="font-size: 1.6em; margin-left:30px;">Date de validation de l’AIPD : </strong>
+                        <strong style="font-size: 1.6em; margin-left:150px;">Signature du Responsable du Traitement</strong>
+                    </div>
+                    <span style="font-size: 1.2em; margin-left:45px;">{{ (object.conformiteTraitement.analyseImpacts|first).dateValidation|date('d/m/Y') }}</span>
+                </div>
 
-        <div  style="page-break-before: always;"></div>
-        <h2>3. Études des principes fondamentaux</h2>
-        <div>Ce chapitre a pour objectif de s’assurer que le dispositif relatif aux principes de protection de la vie privée est conforme.</div>
-        <div class="separator"></div>
-        <table class="table table-bordered">
-            <thead>
-                <tr>
-                    <th>Description</th>
-                    <th>Conformité</th>
-                </tr>
-            </thead>
-            {% for critere in object.criterePrincipeFondamentaux %}
-                <tr>
-                    <td>{{ critere.labelLivrable }}</td>
-                    <td>{{ getCritereLabel(critere)|raw }}</td>
-                </tr>
-            {% endfor %}
-        </table>
-        <table class="table table-bordered">
-            <thead>
-                <tr>
-                    <th>Principes fondamentaux</th>
-                    <th>Conformité</th>
-                </tr>
-            </thead>
-            <tbody>
-            {% for questionConformite in object.questionConformites|sort((a, b) => a.position >= b.position) %}
-                <tr>
-                    {% set reponse = object.conformiteTraitement.getReponseOfName(questionConformite.question) %}
-                    <td>{{ questionConformite.question }}
-                        {% if questionConformite.justificatif is not null %}
-                            <div style="margin-left: 20px;font-size:12px;">
-                                <span>Justification : {{ questionConformite.justificatif }}</span>
-                            </div>
-                        {% endif %}
+                <div style="page-break-before: always;"></div>
 
-                        {% if reponse and (reponse.actionProtections is not null) and (reponse.actionProtections|length > 0) %}
-                            <div style="margin-left: 20px;font-size:12px;">
-                                <span>Actions associées : </span>
-                            </div>
-                            <ul>
-                                {% for action in reponse.actionProtections %}
-                                    <li style="margin-left: 20px;font-size:12px;">{{action.name}}</li>
-                                {% endfor %}
-                            </ul>
-                        {% endif %}
-                    </td>
-                    {% if reponse and reponse.conforme %}
-                        <td><span class="label label-success" style="min-width: 100%; display: inline-block;"> Conforme</span></td>
-                    {% else %}
-                        {% if reponse and reponse.actionProtections|length > 0 %}
-                            <td><span class="label label-warning" style="min-width: 100%; display: inline-block;"> Non-conforme mineure</span></td>
-                        {% else%}
-                            <td><span class="label label-danger" style="min-width: 100%; display: inline-block;"> Non-conforme majeure</span></td>
-                        {% endif %}
-                    {% endif %}
-                </tr>
-            {% endfor %}
-            </tbody>
-        </table>
-        <div>Le graphique ci-dessous indique les points d’amélioration nécessaires au respect des principes fondamentaux du règlement.</div>
-        <div class="separator"></div>
-        <div class="reportGraph"><canvas id="grandsDomaines-chart"></canvas></div>
-        <div  style="page-break-before: always;"></div>
-        <h2>4. Études des risques liés à la sécurité des données</h2>
-        <div>Ce chapitre a pour objectifs d'obtenir une bonne connaissance des mesures contribuant à la sécurité et d'apprécier les risques.</div>
-        <h3>4.1 Évaluation des risques sur les droits et les libertés des personnes concernées</h3>
-        <div style="text-align: center"><img src="{{ base_dir ~ asset("images/NiveauRisque.png") }}" height="300" alt="Niveau risque"></div>
-        <table class="table table-bordered">
-            <tr class="table-indicateur-head">
-                <td>Niveaux</td>
-                <td>Descriptions génériques de l'échelle de gravité</td>
-            </tr>
-            <tr>
-                <td class="table-indicateur-maximale">Maximale</td>
-                <td>Les personnes concernées pourraient connaître des conséquences significatives, voire irrémédiables, qu'elles pourraient ne pas surmonter</td>
-            </tr>
-            <tr>
-                <td class="table-indicateur-importante">Importante</td>
-                <td>Les personnes concernées pourraient connaître des conséquences significatives, qu'elles devraient pouvoir surmonter, mais avec des difficultés réelles et significatives</td>
-            </tr>
-            <tr>
-                <td class="table-indicateur-limitee">Limitée</td>
-                <td>Les personnes concernées pourraient connaître des désagréments significatifs, qu'elles pourront surmonter malgré quelques difficultés</td>
-            </tr>
-            <tr>
-                <td class="table-indicateur-negligeable">Négligeable</td>
-                <td>Les personnes concernées ne seront pas impactés ou pourraient connaître quelques désagréments, qu'elles surmonteront sans difficulté</td>
-            </tr>
-        </table>
-
-        <table class="table table-bordered">
-            <tr class="table-indicateur-head">
-                <td>Niveaux</td>
-                <td>Descriptions génériques de l'échelle de vraisemblance</td>
-            </tr>
-            <tr>
-                <td class="table-indicateur-maximale">Maximale</td>
-                <td>Il semble extrêmement facile pour les sources des risques retenues de réaliser la menace en s'appuyant sur les caractéristiques des supports (ex: vol de supports papier stockés dans le hall public de la structure).</td>
-            </tr>
-            <tr>
-                <td class="table-indicateur-importante">Importante</td>
-                <td>Il semble possible pour les sources de risques retenues de réaliser la menace en s'appuyant sur les caractéristiques des supports (ex: vol de supports papiers stockés dans les bureaux d'une structure dont l'accès est contrôlé par une personne à l'accueil).</td>
-            </tr>
-            <tr>
-                <td class="table-indicateur-limitee">Limitée</td>
-                <td>Il semble difficile pour les sources de risques retenues de réaliser la menace en s'appuyant sur les caractéristiques des supports (ex: vol de supports papiers stockés dans un local de la structure dont l'accès est contrôlé par badge).</td>
-            </tr>
-            <tr>
-                <td class="table-indicateur-negligeable">Négligeable</td>
-                <td>Il ne semble pas possible que les sources de risques retenues puissent réaliser la menace en s'appuyant sur les caractéristiques des supports (ex: vol de supports papiers stockés dans un local de la structure dont l'accès est contrôlé par badge et code d'accès).</td>
-            </tr>
-        </table>
-        <div style="text-align: center"><img src="{{ base_dir ~ asset("images/matriceAIPD.png") }}" height="300" alt="MatriceAIPD"></div>
-
-        <div  style="page-break-before: always;"></div>
-        <h3>4.2 Évaluation de l'impact et matrice de décision</h3>
-        <div>Le tableau ci-dessous identifie des scénarios de menaces pour lesquels une évaluation est réalisée sur la vraisemblance (risques d’occurrence) et la gravité (conséquences en cas d’évènement). D, I et C représentent les critères de classification de l'information : <b>D</b>isponibilité, <b>I</b>ntégrité, <b>C</b>onfidentialité.</div>
-        <div class="separator"></div>
-        <table class="table table-bordered">
-            <tr>
-                <th>D</th>
-                <th>I</th>
-                <th>C</th>
-                <th>Scénario de menace</th>
-                <th>Vraisemblance</th>
-                <th>Gravité</th>
-                <th>Impact potentiel</th>
-            </tr>
-            {% for scenario in object.scenarioMenaces|sort((a,b) => a.nom <=> b.nom) %}
-                <tr>
-                    <td>{% if scenario.isDisponibilite %}X{% endif %}</td>
-                    <td>{% if scenario.isIntegrite %}X{% endif %}</td>
-                    <td>{% if scenario.isConfidentialite %}X{% endif %}</td>
-                    <td>{{ scenario.nom }}</td>
-                    <td>{{ scenario.vraisemblance|dictionary('vraisemblance_gravite') }}</td>
-                    <td>{{ scenario.gravite|dictionary('vraisemblance_gravite') }}</td>
-                    <td>{{ getScenarioMenaceImpactPotentielLabel(scenario)|raw }}</td>
-                </tr>
-            {% endfor %}
-        </table>
-        <div>La CNIL préconise d’accepter les risques uniquement lorsque l’impact est négligeable. Dans les autres cas, il faudra apporter des mesures de protection supplémentaires pour venir corriger les anomalies identifiées. Dans le cas où le risque est maximal et que les mesures ne sont pas jugées suffisantes, il conviendra de solliciter l’avis de la CNIL.</div>
-        <div>La matrice de décision ci-dessous vous informe du comportement attendu par la CNIL selon le niveau d'impact identifié :</div>
-        <div style="text-align: center"><img src="{{ base_dir ~ asset("images/MatriceDecision.png") }}" height="300" alt="MatriceDecision"></div>
-        <br/>
-        <h3 style="page-break-before: always">4.3 Mesure(s) de réduction des risques mise(s) en place</h3>
-        <div>Le radar ci-dessous présente les mesures déjà mises en place dans la structure pour réduire l’ensemble des risques identifiés.</div>
-        <div class="separator"></div>
-        <div class="reportGraph"><canvas id="mesuresSecurite-chart"></canvas></div>
-        <div class="separator"></div>
-        <div class="box box-solid box-primary">
-            <div class="box-header with-border">Mesures de protection</div>
-            <table class="table table-bordered">
-                <tr>
-                    <th>Mesure</th>
-                    <th>Avis sur les mesures existantes</th>
-                    <th>Évaluation</th>
-                    <th>Préconisations</th>
-                </tr>
-
-                {% set mesures = [] %}
-                {% for scenario in object.scenarioMenaces %}
-                    {% for mesure in scenario.mesuresProtections %}
-                        {% if mesure not in mesures %}
-                            {% set mesures = mesures|merge([mesure])%}
-                        {% endif%}
-                    {% endfor %}
-                {% endfor %}
-                {% for element in mesures|sort((a, b) => a.labelLivrable >= b.labelLivrable) %}
-                    <tr>
-                        <td>{{ element.labelLivrable }}</td>
-                        <td>{{ element.detail }}</td>
-                        <td>{% if element.reponse in reponsedictionary(object)|keys %}
-                                {{ element.reponse|reponsedictionary(object) }}
-                            {% else %}
-                                {{ element.reponse }}
-                            {% endif %}
-                        </td>
-                        {% if element.reponse is same as "satisfaisant" %}
-                            <td></td>
-                        {% else %}
-                            <td>{{ element.phrasePreconisation }}</td>
-                        {% endif %}
-                    </tr>
-                {% endfor %}
-            </table>
-        </div>
+                <h2 class="txt-center">Sommaire</h2>
+                <ul>
+                    <li>1. Préambule
+                        <ul>
+                            <li>1.1 Méthode d'une Analyse d'Impact relative à la Protection des Données</li>
+                            <li>1.2 Conformité d’une Analyse d’Impact relative à la Protection des Données</li>
+                        </ul>
+                    </li>
+                    <li>2. Étude du contexte</li>
+                    <li>3. Études des principes fondamentaux</li>
+                    <li>4. Études des risques liés à la sécurité des données
+                        <ul>
+                            <li>4.1 Évaluation des risques sur les droits et les libertés des personnes concernées</li>
+                            <li>4.2 Évaluation de l'impact et matrice de décision</li>
+                            <li>4.3 Mesure(s) de réduction des risques envisagée(s)</li>
+                            <li>4.4 Risques résiduels</li>
+                        </ul>
+                    </li>
+                    <li>5. Validation de l'AIPD
+                        <ul>
+                            <li>Avis des personnes consultées</li>
+                        </ul>
+                    </li>
+                    <li>6. Annexes
+                        <ul>
+                            <li>6.1 Glossaire</li>
+                            <li>6.2 Références</li>
+                            <li>6.3 Fiche de traitement</li>
+                        </ul>
+                    </li>
+                </ul>
 
-        <div  style="page-break-before: always;"></div>
-        <h3>4.4 Risques résiduels</h3>
-        <div>Les risques résiduels correspondent aux risques non traités à ce jour ou pour lesquels des préconisations ont été formulées (voir actions conseillées par le DPD).</div>
-        <div class="reportGraph"><canvas id="risquesResiduels-chart"></canvas></div>
-        <br/>
-        <div class="box box-solid box-primary">
-            <div class="box-header with-border">{{ 'aipd.analyse_impact.tab.gestion_risques'|trans }}</div>
-            <div class="box-body">
-                <table class="table table-bordered">
-                    <tr>
-                        <th>{{ 'aipd.modele_analyse.label.scenario'|trans }}</th>
-                        <th style="width: 20%;">{{ 'aipd.analyse_impact.label.impact_potentiel'|trans }}</th>
-                        <th style="width: 20%;">{{ 'aipd.analyse_impact.label.impact_residuel'|trans }}</th>
-                    </tr>
-                    {% set mesureProtectionNotNegligeable = [] %}
-                    {% for scenario in object.scenarioMenaces|sort((a, b) => a.nom >= b.nom) %}
-                        {% if isScenarioMenaceImpactResiduelImpactNotNegligeable(scenario) %}
-                            {% for mesure in scenario.mesuresProtections %}
-                                {% if mesure not in mesureProtectionNotNegligeable %}
-                                    {% set mesureProtectionNotNegligeable = mesureProtectionNotNegligeable|merge([mesure]) %}
-                                {% endif %}
-                            {% endfor %}
-                            <tr>
-                                <td>{{ scenario.nom }}</td>
-                                <td>{{ getScenarioMenaceImpactPotentielLabel(scenario)|raw }}</td>
-                                <td>{{ getScenarioMenaceImpactResiduelLabel(scenario)|raw }}</td>
-                            </tr>
-                        {% endif %}
-                    {% endfor %}
-                </table>
-            </div>
-        </div>
-        <p>Le graphique ci dessous représente les risques résiduels sur la disponibilité, l'intégrité et la confidentialité des données à caractère personnel</p>
-        <div class="reportGraph"><canvas id="dicResiduels-chart"></canvas></div>
-        <div class="separator"></div>
-        <div>Le plan d’actions ci-après présente les mesures de sécurité liées aux seuls scénarios de menaces dont l’impact est refusé.</div>
-        <div class="separator"></div>
-        <div class="box box-solid box-primary">
-            <div class="box-header with-border">Plan d'actions</div>
-            <div class="box-body">
-                <table class="table table-bordered">
-                    <tr>
-                        <th>Mesure</th>
-                        <th>Préconisations</th>
-                    </tr>
-                    {% for mesure in mesureProtectionNotNegligeable|sort((a, b) => a.labelLivrable >= b.labelLivrable) %}
-                         <tr>
-                            <td>{{ mesure.labelLivrable }}</td>
-                            <td>{{ mesure.phrasePreconisation }}</td>
-                         </tr>
-                    {% endfor %}
-                </table>
-            </div>
-        </div>
-        <div  style="page-break-before: always;"></div>
-        <h2>5. Validation de l'AIPD</h2>
-        <div>Ce chapitre a pour objectifs de permettre la prise de décision visant à accepter ou non l'AIPD au regard des résultats de l'étude.</div>
-
-        <h3>Avis des personnes consultées</h3>
-        <table class="table table-bordered">
-            <tr>
-                <td class="table-bluecell">Avis du référent RGPD</td>
-                <td>{{ object.avisReferent.reponse|dictionary('reponse_avis') }}</td>
-            </tr>
-            {% if object.avisReferent.date is not null %}
-                <tr>
-                    <td colspan="2">{{ object.avisReferent.date|date('d/m/Y') }}</td>
-                </tr>
-            {% endif %}
-            {% if object.avisReferent.detail is not null %}
-                <tr>
-                    <td colspan="2">{{ object.avisReferent.detail }}</td>
-                </tr>
-            {% endif %}
-            <tr style="height: 80px"><td colspan="2">Signature :</td></tr>
-        </table>
-        <table class="table table-bordered">
-            <tr>
-                <td class="table-bluecell">Avis du délégué à la protection des données</td>
-                <td>{{ object.avisDpd.reponse|dictionary('reponse_avis') }}</td>
-            </tr>
-            {% if object.avisDpd.date is not null %}
-                <tr>
-                    <td colspan="2">{{ object.avisDpd.date|date('d/m/Y') }}</td> XXX
-                </tr>
-            {% endif %}
-            {% if object.avisDpd.detail is not null %}
-                <tr>
-                    <td colspan="2">{{ object.avisDpd.detail }}</td>
-                </tr>
-            {% endif %}
-            <tr style="height: 80px"><td colspan="2">Signature :</td></tr>
-        </table>
-        <table class="table table-bordered">
-            <tr>
-                <td class="table-bluecell">Avis des représentants des personnes concernées</td>
-                <td>{{ object.avisRepresentant.reponse|dictionary('reponse_avis') }}</td>
-            </tr>
-            {% if object.avisRepresentant.date is not null %}
-                <tr>
-                    <td colspan="2">{{ object.avisRepresentant.date|date('d/m/Y') }}</td>
-                </tr>
-            {% endif %}
-            {% if object.avisRepresentant.detail is not null %}
-                <tr>
-                    <td colspan="2">{{ object.avisRepresentant.detail }}</td>
-                </tr>
-            {% endif %}
-            <tr style="height: 80px"><td colspan="2">Signature :</td></tr>
-        </table>
-        <table class="table table-bordered">
-            <tr>
-                <td class="table-bluecell">Décision du responsable de traitement</td>
-                <td>{{ object.avisResponsable.reponse|dictionary('reponse_avis') }}</td>
-            </tr>
-            {% if object.avisResponsable.date is not null %}
-                <tr>
-                    <td colspan="2">{{ object.avisResponsable.date|date('d/m/Y') }}</td>
-                </tr>
-            {% endif %}
-            {% if object.avisResponsable.detail is not null %}
-                <tr>
-                    <td colspan="2">{{ object.avisResponsable.detail }}</td>
-                </tr>
-            {% endif %}
-            <tr style="height: 80px"><td colspan="2">Signature :</td></tr>
-        </table>
-
-{#            //////////////////////////////////////#}
-{#            /////////////// Annexes //////////////#}
-{#            //////////////////////////////////////#}
-            <div style="page-break-before: always;"></div>
-            <h2>6. Annexes</h2>
-            <h3>6.1 Glossaire</h3>
-            <div class="annexe-head">Donnée à caractère personnel</div>
-            <div>Toute information se rapportant à une personne physique identifiée ou identifiable (ci-après dénommée "personne concernée"); est réputée pour être une "personne physique identifiable" une personne physique qui peut être identifiée, directement ou indirectement, notamment par référence à un identifiant, tel qu'un nom, un numéro d'identification, des données de localisation, un identifiant en ligne, ou à un ou plusieurs éléments spécifiques propres à son identité physique, physiologique, génétique, psychique, économique, culturelle ou sociale.</div>
-            <div class="annexe-head">Événement redouté</div>
-            <div>Violation potentielle de données pouvant mener à des impacts sur la vie privée des personnes concernées.</div>
-            <div class="annexe-head">Gravité</div>
-            <div>Estimation de l'ampleur des impacts potentiels sur la vie privée des personnes concernées.</div>
-            <div class="annexe-head">Menace</div>
-            <div>Mode opératoire composé d'une ou plusieurs actions unitaires sur des supports de données.</div>
-            <div class="annexe-head">Mesure</div>
-            <div>Action à entreprendre.</div>
-            <div class="annexe-head">Personnes concernées</div>
-            <div>Personnes auxquelles se rapportent les données qui font l'objet du traitement.</div>
-            <div class="annexe-head">Responsable de traitement</div>
-            <div>La personne physique ou morale, l'autorité publique, le service ou une autre structure qui, seul ou conjointement avec d'autres, détermine les finalités et les moyens du traitement ; lorsque les finalités et les moyens de ce traitement sont déterminés par le droit de l'Union ou le droit d'un État membre, le responsable du traitement peut être désigné ou les traitements spécifiques applicables à sa désignation peuvent être prévus par le droit de l'Union ou par le droit d'un État membre.</div>
-            <div class="annexe-head">Traitement de données à caractère personnel (traitement)</div>
-            <div>Tout opération ou tout ensemble d'opérations effectuées ou non à l'aide de procédés automatisés et appliqués à des données ou des ensembles de données à caractère personnel, tel que la collecte, l'enregistrement, la structure, la structuration, la conservation, l'adaptation ou la modification, l'extraction, la consultation, l'utilisation, la communication par transmission, la diffusion ou tout autre forme de mise à disposition, le rapprochement ou l'interconnexion, la limitation, l'effacement ou la destruction.</div>
-            <div class="annexe-head">Vraisemblance</div>
-            <div>Estimation de la possibilité qu'un risque se réalise.</div>
-
-            <h3>6.2 Références</h3>
-            <div class="annexe-head">CNIL / CEPD</div>
-            <div class="annexe-link">https://www.cnil.fr/fr/ce-quil-faut-savoir-sur-lanalyse-dimpact-relative-la-protection-des-donnees-aipd</div>
-            <div class="annexe-link">https://www.cnil.fr/fr/nouveautes-sur-le-pia-guides-outil-piaf-etude-de-cas</div>
-            <div class="annexe-link">https://www.cnil.fr/fr/collectivites-territoriales</div>
-            <div class="annexe-link">https://www.edpb.europa.eu/our-work-tools/our-documents/publication-type/guidelines_fr</div>
-
-            <div class="annexe-head">ANSSI</div>
-            <div class="annexe-prelink">- EBIOS RM : Méthode d'analyse des risques</div>
-            <div class="annexe-link">https://www.ssi.gouv.fr/guide/la-methode-ebios-risk-manager-le-guide</div>
-            <div class="annexe-prelink">- Lien RGS / RGPD</div>
-            <div class="annexe-link">https://www.ssi.gouv.fr/administration/reglementation/rgpd-renforcer-la-securite-des-donnees-a-caractere-personnel</div>
-
-            <div class="annexe-head">CLUSIF</div>
-            <div class="annexe-prelink">- Méhari</div>
-            <div class="annexe-link">https://clusif.fr/services/management-des-risques/les-fondamentaux-de-mehari/</div>
-
-            <div class="annexe-head">ISO</div>
-            <div class="annexe-prelink">- ISO/IEC 27701:2019 -Technique de sécurité - Extension d'ISO/IEC 27001 et ISO/IEC 27002 au management de la protection de la vie privée - Exigences et lignes directrices</div>
-            <div class="annexe-link">https://www.iso.org/fr/standard/71670.html</div>
-
-        <div style="page-break-before: always;"></div>
-        <h3>6.3 Fiche de traitement</h3>
-        {% set traitement = object.conformiteTraitement.traitement %}
-
-        {# DPO Statut #}
-        <div class="box box-solid box-default">
-            <div class="box-header with-border">
-                <h3 class="box-title">{{ 'registry.treatment.tab.statut_dpo'|trans }}</h3>
-            </div>
-            <div class="box-body no-padding">
-                <table role="presentation" class="table">
-                    <tbody>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.statut'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.statut is defined and traitement.statut %}
-                                    {{ traitement.statut|dictionary('treatment_statut') }}
-                                {% endif %}
-                            </td>
-                        </tr>
-                        {% if traitement.dpoMessage is not null %}
-                            <tr>
-                                <td><strong>{{ 'registry.treatment.label.dpoMessage'|trans }}</strong></td>
-                                <td>{{ traitement.dpoMessage }}</td>
-                            </tr>
-                        {% endif %}
-                    </tbody>
-                </table>
-            </div>
-        </div>
+                <div style="page-break-before: always;"></div>
+
+                <h2>1. Préambule</h2>
+                <p>Le présent document contient tous les éléments nécessaires pour le Responsable de Traitement (RT), le Référent RGPD (RR) et le Délégué à la Protection des Données (DPD) pour mener à bien une Analyse d'Impact relative à la Protection des Données (le sigle AIPD sera utilisé dans la suite de ce document) conforme aux attentes de la CNIL.</p>
+                <p>Il est possible de retrouver l'ensemble des éléments produits dans ce document dans le logiciel Madis.</p>
+
+                <h3>1.1 Méthode d'une Analyse d'Impact relative à la Protection des Données</h3>
+                <p>La démarche pour réaliser une analyse d'impact comprend quatre étapes :</p>
+                <ol>
+                    <li>Délimiter et décrire le contexte du ou des traitements considérés ;</li>
+                    <li>Analyser les mesures garantissant le respect des principes fondamentaux : la proportionnalité et la nécessité du traitement, et la protection des droits des personnes concernées ;</li>
+                    <li>Apprécier les risques sur la vie privée liés à la sécurité des données et vérifier qu’ils sont convenablement traités ;</li>
+                    <li>Formaliser la validation de l’AIPD au regard des éléments précédents ou bien décider de réviser les étapes précédentes.</li>
+                </ol>
+
+                <div style="text-align: center"><img src="{{ base_dir ~ asset("images/cycleAIPD.jpg") }}" height="300" alt="Cycle d'une AIPD : 1 contexte, 2 principes fondamentaux, 3 risques, 4 validation"></div>
 
-        {# GENERAL #}
-        <div class="box box-solid box-info">
-            <div class="box-header with-border"><h3 class="box-title" style="color: white">{{ 'global.tab.general'|trans }}</h3></div>
-            <div class="box-body no-padding">
-                <table class="table">
+                <p>Il s'agit d'un <strong>processus d'amélioration continue</strong>. Il requiert donc parfois plusieurs itérations pour parvenir à un dispositif de protection de la vie privée acceptable. Il requiert en outre une surveillance des évolutions dans le temps (du contexte, des mesures, des risques, etc.), par exemple tous les ans, et des mises à jour dès qu'une évolution significative a lieu.</p>
+                <p>La démarche devrait être employée <strong>dès la conception d'un nouveau traitement de données à caractère personnel</strong>. En effet, une application en amont permet de déterminer les mesures nécessaires et suffisantes, et donc d'optimiser les coûts. A contrario, une application tardive, alors que le système est déjà créé et les mesures en place, peut remettre en question les choix effectués.</p>
+
+                <h3>1.2 Conformité d’une Analyse d’Impact relative à la Protection des Données</h3>
+                <p>L’objectif est d’obtenir la conformité du traitement grâce à l’AIPD.</p>
+
+                <div style="text-align: center"><img src="{{ base_dir ~ asset("images/ConformiteAIPD.png") }}" width="800" alt="Respect des principes et droits fondamentaux + Gestion des risques liés à la sécurité des données = Conformité"></div>
+
+                <div style="page-break-before: always;"></div>
+
+                <h2>2. Étude du contexte</h2>
+                <p>Ce chapitre a pour objectif de fournir une vision claire de la structure et du traitement de données personnelles considéré.</p>
+                <table class="table table-bordered">
                     <tbody>
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.name'|trans }}</strong></td>
-                            <td>{{ traitement.name }}</td>
+                            <td class="table-bluecell">Nature du traitement</td>
+                            <td>{{ object.conformiteTraitement.traitement.name }}</td>
                         </tr>
-                        {% if traitement.collectivity.isServicesEnabled %}
+                        {% set critere = object.criterePrincipeFondamentalByCode('contexte_traitement') %}
+                        {% if critere and critere.reponse != 'non_renseigne' %}
                             <tr>
-                                <td><strong>{{ 'registry.label.service'|trans }}</strong></td>
-                                <td>{{ traitement.service }}</td>
+                                <td class="table-bluecell">{{ critere.labelLivrable }}</td>
+                                <td>
+                                    <i>Conformité : </i>
+                                    {% if critere.reponse == 'conforme' %}
+                                        <span class="label label-success" style="min-width: 50px; display: inline-block;">{{ critere.texteConformite }}</span>
+                                    {% elseif critere.reponse == 'non_conforme' %}
+                                        <span class="label label-danger" style="min-width: 50px; display: inline-block;">{{ critere.texteNonConformite }}</span>
+                                    {% elseif critere.reponse == 'non_applicable' %}
+                                        <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
+                                    {% endif %}
+                                    <br/>
+                                    {% if critere.justification is not null %}
+                                        <i>Justification : </i>{{ critere.justification }}<br />
+                                    {% endif %}
+                                </td>
                             </tr>
+                            {% if critere.fichier %}
+                                <tr>
+                                    <td colspan="2" style="text-align: center">
+                                        <img src="{{ base_dir ~ asset('/uploads/aipd/critere_principe_fondamentaux/fichier/' ~ critere.fichier)}}" style="max-width:800px" alt="Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}">
+                                    </td>
+                                </tr>
+                            {% endif %}
                         {% endif %}
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.author'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.author is not null %}
-                                    {{ traitement.author|dictionary('registry_treatment_author') }}
-                                {% endif %}
-                            </td>
-                        </tr>
-                        {% if traitement.author != "processing_manager" %}
+                        {% set critere = object.criterePrincipeFondamentalByCode('portee_traitement') %}
+                        {% if critere and critere.reponse != 'non_renseigne' %}
                             <tr>
-                                <td><strong>{{ 'registry.treatment.label.coordonnees_responsable_traitement'|trans }}</strong></td>
-                                <td>{{ traitement.coordonneesResponsableTraitement|nl2br }}</td>
+                                <td class="table-bluecell">{{ critere.labelLivrable }}</td>
+                                <td>
+                                    <i>Conformité : </i>
+                                    {% if critere.reponse == 'conforme' %}
+                                        <span class="label label-success" style="min-width: 50px; display: inline-block;">{{ critere.texteConformite }}</span>
+                                    {% elseif critere.reponse == 'non_conforme' %}
+                                        <span class="label label-danger" style="min-width: 50px; display: inline-block;">{{ critere.texteNonConformite }}</span>
+                                    {% elseif critere.reponse == 'non_applicable' %}
+                                        <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
+                                    {% endif %}
+                                    <br/>
+                                    {% if critere.justification is not null %}
+                                        <i>Justification : </i>{{ critere.justification }}<br />
+                                    {% endif %}
+                                </td>
                             </tr>
+                            {% if critere.fichier %}
+                                <tr>
+                                    <td colspan="2" style="text-align: center">
+                                        <img src="{{ base_dir ~ asset('/uploads/aipd/critere_principe_fondamentaux/fichier/' ~ critere.fichier)}}" style="max-width:800px" alt="Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}">
+                                    </td>
+                                </tr>
+                            {% endif %}
                         {% endif %}
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.manager'|trans }}</strong></td>
-                            <td>{{ traitement.manager }}</td>
+                            <td class="table-bluecell">Finalité(s) du traitement</td>
+                            <td>{{ object.conformiteTraitement.traitement.goal }}</td>
                         </tr>
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.goal'|trans }}</strong></td>
-                            <td>{{ traitement.goal|nl2br }}</td>
+                            <td class="table-bluecell">Données à caractère personnel</td>
+                            <td>
+                                {% for category in object.conformiteTraitement.traitement.dataCategories %}
+                                    {{ category }}<br/>
+                                {% endfor %}
+                                {{ object.conformiteTraitement.traitement.dataCategoryOther }}
+                            </td>
                         </tr>
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.legal_basis'|trans }}</strong></td>
-                            <td>{{ traitement.legalBasis|dictionary('registry_treatment_legal_basis') }}</td>
+                            <td class="table-bluecell">Destinataires</td>
+                            <td>
+                                {{ object.conformiteTraitement.traitement.recipientCategory }}
+                                {% for contractor in object.conformiteTraitement.traitement.contractors %}
+                                    <br/>{{ contractor }}
+                                {% endfor %}
+                            </td>
                         </tr>
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.legal_basis_justification'|trans }}</strong></td>
-                            <td>{{ traitement.legalBasisJustification|nl2br }}</td>
+                            <td class="table-bluecell">Durée de conservation</td>
+                            <td>
+                                {% for duration in object.conformiteTraitement.traitement.shelfLifes %}
+                                    {{ duration.name }} - {{ duration.duration }} - {{ duration.ultimateFate|dictionary('registry_treatment_ultimate_fate') }} <br/>
+                                {% endfor %}
+                            </td>
                         </tr>
-                        {% if traitement.legalBasis == 'consent' %}
+                        {% set critere = object.criterePrincipeFondamentalByCode('identification_biens') %}
+                        {% if critere and critere.reponse != 'non_renseigne' %}
                             <tr>
-                                <td><strong>{{ 'registry.treatment.label.consent_request'|trans }}</strong></td>
+                                <td class="table-bluecell">{{ critere.labelLivrable }}</td>
                                 <td>
-                                    {% if traitement.consentRequest %}
-                                        <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% else %}
-                                        <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                    <i>Conformité : </i>
+                                    {% if critere.reponse == 'conforme' %}
+                                        <span class="label label-success" style="min-width: 50px; display: inline-block;">{{ critere.texteConformite }}</span>
+                                    {% elseif critere.reponse == 'non_conforme' %}
+                                        <span class="label label-danger" style="min-width: 50px; display: inline-block;">{{ critere.texteNonConformite }}</span>
+                                    {% elseif critere.reponse == 'non_applicable' %}
+                                        <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
+                                    {% endif %}
+                                    <br/>
+                                    {% if critere.justification is not null %}
+                                        <i>Justification : </i>{{ critere.justification }}<br />
+                                    {% endif %}
+                                </td>
+                            </tr>
+                            {% if critere.fichier %}
+                                <tr>
+                                    <td colspan="2" style="text-align: center">
+                                        <img src="{{ base_dir ~ asset('/uploads/aipd/critere_principe_fondamentaux/fichier/' ~ critere.fichier)}}" style="max-width:800px" alt="Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}">
+                                    </td>
+                                </tr>
+                            {% endif %}
+                        {% endif %}
+                        {% set critere = object.criterePrincipeFondamentalByCode('description_fonctionnelle') %}
+                        {% if critere and critere.reponse != 'non_renseigne' %}
+                            <tr>
+                                <td class="table-bluecell">{{ critere.labelLivrable }}</td>
+                                <td>
+                                    <i>Conformité : </i>
+                                    {% if critere.reponse == 'conforme' %}
+                                        <span class="label label-success" style="min-width: 50px; display: inline-block;">{{ critere.texteConformite }}</span>
+                                    {% elseif critere.reponse == 'non_conforme' %}
+                                        <span class="label label-danger" style="min-width: 50px; display: inline-block;">{{ critere.texteNonConformite }}</span>
+                                    {% elseif critere.reponse == 'non_applicable' %}
+                                        <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
+                                    {% endif %}
+                                    <br/>
+                                    {% if critere.justification is not null %}
+                                        <i>Justification : </i>{{ critere.justification }}<br />
                                     {% endif %}
                                 </td>
                             </tr>
+                            {% if critere.fichier %}
+                                <tr>
+                                    <td colspan="2" style="text-align: center">
+                                        <img src="{{ base_dir ~ asset('/uploads/aipd/critere_principe_fondamentaux/fichier/' ~ critere.fichier)}}" style="max-width:800px" alt="Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}">
+                                    </td>
+                                </tr>
+                            {% endif %}
+                        {% endif %}
+                        {% set critere = object.criterePrincipeFondamentalByCode('conformite_code') %}
+                        {% if critere and critere.reponse != 'non_renseigne' %}
                             <tr>
-                                <td><strong>{{ 'registry.treatment.label.consent_request_format'|trans }}</strong></td>
-                                <td>{{ traitement.consentRequestFormat }}</td>
+                                <td class="table-bluecell">{{ critere.labelLivrable }}</td>
+                                <td>
+                                    <i>Conformité : </i>
+                                    {% if critere.reponse == 'conforme' %}
+                                        <span class="label label-success" style="min-width: 50px; display: inline-block;">{{ critere.texteConformite }}</span>
+                                    {% elseif critere.reponse == 'non_conforme' %}
+                                        <span class="label label-danger" style="min-width: 50px; display: inline-block;">{{ critere.texteNonConformite }}</span>
+                                    {% elseif critere.reponse == 'non_applicable' %}
+                                        <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
+                                    {% endif %}
+                                    <br/>
+                                    {% if critere.justification is not null %}
+                                        <i>Justification : </i>{{ critere.justification }}<br />
+                                    {% endif %}
+                                </td>
                             </tr>
+                            {% if critere.fichier %}
+                                <tr>
+                                    <td colspan="2" style="text-align: center">
+                                        <img src="{{ base_dir ~ asset('/uploads/aipd/critere_principe_fondamentaux/fichier/' ~ critere.fichier)}}" style="max-width:800px" alt="Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}">
+                                    </td>
+                                </tr>
+                            {% endif %}
                         {% endif %}
+                    </tbody>
+                </table>
+
+                <div style="page-break-before: always;"></div>
+
+                <h2>3. Études des principes fondamentaux</h2>
+                <p>Ce chapitre a pour objectif de s’assurer que le dispositif relatif aux principes de protection de la vie privée est conforme.</p>
+                <table class="table table-bordered">
+                    <thead>
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.observation'|trans }}</strong></td>
-                            <td>{{ traitement.observation|nl2br }}</td>
+                            <th>Description</th>
+                            <th>Conformité</th>
                         </tr>
+                    </thead>
+                    <tbody>
+                        {% for critere in object.criterePrincipeFondamentaux %}
+                            <tr>
+                                <td>{{ critere.labelLivrable }}</td>
+                                <td>{{ getCritereLabel(critere)|raw }}</td>
+                            </tr>
+                        {% endfor %}
+                    </tbody>
+                </table>
+                <table class="table table-bordered">
+                    <thead>
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.active'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.active %}
-                                    <span class="badge bg-green">{{ 'global.label.active'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-red">{{ 'global.label.inactive'|trans }}</span>
-                                {% endif %}
-                            </td>
+                            <th>Principes fondamentaux</th>
+                            <th>Conformité</th>
                         </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.public_registry'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.public == true %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                    </thead>
+                    <tbody>
+                        {% for questionConformite in object.questionConformites|sort((a, b) => a.position >= b.position) %}
+                            <tr>
+                                {% set reponse = object.conformiteTraitement.getReponseOfName(questionConformite.question) %}
+                                <td>{{ questionConformite.question }}
+                                    {% if questionConformite.justificatif is not null %}
+                                        <div style="margin-left: 20px;font-size:12px;">
+                                            <span><i>Justification : </i> {{ questionConformite.justificatif }}</span>
+                                        </div>
+                                    {% endif %}
+
+                                    {% if reponse and (reponse.actionProtections is not null) and (reponse.actionProtections|length > 0) %}
+                                        <div style="margin-left: 20px;font-size:12px;">
+                                            <span><i>Actions associées : </i> </span>
+                                        </div>
+                                        <ul>
+                                            {% for action in reponse.actionProtections %}
+                                                <li style="margin-left: 20px;font-size:12px;">{{action.name}}</li>
+                                            {% endfor %}
+                                        </ul>
+                                    {% endif %}
+                                </td>
+                                {% if reponse and reponse.conforme %}
+                                    <td><span class="label label-success" style="min-width: 100%; display: inline-block;"> Conforme</span></td>
                                 {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                    {% if reponse and reponse.actionProtections|length > 0 %}
+                                        <td><span class="label label-warning" style="min-width: 100%; display: inline-block;"> Non-conforme mineure</span></td>
+                                    {% else%}
+                                        <td><span class="label label-danger" style="min-width: 100%; display: inline-block;"> Non-conforme majeure</span></td>
+                                    {% endif %}
                                 {% endif %}
-                            </td>
-                        </tr>
+                            </tr>
+                        {% endfor %}
                     </tbody>
                 </table>
-            </div>
-        </div>
+                <p>Le graphique ci-dessous indique les points d’amélioration nécessaires au respect des principes fondamentaux du règlement.</p>
+
+                <div class="reportGraph"><canvas id="grandsDomaines-chart"></canvas></div>
+
+                <div style="page-break-before: always;"></div>
+
+                <h2>4. Études des risques liés à la sécurité des données</h2>
+                <p>Ce chapitre a pour objectifs d'obtenir une bonne connaissance des mesures contribuant à la sécurité et d'apprécier les risques.</p>
 
-        {# DATA CATEGORY #}
-        <div class="box box-solid box-warning">
-            <div class="box-header with-border"><h3 class="box-title" style="color: white">{{ 'registry.treatment.tab.data_category'|trans }}</h3></div>
-            <div class="box-body no-padding">
-                <table class="table">
+                <h3>4.1 Évaluation des risques sur les droits et les libertés des personnes concernées</h3>
+                <p>Le niveau d'un risque est estimé en termes de gravité et de vraisemblance :</p>
+                <ul>
+                    <li>La <strong>gravité</strong> représente l'ampleur d'un risque. Elle dépend essentiellement du caractère préjudiciable des imapcts potentiels ;</li>
+                    <li>La <strong>vraisemblance</strong> traduit la possibilité qu'un risque se réalise. Elle dépend essentiellement des vulnérabilités des supports face aux menaces et des capacités des sources de risques à les exploiter.</li>
+                </ul>
+
+                <div style="text-align: center"><img src="{{ base_dir ~ asset("images/NiveauRisque.png") }}" width="600" alt="Gravité + Vraisemblance = Niveau de risque"></div>
+
+                <div class="separator"></div>
+
+                <table class="table table-bordered">
+                    <thead>
+                        <tr class="table-indicateur-head">
+                            <th>Niveaux</th>
+                            <th>Descriptions génériques de l'échelle de gravité</th>
+                        </tr>
+                    </thead>
                     <tbody>
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.data_category'|trans }}</strong></td>
-                            <td>
-                                <ul class="ps-1">
-                                    {% for category in traitement.dataCategories %}
-                                        <li>
-                                            {% if category.sensible %}<strong>{% endif %}
-                                            {{ category.name }}
-                                            {% if category.sensible %}</strong>{% endif %}
-                                        </li>
-                                    {% endfor %}
-                                </ul>
-                            </td>
+                            <td class="table-indicateur-maximale">Maximale</td>
+                            <td>Les personnes concernées pourraient connaître des conséquences significatives, voire irrémédiables, qu'elles pourraient ne pas surmonter</td>
                         </tr>
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.data_category_other'|trans }}</strong></td>
-                            <td>{{ traitement.dataCategoryOther|nl2br }}</td>
+                            <td class="table-indicateur-importante">Importante</td>
+                            <td>Les personnes concernées pourraient connaître des conséquences significatives, qu'elles devraient pouvoir surmonter, mais avec des difficultés réelles et significatives</td>
                         </tr>
-                    </tbody>
-                </table>
-            </div>
-        </div>
-
-        {# RECIPIENTS #}
-        <div class="box box-solid box-primary">
-            <div class="box-header with-border"><h3 class="box-title" style="color: white">{{ 'registry.treatment.tab.recipients'|trans }}</h3></div>
-            <div class="box-body no-padding">
-                <table class="table">
-                    <tbody>
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.recipient_category'|trans }}</strong></td>
-                            <td>{{ traitement.recipientCategory|nl2br }}</td>
+                            <td class="table-indicateur-limitee">Limitée</td>
+                            <td>Les personnes concernées pourraient connaître des désagréments significatifs, qu'elles pourront surmonter malgré quelques difficultés</td>
                         </tr>
                         <tr>
-                            <td><strong>{{ 'global.label.linked_contractor'|trans }}</strong></td>
-                            <td>
-                                <ul class="ps-1">
-                                    {% for contractor in traitement.contractors %}
-                                        <li>{{ contractor }}</li>
-                                    {% endfor %}
-                                </ul>
-                            </td>
+                            <td class="table-indicateur-negligeable">Négligeable</td>
+                            <td>Les personnes concernées ne seront pas impactés ou pourraient connaître quelques désagréments, qu'elles surmonteront sans difficulté</td>
                         </tr>
                     </tbody>
                 </table>
-            </div>
-        </div>
 
-        {# SPECIFIC #}
-        <div class="box box-solid box-info">
-            <div class="box-header with-border"><h3 class="box-title" style="color: white">{{ 'registry.treatment.tab.specific'|trans }}</h3></div>
-            <div class="box-body no-padding">
-                <table class="table">
+                <table class="table table-bordered">
+                    <thead>
+                        <tr class="table-indicateur-head">
+                            <th>Niveaux</th>
+                            <th>Descriptions génériques de l'échelle de vraisemblance</th>
+                        </tr>
+                    </thead>
                     <tbody>
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.exempt_AIPD'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.ExemptAIPD %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
+                            <td class="table-indicateur-maximale">Maximale</td>
+                            <td>Il semble extrêmement facile pour les sources des risques retenues de réaliser la menace en s'appuyant sur les caractéristiques des supports (ex: vol de supports papier stockés dans le hall public de la structure).</td>
                         </tr>
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.large_scale_collection'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.largeScaleCollection %}
-                                    <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
+                            <td class="table-indicateur-importante">Importante</td>
+                            <td>Il semble possible pour les sources de risques retenues de réaliser la menace en s'appuyant sur les caractéristiques des supports (ex: vol de supports papiers stockés dans les bureaux d'une structure dont l'accès est contrôlé par une personne à l'accueil).</td>
                         </tr>
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.data_crossing'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.dataCrossing %}
-                                    <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
+                            <td class="table-indicateur-limitee">Limitée</td>
+                            <td>Il semble difficile pour les sources de risques retenues de réaliser la menace en s'appuyant sur les caractéristiques des supports (ex: vol de supports papiers stockés dans un local de la structure dont l'accès est contrôlé par badge).</td>
                         </tr>
                         <tr>
-                            <td><strong>{{ 'registry.treatment.label.automated_decisions_with_legal_effect'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.automatedDecisionsWithLegalEffect %}
-                                    <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.evaluation_or_rating'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.evaluationOrRating %}
-                                    <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.automatic_exclusion_service'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.automaticExclusionService %}
-                                    <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.vulnerable_people'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.vulnerablePeople %}
-                                    <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.systematic_monitoring'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.systematicMonitoring %}
-                                    <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.innovative_use'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.innovativeUse %}
-                                    <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
+                            <td class="table-indicateur-negligeable">Négligeable</td>
+                            <td>Il ne semble pas possible que les sources de risques retenues puissent réaliser la menace en s'appuyant sur les caractéristiques des supports (ex: vol de supports papiers stockés dans un local de la structure dont l'accès est contrôlé par badge et code d'accès).</td>
                         </tr>
                     </tbody>
                 </table>
-            </div>
-        </div>
 
-        {# DETAILS #}
-        <div class="box box-solid box-primary">
-            <div class="box-header with-border"><h3 class="box-title" style="color: white">{{ 'registry.treatment.tab.details'|trans }}</h3></div>
-            <div class="box-body no-padding">
-                <table class="table">
+                <div style="text-align: center"><img src="{{ base_dir ~ asset("images/matriceAIPD.png") }}" height="300" alt=""></div>
+
+                <div style="page-break-before: always;"></div>
+
+                <h3>4.2 Évaluation de l'impact et matrice de décision</h3>
+                <p>Le tableau ci-dessous identifie des scénarios de menaces pour lesquels une évaluation est réalisée sur la vraisemblance (risques d’occurrence) et la gravité (conséquences en cas d’évènement). D, I et C représentent les critères de classification de l'information : <b>D</b>isponibilité, <b>I</b>ntégrité, <b>C</b>onfidentialité.</p>
+                <table class="table table-bordered">
+                    <thead>
+                          <tr>
+                              <th>D</th>
+                              <th>I</th>
+                              <th>C</th>
+                              <th>Scénario de menace</th>
+                              <th>Vraisemblance</th>
+                              <th>Gravité</th>
+                              <th>Impact potentiel</th>
+                          </tr>
+                    </thead>
                     <tbody>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.concerned_people'|trans }}</strong></td>
-                        </tr>
-                        <tr>
-                            <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_particular'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.concernedPeopleParticular.check %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% if traitement.concernedPeopleParticular.comment is not empty %}
-                                        <p class="mt-2">{{ traitement.concernedPeopleParticular.comment }}</p>
+                        {% for scenario in object.scenarioMenaces|sort((a,b) => a.nom <=> b.nom) %}
+                            <tr>
+                                <td>{% if scenario.isDisponibilite %}X{% endif %}</td>
+                                <td>{% if scenario.isIntegrite %}X{% endif %}</td>
+                                <td>{% if scenario.isConfidentialite %}X{% endif %}</td>
+                                <td>{{ scenario.nom }}
+                                    {% if scenario.precisions is not null %}
+                                        <div style="margin-left: 20px;font-size:12px;">
+                                            <span><i>Précision : </i> {{ scenario.precisions }}</span>
+                                        </div>
                                     {% endif %}
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_user'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.concernedPeopleUser.check %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% if traitement.concernedPeopleUser.comment is not empty %}
-                                        <p class="mt-2">{{ traitement.concernedPeopleUser.comment }}</p>
+                                </td>
+                                <td>{{ scenario.vraisemblance|dictionary('vraisemblance_gravite') }}</td>
+                                <td>{{ scenario.gravite|dictionary('vraisemblance_gravite') }}</td>
+                                <td>{{ getScenarioMenaceImpactPotentielLabel(scenario)|raw }}</td>
+                            </tr>
+                        {% endfor %}
+                    </tbody>
+                </table>
+                <p>La CNIL préconise d’accepter les risques uniquement lorsque l’impact est négligeable. Dans les autres cas, il faudra apporter des mesures de protection supplémentaires pour venir corriger les anomalies identifiées. Dans le cas où le risque est maximal et que les mesures ne sont pas jugées suffisantes, il conviendra de solliciter l’avis de la CNIL.</p>
+                <p>La matrice de décision ci-dessous vous informe du comportement attendu par la CNIL selon le niveau d'impact identifié :</p>
+
+                <div style="text-align: center"><img src="{{ base_dir ~ asset("images/MatriceDecision.png") }}" height="300" alt=""></div>
+
+                <div style="page-break-before: always;"></div>
+
+                <h3>4.3 Mesure(s) de réduction des risques mise(s) en place</h3>
+                <p>Le radar ci-dessous présente les mesures déjà mises en place dans la structure pour réduire l’ensemble des risques identifiés.</p>
+
+                <div class="reportGraph"><canvas id="mesuresSecurite-chart"></canvas></div>
+
+                <div class="separator"></div>
+
+                <div class="box box-solid box-primary">
+                    <div class="box-header with-border">Mesures de protection</div>
+                    <table class="table table-bordered">
+                        <thead>
+                            <tr>
+                                <th>Mesure</th>
+                                <th>Avis sur les mesures existantes</th>
+                                <th>Évaluation</th>
+                                <th>Préconisations</th>
+                            </tr>
+                        </thead>
+                        <tbody>
+                            {% set mesures = [] %}
+                            {% for scenario in object.scenarioMenaces %}
+                                {% for mesure in scenario.mesuresProtections %}
+                                    {% if mesure not in mesures %}
+                                        {% set mesures = mesures|merge([mesure])%}
+                                    {% endif%}
+                                {% endfor %}
+                            {% endfor %}
+                            {% for element in mesures|sort((a, b) => a.labelLivrable >= b.labelLivrable) %}
+                                <tr>
+                                    <td>{{ element.labelLivrable }}</td>
+                                    <td>{{ element.detail }}</td>
+                                    <td>{% if element.reponse in reponsedictionary(object)|keys %}
+                                            {{ element.reponse|reponsedictionary(object) }}
+                                        {% else %}
+                                            {{ element.reponse }}
+                                        {% endif %}
+                                    </td>
+                                    {% if element.reponse is same as "satisfaisant" %}
+                                        <td></td>
+                                    {% else %}
+                                        <td>{{ element.phrasePreconisation }}</td>
                                     {% endif %}
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                </tr>
+                            {% endfor %}
+                        </tbody>
+                    </table>
+                </div>
+
+                <div style="page-break-before: always;"></div>
+
+                <h3>4.4 Risques résiduels</h3>
+                <p>Les risques résiduels correspondent aux risques non traités à ce jour ou pour lesquels des préconisations ont été formulées (voir actions conseillées par le DPD).</p>
+
+                <div class="reportGraph"><canvas id="risquesResiduels-chart"></canvas></div>
+
+                <div class="separator"></div>
+
+                <div class="box box-solid box-primary">
+                    <div class="box-header with-border">{{ 'aipd.analyse_impact.tab.gestion_risques'|trans }}</div>
+                    <div class="box-body no-padding">
+                        <table class="table table-bordered">
+                            <tr>
+                                <th>{{ 'aipd.modele_analyse.label.scenario'|trans }}</th>
+                                <th style="width: 20%;">{{ 'aipd.analyse_impact.label.impact_potentiel'|trans }}</th>
+                                <th style="width: 20%;">{{ 'aipd.analyse_impact.label.impact_residuel'|trans }}</th>
+                            </tr>
+                            {% set mesureProtectionNotNegligeable = [] %}
+                            {% for scenario in object.scenarioMenaces|sort((a, b) => a.nom >= b.nom) %}
+                                {% if isScenarioMenaceImpactResiduelImpactNotNegligeable(scenario) %}
+                                    {% for mesure in scenario.mesuresProtections %}
+                                        {% if mesure not in mesureProtectionNotNegligeable %}
+                                            {% set mesureProtectionNotNegligeable = mesureProtectionNotNegligeable|merge([mesure]) %}
+                                        {% endif %}
+                                    {% endfor %}
+                                    <tr>
+                                        <td>{{ scenario.nom }}</td>
+                                        <td>{{ getScenarioMenaceImpactPotentielLabel(scenario)|raw }}</td>
+                                        <td>{{ getScenarioMenaceImpactResiduelLabel(scenario)|raw }}</td>
+                                    </tr>
                                 {% endif %}
-                            </td>
-                        </tr>
+                            {% endfor %}
+                        </table>
+                    </div>
+                </div>
+
+                <div style="page-break-before: always;"></div>
+
+                <p>Le graphique ci-dessous représente les risques résiduels sur la disponibilité, l'intégrité et la confidentialité des données à caractère personnel.</p>
+
+                <div class="reportGraph"><canvas id="dicResiduels-chart"></canvas></div>
+
+                <div class="separator"></div>
+
+                <p>Le plan d’actions ci-après présente les mesures de sécurité liées aux seuls scénarios de menaces dont l’impact est refusé.</p>
+                <div class="box box-solid box-primary">
+                    <div class="box-header with-border">Plan d'actions</div>
+                    <div class="box-body no-padding">
+                        <table class="table table-bordered">
+                            <tr>
+                                <th>Mesure</th>
+                                <th>Préconisations</th>
+                            </tr>
+                            {% for mesure in mesureProtectionNotNegligeable|sort((a, b) => a.labelLivrable >= b.labelLivrable) %}
+                                 <tr>
+                                    <td>{{ mesure.labelLivrable }}</td>
+                                    <td>{{ mesure.phrasePreconisation }}</td>
+                                 </tr>
+                            {% endfor %}
+                        </table>
+                    </div>
+                </div>
+
+                <div style="page-break-before: always;"></div>
+
+                <h2>5. Validation de l'AIPD</h2>
+                <p>Ce chapitre a pour objectifs de permettre la prise de décision visant à accepter ou non l'AIPD au regard des résultats de l'étude.</p>
+
+                <h3>Avis des personnes consultées</h3>
+                <table class="table table-bordered">
+                    <tbody>
                         <tr>
-                            <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_agent'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.concernedPeopleAgent.check %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% if traitement.concernedPeopleAgent.comment is not empty %}
-                                        <p class="mt-2">{{ traitement.concernedPeopleAgent.comment }}</p>
-                                    {% endif %}
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
+                            <td class="table-bluecell">Avis du référent RGPD</td>
+                            <td>{{ object.avisReferent.reponse|dictionary('reponse_avis') }}</td>
                         </tr>
+                        {% if object.avisReferent.date is not null %}
+                            <tr>
+                                <td colspan="2">{{ object.avisReferent.date|date('d/m/Y') }}</td>
+                            </tr>
+                        {% endif %}
+                        {% if object.avisReferent.detail is not null %}
+                            <tr>
+                                <td colspan="2">{{ object.avisReferent.detail }}</td>
+                            </tr>
+                        {% endif %}
+                        <tr style="height: 80px"><td colspan="2">Signature :</td></tr>
                         <tr>
-                            <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_elected'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.concernedPeopleElected.check %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% if traitement.concernedPeopleElected.comment is not empty %}
-                                        <p class="mt-2">{{ traitement.concernedPeopleElected.comment }}</p>
-                                    {% endif %}
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
+                            <td class="table-bluecell">Avis du délégué à la protection des données</td>
+                            <td>{{ object.avisDpd.reponse|dictionary('reponse_avis') }}</td>
                         </tr>
+                        {% if object.avisDpd.date is not null %}
+                            <tr>
+                                <td colspan="2">{{ object.avisDpd.date|date('d/m/Y') }}</td>
+                            </tr>
+                        {% endif %}
+                        {% if object.avisDpd.detail is not null %}
+                            <tr>
+                                <td colspan="2">{{ object.avisDpd.detail }}</td>
+                            </tr>
+                        {% endif %}
+                        <tr style="height: 80px"><td colspan="2">Signature :</td></tr>
                         <tr>
-                            <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_company'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.concernedPeopleCompany.check %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% if traitement.concernedPeopleCompany.comment is not empty %}
-                                        <p class="mt-2">{{ traitement.concernedPeopleCompany.comment }}</p>
-                                    {% endif %}
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
+                            <td class="table-bluecell">Avis des représentants des personnes concernées</td>
+                            <td>{{ object.avisRepresentant.reponse|dictionary('reponse_avis') }}</td>
                         </tr>
+                        {% if object.avisRepresentant.date is not null %}
+                            <tr>
+                                <td colspan="2">{{ object.avisRepresentant.date|date('d/m/Y') }}</td>
+                            </tr>
+                        {% endif %}
+                        {% if object.avisRepresentant.detail is not null %}
+                            <tr>
+                                <td colspan="2">{{ object.avisRepresentant.detail }}</td>
+                            </tr>
+                        {% endif %}
+                        <tr style="height: 80px"><td colspan="2">Signature :</td></tr>
                         <tr>
-                            <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_partner'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.concernedPeoplePartner.check %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% if traitement.concernedPeoplePartner.comment is not empty %}
-                                        <p class="mt-2">{{ traitement.concernedPeoplePartner.comment }}</p>
-                                    {% endif %}
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
+                            <td class="table-bluecell">Décision du responsable de traitement</td>
+                            <td>{{ object.avisResponsable.reponse|dictionary('reponse_avis') }}</td>
                         </tr>
-                        <tr>
-                            <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_usager'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.concernedPeopleUsager.check %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% if traitement.concernedPeopleUsager.comment is not empty %}
-                                        <p class="mt-2">{{ traitement.concernedPeopleUsager.comment }}</p>
-                                    {% endif %}
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                        {% if object.avisResponsable.date is not null %}
+                            <tr>
+                                <td colspan="2">{{ object.avisResponsable.date|date('d/m/Y') }}</td>
+                            </tr>
+                        {% endif %}
+                        {% if object.avisResponsable.detail is not null %}
+                            <tr>
+                                <td colspan="2">{{ object.avisResponsable.detail }}</td>
+                            </tr>
+                        {% endif %}
+                        <tr style="height: 80px"><td colspan="2">Signature :</td></tr>
+                    </tbody>
+                </table>
+
+                <div style="page-break-before: always;"></div>
+
+                {#//////////////////////////////////////#}
+                {#/////////////// Annexes //////////////#}
+                {#//////////////////////////////////////#}
+                <h2>6. Annexes</h2>
+                <h3>6.1 Glossaire</h3>
+
+                <dl>
+                    <dt>Donnée à caractère personnel</dt>
+                    <dd>Toute information se rapportant à une personne physique identifiée ou identifiable (ci-après dénommée "personne concernée"); est réputée pour être une "personne physique identifiable" une personne physique qui peut être identifiée, directement ou indirectement, notamment par référence à un identifiant, tel qu'un nom, un numéro d'identification, des données de localisation, un identifiant en ligne, ou à un ou plusieurs éléments spécifiques propres à son identité physique, physiologique, génétique, psychique, économique, culturelle ou sociale.</dd>
+                    <dt>Événement redouté</dt>
+                    <dd>Violation potentielle de données pouvant mener à des impacts sur la vie privée des personnes concernées.</dd>
+                    <dt>Gravité</dt>
+                    <dd>Estimation de l'ampleur des impacts potentiels sur la vie privée des personnes concernées.</dd>
+                    <dt>Menace</dt>
+                    <dd>Mode opératoire composé d'une ou plusieurs actions unitaires sur des supports de données.</dd>
+                    <dt>Mesure</dt>
+                    <dd>Action à entreprendre.</dd>
+                    <dt>Personnes concernées</dt>
+                    <dd>Personnes auxquelles se rapportent les données qui font l'objet du traitement.</dd>
+                    <dt>Responsable de traitement</dt>
+                    <dd>La personne physique ou morale, l'autorité publique, le service ou une autre structure qui, seul ou conjointement avec d'autres, détermine les finalités et les moyens du traitement ; lorsque les finalités et les moyens de ce traitement sont déterminés par le droit de l'Union ou le droit d'un État membre, le responsable du traitement peut être désigné ou les traitements spécifiques applicables à sa désignation peuvent être prévus par le droit de l'Union ou par le droit d'un État membre.</dd>
+                    <dt>Traitement de données à caractère personnel</dt>
+                    <dd>Tout opération ou tout ensemble d'opérations effectuées ou non à l'aide de procédés automatisés et appliqués à des données ou des ensembles de données à caractère personnel, tel que la collecte, l'enregistrement, la structure, la structuration, la conservation, l'adaptation ou la modification, l'extraction, la consultation, l'utilisation, la communication par transmission, la diffusion ou tout autre forme de mise à disposition, le rapprochement ou l'interconnexion, la limitation, l'effacement ou la destruction.</dd>
+                    <dt>Vraisemblance</dt>
+                    <dd>Estimation de la possibilité qu'un risque se réalise.</dd>
+                </dl>
+
+                <h3>6.2 Références</h3>
+                <p>CNIL / CEPD</p>
+                <ul>
+                    <li><a href="https://www.cnil.fr/fr/ce-quil-faut-savoir-sur-lanalyse-dimpact-relative-la-protection-des-donnees-aipd">Ce qu'il faut savoir sur l’analyse d’impact relative à la protection des données (AIPD)</a></li>
+                    <li><a href="https://www.cnil.fr/fr/nouveautes-sur-le-pia-guides-outil-piaf-etude-de-cas">Outil PIA : téléchargez et installez le logiciel de la CNIL</a></li>
+                    <li><a href="https://www.cnil.fr/fr/collectivites-territoriales">Thématique CNIL : Collectivités territoriales </a></li>
+                    <li><a href="https://www.edpb.europa.eu/our-work-tools/our-documents/publication-type/guidelines_fr">Guides CEPD</a></li>
+                </ul>
+
+                <p>ANSSI</p>
+                <ul>
+                    <li><a href="https://www.ssi.gouv.fr/guide/la-methode-ebios-risk-manager-le-guide">EBIOS RM : Méthode d'analyse des risques</a></li>
+                    <li><a href="https://www.ssi.gouv.fr/administration/reglementation/rgpd-renforcer-la-securite-des-donnees-a-caractere-personnel">RGPD : la sécurité est essentielle pour la protection des données à caractère personnel</a></li>
+                </ul>
+
+                <p>CLUSIF</p>
+                <ul>
+                    <li><a href="https://clusif.fr/services/management-des-risques/les-fondamentaux-de-mehari/">Les fondamentaux de Méhari</a></li>
+                </ul>
+
+                <p>ISO</p>
+                <ul>
+                    <li><a href="https://www.iso.org/fr/standard/71670.html">ISO/IEC 27701:2019 : Techniques de sécurité — Extension d'ISO/IEC 27001 et ISO/IEC 27002 au management de la protection de la vie privée — Exigences et lignes directrices</a></li>
+                </ul>
+
+                <div style="page-break-before: always;"></div>
+
+                <h3>6.3 Fiche de traitement</h3>
+                {% set traitement = object.conformiteTraitement.traitement %}
+
+                {# DPO Statut #}
+                <div class="box box-solid box-default">
+                    <div class="box-header with-border"><h4 class="box-title" style="color: white">{{ 'registry.treatment.tab.statut_dpo'|trans }}</h4></div>
+                    <div class="box-body no-padding">
+                        <table role="presentation" class="table">
+                            <tbody>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.statut'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.statut is defined and traitement.statut %}
+                                            {{ traitement.statut|dictionary('treatment_statut') }}
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                {% if traitement.dpoMessage is not null %}
+                                    <tr>
+                                        <td><strong>{{ 'registry.treatment.label.dpoMessage'|trans }}</strong></td>
+                                        <td>{{ traitement.dpoMessage }}</td>
+                                    </tr>
                                 {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_other'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.concernedPeopleOther.check %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% if traitement.concernedPeopleOther.comment is not empty %}
-                                        <p class="mt-2">{{ traitement.concernedPeopleOther.comment }}</p>
-                                    {% endif %}
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+
+                {# GENERAL #}
+                <div class="box box-solid box-info">
+                    <div class="box-header with-border"><h4 class="box-title" style="color: white">{{ 'global.tab.general'|trans }}</h4></div>
+                    <div class="box-body no-padding">
+                        <table class="table">
+                            <tbody>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.name'|trans }}</strong></td>
+                                    <td>{{ traitement.name }}</td>
+                                </tr>
+                                {% if traitement.collectivity.isServicesEnabled %}
+                                    <tr>
+                                        <td><strong>{{ 'registry.label.service'|trans }}</strong></td>
+                                        <td>{{ traitement.service }}</td>
+                                    </tr>
                                 {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.estimated_concerned_people'|trans }}</strong></td>
-                            <td>{{ traitement.estimatedConcernedPeople }}</td>
-                        </tr>
-                        <tr>
-                            <td>
-                                <strong>
-                                    {% if traitement.collectivity.hasModuleTools %}
-                                        {{ 'global.label.linked_tool'|trans }}
-                                    {% else %}
-                                        {{ 'registry.treatment.label.tools_if_inactif'|trans }}
-                                    {% endif %}
-                                </strong>
-                            </td>
-                            <td>
-                                {% if traitement.collectivity.hasModuleTools %}
-                                    <ul class="ps-1">
-                                        {% for tool in traitement.tools %}
-                                            <li>{{ tool.name }}</li>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.author'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.author is not null %}
+                                            {{ traitement.author|dictionary('registry_treatment_author') }}
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                {% if traitement.author != "processing_manager" %}
+                                    <tr>
+                                        <td><strong>{{ 'registry.treatment.label.coordonnees_responsable_traitement'|trans }}</strong></td>
+                                        <td>{{ traitement.coordonneesResponsableTraitement|nl2br }}</td>
+                                    </tr>
+                                {% endif %}
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.manager'|trans }}</strong></td>
+                                    <td>{{ traitement.manager }}</td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.goal'|trans }}</strong></td>
+                                    <td>{{ traitement.goal|nl2br }}</td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.legal_basis'|trans }}</strong></td>
+                                    <td>{{ traitement.legalBasis|dictionary('registry_treatment_legal_basis') }}</td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.legal_basis_justification'|trans }}</strong></td>
+                                    <td>{{ traitement.legalBasisJustification|nl2br }}</td>
+                                </tr>
+                                {% if traitement.legalBasis == 'consent' %}
+                                    <tr>
+                                        <td><strong>{{ 'registry.treatment.label.consent_request'|trans }}</strong></td>
+                                        <td>
+                                            {% if traitement.consentRequest %}
+                                                <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% else %}
+                                                <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                            {% endif %}
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td><strong>{{ 'registry.treatment.label.consent_request_format'|trans }}</strong></td>
+                                        <td>{{ traitement.consentRequestFormat }}</td>
+                                    </tr>
+                                {% endif %}
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.observation'|trans }}</strong></td>
+                                    <td>{{ traitement.observation|nl2br }}</td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.active'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.active %}
+                                            <span class="badge bg-green">{{ 'global.label.active'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-red">{{ 'global.label.inactive'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.public_registry'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.public == true %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+
+                {# DATA CATEGORY #}
+                <div class="box box-solid box-warning">
+                    <div class="box-header with-border"><h4 class="box-title" style="color: white">{{ 'registry.treatment.tab.data_category'|trans }}</h4></div>
+                    <div class="box-body no-padding">
+                        <table class="table">
+                            <tbody>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.data_category'|trans }}</strong></td>
+                                    <td>
+                                        <ul class="ps-1">
+                                            {% for category in traitement.dataCategories %}
+                                                <li>
+                                                    {% if category.sensible %}<strong>{% endif %}
+                                                    {{ category.name }}
+                                                    {% if category.sensible %}</strong>{% endif %}
+                                                </li>
+                                            {% endfor %}
+                                        </ul>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.data_category_other'|trans }}</strong></td>
+                                    <td>{{ traitement.dataCategoryOther|nl2br }}</td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+
+                {# RECIPIENTS #}
+                <div class="box box-solid box-primary">
+                    <div class="box-header with-border"><h4 class="box-title" style="color: white">{{ 'registry.treatment.tab.recipients'|trans }}</h4></div>
+                    <div class="box-body no-padding">
+                        <table class="table">
+                            <tbody>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.recipient_category'|trans }}</strong></td>
+                                    <td>{{ traitement.recipientCategory|nl2br }}</td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'global.label.linked_contractor'|trans }}</strong></td>
+                                    <td>
+                                        <ul class="ps-1">
+                                            {% for contractor in traitement.contractors %}
+                                                <li>{{ contractor }}</li>
+                                            {% endfor %}
+                                        </ul>
+                                    </td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+
+                {# SPECIFIC #}
+                <div class="box box-solid box-info">
+                    <div class="box-header with-border"><h4 class="box-title" style="color: white">{{ 'registry.treatment.tab.specific'|trans }}</h4></div>
+                    <div class="box-body no-padding">
+                        <table class="table">
+                            <tbody>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.exempt_AIPD'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.ExemptAIPD %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.large_scale_collection'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.largeScaleCollection %}
+                                            <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.data_crossing'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.dataCrossing %}
+                                            <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.automated_decisions_with_legal_effect'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.automatedDecisionsWithLegalEffect %}
+                                            <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.evaluation_or_rating'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.evaluationOrRating %}
+                                            <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.automatic_exclusion_service'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.automaticExclusionService %}
+                                            <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.vulnerable_people'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.vulnerablePeople %}
+                                            <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.systematic_monitoring'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.systematicMonitoring %}
+                                            <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.innovative_use'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.innovativeUse %}
+                                            <span class="badge bg-yellow">{{ 'global.label.yes'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-green">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+
+                {# DETAILS #}
+                <div class="box box-solid box-primary">
+                    <div class="box-header with-border"><h4 class="box-title" style="color: white">{{ 'registry.treatment.tab.details'|trans }}</h4></div>
+                    <div class="box-body no-padding">
+                        <table class="table">
+                            <tbody>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.concerned_people'|trans }}</strong></td>
+                                </tr>
+                                <tr>
+                                    <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_particular'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.concernedPeopleParticular.check %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% if traitement.concernedPeopleParticular.comment is not empty %}
+                                                <p class="mt-2">{{ traitement.concernedPeopleParticular.comment }}</p>
+                                            {% endif %}
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_user'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.concernedPeopleUser.check %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% if traitement.concernedPeopleUser.comment is not empty %}
+                                                <p class="mt-2">{{ traitement.concernedPeopleUser.comment }}</p>
+                                            {% endif %}
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_agent'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.concernedPeopleAgent.check %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% if traitement.concernedPeopleAgent.comment is not empty %}
+                                                <p class="mt-2">{{ traitement.concernedPeopleAgent.comment }}</p>
+                                            {% endif %}
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_elected'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.concernedPeopleElected.check %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% if traitement.concernedPeopleElected.comment is not empty %}
+                                                <p class="mt-2">{{ traitement.concernedPeopleElected.comment }}</p>
+                                            {% endif %}
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_company'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.concernedPeopleCompany.check %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% if traitement.concernedPeopleCompany.comment is not empty %}
+                                                <p class="mt-2">{{ traitement.concernedPeopleCompany.comment }}</p>
+                                            {% endif %}
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_partner'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.concernedPeoplePartner.check %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% if traitement.concernedPeoplePartner.comment is not empty %}
+                                                <p class="mt-2">{{ traitement.concernedPeoplePartner.comment }}</p>
+                                            {% endif %}
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_usager'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.concernedPeopleUsager.check %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% if traitement.concernedPeopleUsager.comment is not empty %}
+                                                <p class="mt-2">{{ traitement.concernedPeopleUsager.comment }}</p>
+                                            {% endif %}
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="concerned-people-type"><strong>{{ 'registry.treatment.label.concerned_people_other'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.concernedPeopleOther.check %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% if traitement.concernedPeopleOther.comment is not empty %}
+                                                <p class="mt-2">{{ traitement.concernedPeopleOther.comment }}</p>
+                                            {% endif %}
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.estimated_concerned_people'|trans }}</strong></td>
+                                    <td>{{ traitement.estimatedConcernedPeople }}</td>
+                                </tr>
+                                <tr>
+                                    <td>
+                                        <strong>
+                                            {% if traitement.collectivity.hasModuleTools %}
+                                                {{ 'global.label.linked_tool'|trans }}
+                                            {% else %}
+                                                {{ 'registry.treatment.label.tools_if_inactif'|trans }}
+                                            {% endif %}
+                                        </strong>
+                                    </td>
+                                    <td>
+                                        {% if traitement.collectivity.hasModuleTools %}
+                                            <ul class="ps-1">
+                                                {% for tool in traitement.tools %}
+                                                    <li>{{ tool.name }}</li>
+                                                {% endfor %}
+                                            </ul>
+                                        {% else %}
+                                            {{ traitement.software }}
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.paper_processing'|trans }}</strong></td>
+                                    <td>
+                                        {% if traitement.paperProcessing %}
+                                            <span class="badge bg-gray">{{ 'global.label.yes'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-gray">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
+                                    </td>
+                                </tr>
+                            </tbody>
+                        </table>
+                        <table class="table" style="border-top: #f4f4f4 1px solid">
+                            <tbody>
+                                <tr>
+                                    <td style="vertical-align: top; padding-left: 8px; padding-top: 10px; width: 20%"><strong>{{ 'registry.treatment.label.shelflife'|trans }}</strong></td>
+                                    <td style="padding-top: 10px; width: 80%">
+                                        {% for method in traitement.shelfLifes %}
+                                            <div class="box box-default">
+                                                <div class="box-body no-padding">
+                                                    <table class="table">
+                                                        <tbody>
+                                                            <tr>
+                                                                <th class="text-bold" style="width: 40%">{{ 'registry.treatment.label.shelflife_name'|trans }}</th>
+                                                                <td>{{ method.name }}</td>
+                                                            </tr>
+                                                            <tr>
+                                                                <th class="text-bold">{{ 'registry.treatment.label.shelflife_duration'|trans }}</th>
+                                                                <td>{{ method.duration }}</td>
+                                                            </tr>
+                                                            <tr>
+                                                                <th class="text-bold">{{ 'registry.treatment.label.shelflife_ultimate_fate'|trans }}</th>
+                                                                <td>{{ method.ultimateFate|dictionary('registry_treatment_ultimate_fate') }}</td>
+                                                            </tr>
+                                                        </tbody>
+                                                    </table>
+                                                </div>
+                                            </div>
                                         {% endfor %}
-                                    </ul>
-                                {% else %}
-                                    {{ traitement.software }}
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.paper_processing'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.paperProcessing %}
-                                    <span class="badge bg-gray">{{ 'global.label.yes'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-gray">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                    </tbody>
-                </table>
-                <table class="table" style="border-top: #f4f4f4 1px solid">
-                    <tbody>
-                        <tr>
-                            <td style="vertical-align: top; padding-left: 8px; padding-top: 10px; width: 20%"><strong>{{ 'registry.treatment.label.shelflife'|trans }}</strong></td>
-                            <td style="padding-top: 10px; width: 80%">
-                                {% for method in traitement.shelfLifes %}
-                                    <div class="box box-default">
-                                        <div class="box-body no-padding">
-                                            <table class="table">
-                                                <tbody>
-                                                    <tr>
-                                                        <th class="text-bold" style="width: 40%">{{ 'registry.treatment.label.shelflife_name'|trans }}</th>
-                                                        <td>{{ method.name }}</td>
-                                                    </tr>
-                                                    <tr>
-                                                        <th class="text-bold">{{ 'registry.treatment.label.shelflife_duration'|trans }}</th>
-                                                        <td>{{ method.duration }}</td>
-                                                    </tr>
-                                                    <tr>
-                                                        <th class="text-bold">{{ 'registry.treatment.label.shelflife_ultimate_fate'|trans }}</th>
-                                                        <td>{{ method.ultimateFate|dictionary('registry_treatment_ultimate_fate') }}</td>
-                                                    </tr>
-                                                </tbody>
-                                            </table>
-                                        </div>
-                                    </div>
-                                {% endfor %}
-                            </td>
-                        </tr>
-                    </tbody>
-                </table>
-                <table class="table">
-                    <tbody>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.data_origin'|trans }}</strong></td>
-                            <td>{{ traitement.dataOrigin }}</td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.collecting_method'|trans }}</strong></td>
-                            <td>
-                                <ul class="ps-1">
-                                    {% for method in traitement.collectingMethod %}
-                                        <li>{{ method|dictionary('registry_treatment_collecting_method') }}</li>
-                                    {% endfor %}
-                                </ul>
-                            </td>
-                        </tr>
-                        {% if  traitement.otherCollectingMethod is not null %}
-                            <tr>
-                                <td><strong>{{ 'registry.treatment.label.otherCollectingMethod'|trans }}</strong></td>
-                                <td>{{ traitement.otherCollectingMethod }}</td>
-                            </tr>
-                        {% endif %}
-                    </tbody>
-                </table>
-            </div>
-        </div>
-
-        {# SECURITY #}
-        <div class="box box-solid box-success">
-            <div class="box-header with-border"><h3 class="box-title" style="color: white">{{ 'registry.treatment.tab.security'|trans }}</h3></div>
-            <div class="box-body no-padding">
-                <table class="table">
-                    <tbody>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.security_access_control'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.securityAccessControl.check %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% if traitement.securityAccessControl.comment is not empty %}
-                                        <p class="mt-2">{{ traitement.securityAccessControl.comment }}</p>
-                                    {% endif %}
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.security_update'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.securityUpdate.check %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% if traitement.securityUpdate.comment is not empty %}
-                                        <p class="mt-2">{{ traitement.securityUpdate.comment }}</p>
-                                    {% endif %}
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.security_saving'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.securitySaving.check %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% if traitement.securitySaving.comment is not empty %}
-                                        <p class="mt-2">{{ traitement.securitySaving.comment }}</p>
-                                    {% endif %}
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.security_tracability'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.securitytracability.check %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% if traitement.securitytracability.comment is not empty %}
-                                        <p class="mt-2">{{ traitement.securitytracability.comment }}</p>
-                                    {% endif %}
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.security_other'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.securityOther.check %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                    {% if traitement.securityOther.comment is not empty %}
-                                        <p class="mt-2">{{ traitement.securityOther.comment }}</p>
-                                    {% endif %}
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.security_entitled_persons'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.securityEntitledPersons %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.security_open_accounts'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.securityOpenAccounts %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
-                                {% endif %}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'registry.treatment.label.security_specificities_delivered'|trans }}</strong></td>
-                            <td>
-                                {% if traitement.securitySpecificitiesDelivered %}
-                                    <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
-                                {% else %}
-                                    <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                    </td>
+                                </tr>
+                            </tbody>
+                        </table>
+                        <table class="table">
+                            <tbody>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.data_origin'|trans }}</strong></td>
+                                    <td>{{ traitement.dataOrigin }}</td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.collecting_method'|trans }}</strong></td>
+                                    <td>
+                                        <ul class="ps-1">
+                                            {% for method in traitement.collectingMethod %}
+                                                <li>{{ method|dictionary('registry_treatment_collecting_method') }}</li>
+                                            {% endfor %}
+                                        </ul>
+                                    </td>
+                                </tr>
+                                {% if traitement.otherCollectingMethod is not null %}
+                                    <tr>
+                                        <td><strong>{{ 'registry.treatment.label.otherCollectingMethod'|trans }}</strong></td>
+                                        <td>{{ traitement.otherCollectingMethod }}</td>
+                                    </tr>
                                 {% endif %}
-                            </td>
-                        </tr>
-                    </tbody>
-                </table>
-            </div>
-        </div>
-
-        {# LINKED MODULES #}
-        <div class="box box-solid box-warning">
-            <div class="box-header with-border"><h3 class="box-title" style="color: white">{{ 'global.tab.linked_modules'|trans }}</h3></div>
-            <div class="box-body no-padding">
-                <table class="table">
-                    <tbody>
-                        {# TREATMENTS #}
-                        {% include '_Utils/_show_block_treatments.html.twig' with { treatments: traitement.treatments } %}
-                        {# REQUESTS #}
-                        {% include '_Utils/_show_block_requests.html.twig' with { requests: traitement.requests } %}
-                        {# VIOLATIONS #}
-                        {% include '_Utils/_show_block_violations.html.twig' with { violations: traitement.violations } %}
-                        {# PROOFS #}
-                        {% include '_Utils/_show_block_proofs.html.twig' with { proofs: traitement.proofs } %}
-                        {# MESUREMENTS #}
-                        {% include '_Utils/_show_block_mesurements.html.twig' with { mesurements: traitement.mesurements } %}
-                    </tbody>
-                </table>
-            </div>
-        </div>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
 
-        {# TREATMENT CONFORMITY & AIPD #}
-        {% if traitement.collectivity.hasModuleConformiteTraitement %}
-            {# TREATMENT CONFORMITY #}
-            <div class="box box-solid box-success">
-                <div class="box-header with-border"><h3 class="box-title" style="color: white">{{ 'registry.treatment.tab.conformite'|trans }}</h3></div>
-                <div class="box-body no-padding">
-                    <table role="presentation" class="table">
-                        <tbody>
-                            <tr>
-                                <td style="width: 35%">
-                                    <strong>{{ 'registry.treatment.label.last_conformite_traitement'|trans }}</strong>
-                                </td>
-                                <td>
-                                    {% if traitement.conformiteTraitement is not null %}
-                                        {{ traitement.conformiteTraitement.updatedAt|date('d/m/Y') }}
-                                    {% else %}
-                                        <i>{{ 'registry.treatment.label.no_conformite_traitement'|trans }}</i>
-                                    {% endif %}
-                                </td>
-                            </tr>
-                            {% if traitement.conformiteTraitement is not null %}
+                {# SECURITY #}
+                <div class="box box-solid box-success">
+                    <div class="box-header with-border"><h4 class="box-title" style="color: white">{{ 'registry.treatment.tab.security'|trans }}</h4></div>
+                    <div class="box-body no-padding">
+                        <table class="table">
+                            <tbody>
                                 <tr>
+                                    <td><strong>{{ 'registry.treatment.label.security_access_control'|trans }}</strong></td>
                                     <td>
-                                        <strong>{{ 'registry.conformite_traitement.label.conformite_traitement'|trans }}</strong>
+                                        {% if traitement.securityAccessControl.check %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% if traitement.securityAccessControl.comment is not empty %}
+                                                <p class="mt-2">{{ traitement.securityAccessControl.comment }}</p>
+                                            {% endif %}
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
                                     </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.security_update'|trans }}</strong></td>
                                     <td>
-                                        {{ getConformiteTraitementLabel(traitement.conformiteTraitement)|raw }}
+                                        {% if traitement.securityUpdate.check %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% if traitement.securityUpdate.comment is not empty %}
+                                                <p class="mt-2">{{ traitement.securityUpdate.comment }}</p>
+                                            {% endif %}
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
                                     </td>
                                 </tr>
                                 <tr>
+                                    <td><strong>{{ 'registry.treatment.label.security_saving'|trans }}</strong></td>
                                     <td>
-                                        <strong>{{ 'registry.conformite_traitement.label.conformite_reponse'|trans }}</strong>
+                                        {% if traitement.securitySaving.check %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% if traitement.securitySaving.comment is not empty %}
+                                                <p class="mt-2">{{ traitement.securitySaving.comment }}</p>
+                                            {% endif %}
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
                                     </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.security_tracability'|trans }}</strong></td>
                                     <td>
-                                        {% set nbTotal = traitement.conformiteTraitement.nbConformes + traitement.conformiteTraitement.nbNonConformesMineures + traitement.conformiteTraitement.nbNonConformesMajeures %}
-                                        {% set widthNbConforme = ((traitement.conformiteTraitement.nbConformes * 100) / nbTotal)|round %}
-                                        {% set widthnbNonConformesMineures = ((traitement.conformiteTraitement.nbNonConformesMineures * 100) / nbTotal)|round %}
-                                        {% set widthnbNonConformesMajeures = 100 - (widthNbConforme + widthnbNonConformesMineures) %}
-                                        <div class="stacked-bar-graph">
-                                            {% if widthNbConforme %}<span style="width:{{ widthNbConforme }}%" class="bar-conforme tooltipchart"><span class="tooltipcharttext">{{ 'registry.conformite_traitement.label.tooltip.conforme'|trans }} {{ traitement.conformiteTraitement.nbConformes }}</span></span>{% endif %}
-                                            {% if widthnbNonConformesMineures %}<span style="width:{{ widthnbNonConformesMineures }}%" class="bar-non-conforme-mineure tooltipchart"><span class="tooltipcharttext">{{ 'registry.conformite_traitement.label.tooltip.minor_conforme'|trans }} {{ traitement.conformiteTraitement.nbNonConformesMineures }}</span></span>{% endif %}
-                                            {% if widthnbNonConformesMajeures %}<span style="width:{{ widthnbNonConformesMajeures }}%" class="bar-non-conforme-majeure tooltipchart"><span class="tooltipcharttext">{{ 'registry.conformite_traitement.label.tooltip.major_conforme'|trans }} {{ traitement.conformiteTraitement.nbNonConformesMajeures }}</span></span>{% endif %}
-                                        </div>
+                                        {% if traitement.securitytracability.check %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% if traitement.securitytracability.comment is not empty %}
+                                                <p class="mt-2">{{ traitement.securitytracability.comment }}</p>
+                                            {% endif %}
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
                                     </td>
                                 </tr>
-                            {% endif %}
-                        </tbody>
-                    </table>
-                </div>
-            </div>
-            {# AIPD #}
-            {% if traitement.conformiteTraitement is not null %}
-                {% set analyseImpact = traitement.conformiteTraitement.lastAnalyseImpact %}
-            {% endif %}
-            <div class="box box-solid box-primary">
-                <div class="box-header with-border"><h3 class="box-title" style="color: white">{{ 'registry.treatment.tab.last_aipd'|trans }}</h3></div>
-                <div class="box-body no-padding">
-                    <table role="presentation" class="table">
-                        <tbody>
-                            <tr>
-                                <td style="width: 35%">
-                                    <strong>{{ 'aipd.treatment.label.last_aipd'|trans }}</strong>
-                                </td>
-                                <td>
-                                    {% if traitement.conformiteTraitement is null %}
-                                        <i>{{ 'aipd.treatment.label.no_conformite_traitement'|trans }}</i>
-                                    {% elseif traitement.conformiteTraitement is not null and analyseImpact is null %}
-                                        <i>{{ 'aipd.treatment.label.no_aipd'|trans }}</i>
-                                    {% else %}
-                                        {{ analyseImpact.createdAt|date('d/m/Y') }}
-                                    {% endif %}
-                                </td>
-                            </tr>
-                            {% if traitement.conformiteTraitement is not null and analyseImpact is not null %}
                                 <tr>
+                                    <td><strong>{{ 'registry.treatment.label.security_other'|trans }}</strong></td>
                                     <td>
-                                        <strong>{{ 'aipd.treatment.label.avis_aipd'|trans }}</strong>
+                                        {% if traitement.securityOther.check %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                            {% if traitement.securityOther.comment is not empty %}
+                                                <p class="mt-2">{{ traitement.securityOther.comment }}</p>
+                                            {% endif %}
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
                                     </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.security_entitled_persons'|trans }}</strong></td>
                                     <td>
-                                        {% set labelAipdColor = "label-default" %}
-                                        {% if analyseImpact.statut == "defavorable" %}
-                                            {% set labelAipdColor = "label-danger" %}
-                                        {% elseif analyseImpact.statut == "favorable_reserve" %}
-                                            {% set labelAipdColor = "label-warning" %}
-                                        {% elseif analyseImpact.statut == "favorable" %}
-                                            {% set labelAipdColor = "label-success" %}
+                                        {% if traitement.securityEntitledPersons %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
                                         {% endif %}
-                                        {% set statut = analyseImpact.statut %}
-                                        {% set labelStatut = "aipd.analyse_impact.values." ~ traitement.conformiteTraitement.lastAnalyseImpact.statut %}
-                                        <span class="label {{ labelAipdColor }}" style="display: inline-block;">
-                                            {{ labelStatut|trans}}
-                                        </span>
                                     </td>
                                 </tr>
                                 <tr>
+                                    <td><strong>{{ 'registry.treatment.label.security_open_accounts'|trans }}</strong></td>
                                     <td>
-                                        <strong>{{ 'aipd.analyse_impact.list.date_validation'|trans }}</strong>
+                                        {% if traitement.securityOpenAccounts %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
+                                        {% else %}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
+                                        {% endif %}
                                     </td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'registry.treatment.label.security_specificities_delivered'|trans }}</strong></td>
                                     <td>
-                                        {% if analyseImpact.isValidated %}
-                                            {{ analyseImpact.dateValidation|date('d/m/Y') }}
+                                        {% if traitement.securitySpecificitiesDelivered %}
+                                            <span class="badge bg-green">{{ 'global.label.yes'|trans }}</span>
                                         {% else %}
-                                            {{ 'aipd.treatment.label.validation_in_progress'|trans }}
+                                            <span class="badge bg-yellow">{{ 'global.label.no'|trans }}</span>
                                         {% endif %}
                                     </td>
                                 </tr>
-                            {% endif %}
-                        </tbody>
-                    </table>
+                            </tbody>
+                        </table>
+                    </div>
                 </div>
-            </div>
-        {% endif %}
-
-        {# HISTORIC #}
-        <div class="box box-solid box-default">
-            <div class="box-header with-border"><h3 class="box-title" style="color: white">{{ 'global.tab.history'|trans }}</h3></div>
-            <div class="box-body no-padding">
-                <table class="table">
-                    <tbody>
-                        {% if is_granted('ROLE_REFERENT') %}
-                            <tr>
-                                <td><strong>{{ 'global.label.organization'|trans }}</strong></td>
-                                <td>
-                                    {{ traitement.collectivity }}
-                                </td>
-                            </tr>
-                        {% endif %}
-                        <tr>
-                            <td><strong>{{ 'global.label.created_at'|trans }}</strong></td>
-                            <td>{{ traitement.createdAt|date('d/m/Y H:i') }}</td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'global.label.updated_at'|trans }}</strong></td>
-                            <td>{{ traitement.updatedAt|date('d/m/Y H:i') }}</td>
-                        </tr>
-                        <tr>
-                            <td><strong>{{ 'global.label.updated_by'|trans }}</strong></td>
-                            <td>{{ traitement.updatedBy }}</td>
-                        </tr>
-                    </tbody>
-                </table>
-            </div>
+
+                {# LINKED MODULES #}
+                <div class="box box-solid box-warning">
+                    <div class="box-header with-border"><h4 class="box-title" style="color: white">{{ 'global.tab.linked_modules'|trans }}</h4></div>
+                    <div class="box-body no-padding">
+                        <table class="table">
+                            <tbody>
+                                {# TREATMENTS #}
+                                {% include '_Utils/_show_block_treatments.html.twig' with { treatments: traitement.treatments } %}
+                                {# REQUESTS #}
+                                {% include '_Utils/_show_block_requests.html.twig' with { requests: traitement.requests } %}
+                                {# VIOLATIONS #}
+                                {% include '_Utils/_show_block_violations.html.twig' with { violations: traitement.violations } %}
+                                {# PROOFS #}
+                                {% include '_Utils/_show_block_proofs.html.twig' with { proofs: traitement.proofs } %}
+                                {# MESUREMENTS #}
+                                {% include '_Utils/_show_block_mesurements.html.twig' with { mesurements: traitement.mesurements } %}
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+
+                {# TREATMENT CONFORMITY & AIPD #}
+                {% if traitement.collectivity.hasModuleConformiteTraitement %}
+                    {# TREATMENT CONFORMITY #}
+                    <div class="box box-solid box-success">
+                        <div class="box-header with-border"><h4 class="box-title" style="color: white">{{ 'registry.treatment.tab.conformite'|trans }}</h4></div>
+                        <div class="box-body no-padding">
+                            <table role="presentation" class="table">
+                                <tbody>
+                                    <tr>
+                                        <td style="width: 35%">
+                                            <strong>{{ 'registry.treatment.label.last_conformite_traitement'|trans }}</strong>
+                                        </td>
+                                        <td>
+                                            {% if traitement.conformiteTraitement is not null %}
+                                                {{ traitement.conformiteTraitement.updatedAt|date('d/m/Y') }}
+                                            {% else %}
+                                                <i>{{ 'registry.treatment.label.no_conformite_traitement'|trans }}</i>
+                                            {% endif %}
+                                        </td>
+                                    </tr>
+                                    {% if traitement.conformiteTraitement is not null %}
+                                        <tr>
+                                            <td>
+                                                <strong>{{ 'registry.conformite_traitement.label.conformite_traitement'|trans }}</strong>
+                                            </td>
+                                            <td>
+                                                {{ getConformiteTraitementLabel(traitement.conformiteTraitement)|raw }}
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>
+                                                <strong>{{ 'registry.conformite_traitement.label.conformite_reponse'|trans }}</strong>
+                                            </td>
+                                            <td>
+                                                {% set nbTotal = traitement.conformiteTraitement.nbConformes + traitement.conformiteTraitement.nbNonConformesMineures + traitement.conformiteTraitement.nbNonConformesMajeures %}
+                                                {% set widthNbConforme = ((traitement.conformiteTraitement.nbConformes * 100) / nbTotal)|round %}
+                                                {% set widthnbNonConformesMineures = ((traitement.conformiteTraitement.nbNonConformesMineures * 100) / nbTotal)|round %}
+                                                {% set widthnbNonConformesMajeures = 100 - (widthNbConforme + widthnbNonConformesMineures) %}
+                                                <div class="stacked-bar-graph">
+                                                    {% if widthNbConforme %}<span style="width:{{ widthNbConforme }}%" class="bar-conforme tooltipchart"><span class="tooltipcharttext">{{ 'registry.conformite_traitement.label.tooltip.conforme'|trans }} {{ traitement.conformiteTraitement.nbConformes }}</span></span>{% endif %}
+                                                    {% if widthnbNonConformesMineures %}<span style="width:{{ widthnbNonConformesMineures }}%" class="bar-non-conforme-mineure tooltipchart"><span class="tooltipcharttext">{{ 'registry.conformite_traitement.label.tooltip.minor_conforme'|trans }} {{ traitement.conformiteTraitement.nbNonConformesMineures }}</span></span>{% endif %}
+                                                    {% if widthnbNonConformesMajeures %}<span style="width:{{ widthnbNonConformesMajeures }}%" class="bar-non-conforme-majeure tooltipchart"><span class="tooltipcharttext">{{ 'registry.conformite_traitement.label.tooltip.major_conforme'|trans }} {{ traitement.conformiteTraitement.nbNonConformesMajeures }}</span></span>{% endif %}
+                                                </div>
+                                            </td>
+                                        </tr>
+                                    {% endif %}
+                                </tbody>
+                            </table>
+                        </div>
+                    </div>
+                    {# AIPD #}
+                    {% if traitement.conformiteTraitement is not null %}
+                        {% set analyseImpact = traitement.conformiteTraitement.lastAnalyseImpact %}
+                    {% endif %}
+                    <div class="box box-solid box-primary">
+                        <div class="box-header with-border"><h4 class="box-title" style="color: white">{{ 'registry.treatment.tab.last_aipd'|trans }}</h4></div>
+                        <div class="box-body no-padding">
+                            <table role="presentation" class="table">
+                                <tbody>
+                                    <tr>
+                                        <td style="width: 35%">
+                                            <strong>{{ 'aipd.treatment.label.last_aipd'|trans }}</strong>
+                                        </td>
+                                        <td>
+                                            {% if traitement.conformiteTraitement is null %}
+                                                <i>{{ 'aipd.treatment.label.no_conformite_traitement'|trans }}</i>
+                                            {% elseif traitement.conformiteTraitement is not null and analyseImpact is null %}
+                                                <i>{{ 'aipd.treatment.label.no_aipd'|trans }}</i>
+                                            {% else %}
+                                                {{ analyseImpact.createdAt|date('d/m/Y') }}
+                                            {% endif %}
+                                        </td>
+                                    </tr>
+                                    {% if traitement.conformiteTraitement is not null and analyseImpact is not null %}
+                                        <tr>
+                                            <td>
+                                                <strong>{{ 'aipd.treatment.label.avis_aipd'|trans }}</strong>
+                                            </td>
+                                            <td>
+                                                {% set labelAipdColor = "label-default" %}
+                                                {% if analyseImpact.statut == "defavorable" %}
+                                                    {% set labelAipdColor = "label-danger" %}
+                                                {% elseif analyseImpact.statut == "favorable_reserve" %}
+                                                    {% set labelAipdColor = "label-warning" %}
+                                                {% elseif analyseImpact.statut == "favorable" %}
+                                                    {% set labelAipdColor = "label-success" %}
+                                                {% endif %}
+                                                {% set statut = analyseImpact.statut %}
+                                                {% set labelStatut = "aipd.analyse_impact.values." ~ traitement.conformiteTraitement.lastAnalyseImpact.statut %}
+                                                <span class="label {{ labelAipdColor }}" style="display: inline-block;">
+                                                    {{ labelStatut|trans}}
+                                                </span>
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>
+                                                <strong>{{ 'aipd.analyse_impact.list.date_validation'|trans }}</strong>
+                                            </td>
+                                            <td>
+                                                {% if analyseImpact.isValidated %}
+                                                    {{ analyseImpact.dateValidation|date('d/m/Y') }}
+                                                {% else %}
+                                                    {{ 'aipd.treatment.label.validation_in_progress'|trans }}
+                                                {% endif %}
+                                            </td>
+                                        </tr>
+                                    {% endif %}
+                                </tbody>
+                            </table>
+                        </div>
+                    </div>
+                {% endif %}
+
+                {# HISTORIC #}
+                <div class="box box-solid box-default">
+                    <div class="box-header with-border"><h4 class="box-title" style="color: white">{{ 'global.tab.history'|trans }}</h4></div>
+                    <div class="box-body no-padding">
+                        <table class="table">
+                            <tbody>
+                                {% if is_granted('ROLE_REFERENT') %}
+                                    <tr>
+                                        <td><strong>{{ 'global.label.organization'|trans }}</strong></td>
+                                        <td>
+                                            {{ traitement.collectivity }}
+                                        </td>
+                                    </tr>
+                                {% endif %}
+                                <tr>
+                                    <td><strong>{{ 'global.label.created_at'|trans }}</strong></td>
+                                    <td>{{ traitement.createdAt|date('d/m/Y H:i') }}</td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'global.label.updated_at'|trans }}</strong></td>
+                                    <td>{{ traitement.updatedAt|date('d/m/Y H:i') }}</td>
+                                </tr>
+                                <tr>
+                                    <td><strong>{{ 'global.label.updated_by'|trans }}</strong></td>
+                                    <td>{{ traitement.updatedBy }}</td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+            </section>
         </div>
-    </div>
-</div>
-
-<script type="text/javascript">
-    // wkhtmltopdf 0.12.5 crash fix.
-    // https://github.com/wkhtmltopdf/wkhtmltopdf/issues/3242#issuecomment-518099192
-    'use strict';
-    (function(setLineDash) {
-        CanvasRenderingContext2D.prototype.setLineDash = function() {
-            if(!arguments[0].length){
-                arguments[0] = [1,0];
-            }
-            // Now, call the original method
-            return setLineDash.apply(this, arguments);
-        };
-    })(CanvasRenderingContext2D.prototype.setLineDash);
-    Function.prototype.bind = Function.prototype.bind || function (thisp) {
-        var fn = this;
-        return function () {
-            return fn.apply(thisp, arguments);
-        };
-    };
-
-    function radarChart(id, labels, serieLabel, data, color) {
-        var dataset = [];
-        data.forEach(function(item, index) {
-            dataset.push(
-                {
-                    label: serieLabel[index],
-                    data: item,
-                    backgroundColor: color[index],
-                }
-            );
-        });
-        new Chart(
-            document.getElementById(id), {
-                "responsive": false,
-                "type":"radar",
-                "data":{
-                    "labels":labels,
-                    "datasets":dataset
-                },
-                "options":{
-                    "scale": {
-                        "ticks": {
-                            "min": 0,
-                            "max": 5,
+
+        <script type="text/javascript">
+            // wkhtmltopdf 0.12.5 crash fix.
+            // https://github.com/wkhtmltopdf/wkhtmltopdf/issues/3242#issuecomment-518099192
+            'use strict';
+            (function(setLineDash) {
+                CanvasRenderingContext2D.prototype.setLineDash = function() {
+                    if(!arguments[0].length){
+                        arguments[0] = [1,0];
+                    }
+                    // Now, call the original method
+                    return setLineDash.apply(this, arguments);
+                };
+            })(CanvasRenderingContext2D.prototype.setLineDash);
+            Function.prototype.bind = Function.prototype.bind || function (thisp) {
+                var fn = this;
+                return function () {
+                    return fn.apply(thisp, arguments);
+                };
+            };
+
+            function radarChart(id, labels, serieLabel, data, color) {
+                var dataset = [];
+                data.forEach(function(item, index) {
+                    dataset.push(
+                        {
+                            label: serieLabel[index],
+                            data: item,
+                            backgroundColor: color[index],
+                        }
+                    );
+                });
+                new Chart(
+                    document.getElementById(id), {
+                        "responsive": false,
+                        "type":"radar",
+                        "data":{
+                            "labels":labels,
+                            "datasets":dataset
                         },
-                    },
-                    "legend": {
-                        "display" : false,
+                        "options":{
+                            "scale": {
+                                "ticks": {
+                                    "min": 0,
+                                    "max": 5,
+                                },
+                            },
+                            "legend": {
+                                "display" : false,
+                            }
+                        }
                     }
-                }
+                );
             }
-        );
-    }
-
-    function stackedBarChart(id, labels, data) {
-
-        new Chart(document.getElementById(id), {
-            type: 'bar',
-            data: {
-                labels: labels,
-                datasets: data,
-            },
-            options: {
-                scales: {
-                    yAxes: [{
-                        stacked: true,
-                        ticks : {
-                            beginAtZero: false,
-                            stepSize: 1,
-                            callback: function(label, index, labels) {
-                                switch (label) {
-                                    case 1:
-                                        return 'Négligeable'
-                                    case 2:
-                                        return 'Limité'
-                                    case 3:
-                                        return 'Important'
-                                    case 4:
-                                        return 'Maximal'
-                                }
-                            }
-                        },
 
-                    }],
-                    xAxes: [{
-                        stacked: true,
-                    }],
-                    x: {
-                        stacked: true,
-                    },
-                    y: {
-                        stacked: true,
+            function stackedBarChart(id, labels, data) {
+
+                new Chart(document.getElementById(id), {
+                    type: 'bar',
+                    data: {
+                        labels: labels,
+                        datasets: data,
                     },
-                },
-                animation: {
-                    duration: 0
-                }
-            }
-        });
-    }
-
-    function bubbleChart(id, labels, data) {
-        new Chart(document.getElementById(id), {
-            type: 'bubble',
-            data: {
-                datasets: data,
-            },
-            options: {
-                layout: {
-                    padding: {
-                        left: 50,
-                        right: 50,
-                        top: 0,
-                        bottom: 0
-                    }
-                },
-                scales: {
-                    yAxes: [{
-                        gridLines: {
-                            offsetGridLines: true,
-                        },
-                        ticks : {
-                            stepSize: 1,
-                            min: 0,
-                            max: 4,
+                    options: {
+                        scales: {
+                            yAxes: [{
+                                stacked: true,
+                                ticks : {
+                                    beginAtZero: false,
+                                    stepSize: 1,
+                                    callback: function(label, index, labels) {
+                                        switch (label) {
+                                            case 1:
+                                                return 'Négligeable'
+                                            case 2:
+                                                return 'Limité'
+                                            case 3:
+                                                return 'Important'
+                                            case 4:
+                                                return 'Maximal'
+                                        }
+                                    }
+                                },
+
+                            }],
+                            xAxes: [{
+                                stacked: true,
+                            }],
+                            x: {
+                                stacked: true,
+                            },
+                            y: {
+                                stacked: true,
+                            },
                         },
-                        scaleLabel: {
-                            display: true,
-                            labelString: 'Gravité',
+                        animation: {
+                            duration: 0
                         }
-                    }],
-                    xAxes: [{
-                        gridLines: {
-                            offsetGridLines: true
-                        },
-                        ticks : {
-                            stepSize: 1,
-                            min: 0,
-                            max: 4,
+                    }
+                });
+            }
+
+            function bubbleChart(id, labels, data) {
+                new Chart(document.getElementById(id), {
+                    type: 'bubble',
+                    data: {
+                        datasets: data,
+                    },
+                    options: {
+                        layout: {
+                            padding: {
+                                left: 50,
+                                right: 50,
+                                top: 0,
+                                bottom: 0
+                            }
                         },
-                        scaleLabel: {
-                            display: true,
-                            labelString: 'Vraisemblance',
+                        scales: {
+                            yAxes: [{
+                                gridLines: {
+                                    offsetGridLines: true,
+                                },
+                                ticks : {
+                                    stepSize: 1,
+                                    min: 0,
+                                    max: 4,
+                                },
+                                scaleLabel: {
+                                    display: true,
+                                    labelString: 'Gravité',
+                                }
+                            }],
+                            xAxes: [{
+                                gridLines: {
+                                    offsetGridLines: true
+                                },
+                                ticks : {
+                                    stepSize: 1,
+                                    min: 0,
+                                    max: 4,
+                                },
+                                scaleLabel: {
+                                    display: true,
+                                    labelString: 'Vraisemblance',
+                                },
+                            }],
                         },
-                    }],
-                },
-                animation: {
-                    duration: 0
-                }
+                        animation: {
+                            duration: 0
+                        }
+                    }
+                });
             }
-        });
-    }
-
-    var colorBlue = 'rgba(54, 162, 235, 0.5)';
-    var colorPurple = 'rgba(153, 51, 204, 0.5)';
-    var colorTeal = 'rgba(109, 199, 200, 1)';
-    var colorPink = 'rgba(243, 109, 143, 1)';
-
-    var domainesLabels = [];
-    var domainesDatas = [];
-
-
-    {% for critere in object.criterePrincipeFondamentaux %}
-        {% if critere.reponse != 'non_applicable' %}
-            domainesLabels.push("{{ critere.label|u.truncate(28,'...')|raw|escape('js') }}");
-            {% if critere.reponse == 'conforme' %}
-                domainesDatas.push(5);
-            {% else %}
-                domainesDatas.push(1);
-            {% endif %}
-        {% endif %}
-    {% endfor %}
-
-    {% for question in object.questionConformites|sort((a, b) => a.position >= b.position) %}
-        {% set reponse = object.conformiteTraitement.reponseOfName(question.question) %}
-        {% if reponse and reponse.conforme %}
-            domainesDatas.push(5);
-        {% elseif reponse and reponse.actionProtections is not empty %}
-            domainesDatas.push(3);
-        {% else %}
-            domainesDatas.push(1);
-        {% endif %}
-        domainesLabels.push("{{ question.question|u.truncate(28, "...")|raw|escape('js') }}");
-    {% endfor %}
-    /* The format of the data used by the chart is [[],[]] but here we use only 1 set of data */
-    domainesDatas = [domainesDatas];
-
-    var mesuresLabels = [];
-    var mesuresDatas = [];
-    var risquesLabels = [];
-    var risquesDataSet1 = [];
-    var risquesDataSet2 = [];
-    var dicResiduelsData = [];
-    var risquesResiduelsLabels = [];
-
-    var dispoGravity = 0;
-    var dispoVraisemblance = 0;
-    var integrityGravity = 0;
-    var integrityVraisemblance = 0;
-    var confidentialityGravity = 0;
-    var confidentialityVraisemblance = 0;
-    var vraisemblance = 0;
-    var gravite = 0;
-
-    {% for scenario in object.scenarioMenaces %}
-        vraisemblance = {{ getScenarioMenaceIndicateurResiduel(scenario, 'vraisemblance') }}
-        gravite = {{ getScenarioMenaceIndicateurResiduel(scenario, 'gravite') }}
-        {% if (scenario.isDisponibilite) %}
-            dispoGravity = gravite > dispoGravity ? gravite : dispoGravity;
-            dispoVraisemblance = vraisemblance > dispoVraisemblance ? vraisemblance : dispoVraisemblance;
-            // P(x,y) => si x>0,6 alors x=x-0,5 si y>0,6 alors y=y-0,5
-            // https://gitlab.adullact.net/soluris/madis/-/issues/635
-            //dispoGravity = dispoGravity > 0.6 ? dispoGravity - 0.5 : dispoGravity
-            //dispoVraisemblance = dispoVraisemblance > 0.6 ? dispoVraisemblance - 0.5 : dispoVraisemblance
-        {% endif %}
-        {% if (scenario.isIntegrite) %}
-            integrityGravity = gravite > integrityGravity ? gravite : integrityGravity;
-            integrityVraisemblance = vraisemblance > integrityVraisemblance ? vraisemblance : integrityVraisemblance;
-            // P(x,y) => si x>0,6 alors x=x-0,5 si y>0,6 alors y=y-0,5
-            // https://gitlab.adullact.net/soluris/madis/-/issues/635
-            //integrityGravity = integrityGravity > 0.6 ? integrityGravity - 0.5 : integrityGravity
-            //integrityVraisemblance = integrityVraisemblance > 0.6 ? integrityVraisemblance - 0.5 : integrityVraisemblance
-        {% endif %}
-        {% if (scenario.isConfidentialite) %}
-            confidentialityGravity = gravite > confidentialityGravity ? gravite : confidentialityGravity;
-            confidentialityVraisemblance = vraisemblance > confidentialityVraisemblance ? vraisemblance : confidentialityVraisemblance;
-
-            //confidentialityGravity = confidentialityGravity > 0.6 ? confidentialityGravity - 0.5 : confidentialityGravity
-            //confidentialityVraisemblance = confidentialityVraisemblance > 0.6 ? confidentialityVraisemblance - 0.5 : confidentialityVraisemblance
-        {% endif %}
-
-        {%  set rr = getScenarioMenaceImpactResiduel(scenario) %}
-        {%  set rp = getScenarioMenaceImpactPotentiel(scenario) %}
-        risquesDataSet1.push({{ rp-rr }})
-        risquesDataSet2.push({{ rr }});
-        risquesResiduelsLabels.push("{{ scenario.nom|u.truncate(28, '...') }}");
-    {% endfor %}
-    dicResiduelsData.push({
-        label: "Disponibilité",
-        data: [{x: dispoVraisemblance, y: dispoGravity, r: 10}],
-        backgroundColor: 'hsl({{ 23 % 360 }}, 100%, 50%)'
-    },{
-        label: "Intégrité",
-        data: [{x: integrityVraisemblance, y: integrityGravity, r: 10}],
-        backgroundColor: 'hsl({{ 46 % 360 }}, 100%, 50%)'
-    },{
-        label: "Confidentialité",
-        data: [{x: confidentialityVraisemblance, y: confidentialityGravity, r: 10}],
-        backgroundColor: 'hsl({{ 69 % 360 }}, 100%, 50%)'
-    });
-    {% for mesure in object.mesureProtections %}
-        mesuresLabels.push("{{ mesure.nomCourt|raw|escape('js') }}");
-        {% if mesure.reponse == 'insatisfaisant' or mesure.reponse is null %}
-        mesuresDatas.push(1);
-        {% elseif mesure.reponse == 'besoin_amelioration' %}
-        mesuresDatas.push(3);
-        {% else %}
-        mesuresDatas.push(5);
-        {% endif %}
-    {% endfor %}
-    mesuresDatas = [mesuresDatas];
-    risquesDataSet1 = {label: "Risque couvert", data: risquesDataSet1, backgroundColor: colorTeal};
-    risquesDataSet2 = {label: "Risque résiduel", data: risquesDataSet2, backgroundColor: colorPink};
-    var risquesDatas = [risquesDataSet2, risquesDataSet1];
-
-    window.onload = function() {
-        radarChart("grandsDomaines-chart", domainesLabels, [''], domainesDatas, [colorBlue]);
-        radarChart('mesuresSecurite-chart', mesuresLabels, [''], mesuresDatas, [colorPurple]);
-        stackedBarChart("risquesResiduels-chart", risquesResiduelsLabels, risquesDatas);
-        bubbleChart('dicResiduels-chart', risquesLabels, dicResiduelsData);
-    };
-
-</script>
-</body>
+
+            var colorBlue = 'rgba(54, 162, 235, 0.5)';
+            var colorPurple = 'rgba(153, 51, 204, 0.5)';
+            var colorTeal = 'rgba(109, 199, 200, 1)';
+            var colorPink = 'rgba(243, 109, 143, 1)';
+
+            var domainesLabels = [];
+            var domainesDatas = [];
+
+
+            {% for critere in object.criterePrincipeFondamentaux %}
+                {% if critere.reponse != 'non_applicable' %}
+                    domainesLabels.push("{{ critere.label|u.truncate(28,'...')|raw|escape('js') }}");
+                    {% if critere.reponse == 'conforme' %}
+                        domainesDatas.push(5);
+                    {% else %}
+                        domainesDatas.push(1);
+                    {% endif %}
+                {% endif %}
+            {% endfor %}
+
+            {% for question in object.questionConformites|sort((a, b) => a.position >= b.position) %}
+                {% set reponse = object.conformiteTraitement.reponseOfName(question.question) %}
+                {% if reponse and reponse.conforme %}
+                    domainesDatas.push(5);
+                {% elseif reponse and reponse.actionProtections is not empty %}
+                    domainesDatas.push(3);
+                {% else %}
+                    domainesDatas.push(1);
+                {% endif %}
+                domainesLabels.push("{{ question.question|u.truncate(28, "...")|raw|escape('js') }}");
+            {% endfor %}
+            /* The format of the data used by the chart is [[],[]] but here we use only 1 set of data */
+            domainesDatas = [domainesDatas];
+
+            var mesuresLabels = [];
+            var mesuresDatas = [];
+            var risquesLabels = [];
+            var risquesDataSet1 = [];
+            var risquesDataSet2 = [];
+            var dicResiduelsData = [];
+            var risquesResiduelsLabels = [];
+
+            var dispoGravity = 0;
+            var dispoVraisemblance = 0;
+            var integrityGravity = 0;
+            var integrityVraisemblance = 0;
+            var confidentialityGravity = 0;
+            var confidentialityVraisemblance = 0;
+            var vraisemblance = 0;
+            var gravite = 0;
+
+            {% for scenario in object.scenarioMenaces %}
+                vraisemblance = {{ getScenarioMenaceIndicateurResiduel(scenario, 'vraisemblance') }}
+                gravite = {{ getScenarioMenaceIndicateurResiduel(scenario, 'gravite') }}
+                {% if (scenario.isDisponibilite) %}
+                    dispoGravity = gravite > dispoGravity ? gravite : dispoGravity;
+                    dispoVraisemblance = vraisemblance > dispoVraisemblance ? vraisemblance : dispoVraisemblance;
+                    // P(x,y) => si x>0,6 alors x=x-0,5 si y>0,6 alors y=y-0,5
+                    // https://gitlab.adullact.net/soluris/madis/-/issues/635
+                    //dispoGravity = dispoGravity > 0.6 ? dispoGravity - 0.5 : dispoGravity
+                    //dispoVraisemblance = dispoVraisemblance > 0.6 ? dispoVraisemblance - 0.5 : dispoVraisemblance
+                {% endif %}
+                {% if (scenario.isIntegrite) %}
+                    integrityGravity = gravite > integrityGravity ? gravite : integrityGravity;
+                    integrityVraisemblance = vraisemblance > integrityVraisemblance ? vraisemblance : integrityVraisemblance;
+                    // P(x,y) => si x>0,6 alors x=x-0,5 si y>0,6 alors y=y-0,5
+                    // https://gitlab.adullact.net/soluris/madis/-/issues/635
+                    //integrityGravity = integrityGravity > 0.6 ? integrityGravity - 0.5 : integrityGravity
+                    //integrityVraisemblance = integrityVraisemblance > 0.6 ? integrityVraisemblance - 0.5 : integrityVraisemblance
+                {% endif %}
+                {% if (scenario.isConfidentialite) %}
+                    confidentialityGravity = gravite > confidentialityGravity ? gravite : confidentialityGravity;
+                    confidentialityVraisemblance = vraisemblance > confidentialityVraisemblance ? vraisemblance : confidentialityVraisemblance;
+
+                    //confidentialityGravity = confidentialityGravity > 0.6 ? confidentialityGravity - 0.5 : confidentialityGravity
+                    //confidentialityVraisemblance = confidentialityVraisemblance > 0.6 ? confidentialityVraisemblance - 0.5 : confidentialityVraisemblance
+                {% endif %}
+
+                {% set rr = getScenarioMenaceImpactResiduel(scenario) %}
+                {% set rp = getScenarioMenaceImpactPotentiel(scenario) %}
+                risquesDataSet1.push({{ rp-rr }})
+                risquesDataSet2.push({{ rr }});
+                risquesResiduelsLabels.push("{{ scenario.nom|u.truncate(28, '...') }}");
+            {% endfor %}
+            dicResiduelsData.push({
+                label: "Disponibilité",
+                data: [{x: dispoVraisemblance, y: dispoGravity, r: 10}],
+                backgroundColor: 'hsl({{ 23 % 360 }}, 100%, 50%)'
+            },{
+                label: "Intégrité",
+                data: [{x: integrityVraisemblance, y: integrityGravity, r: 10}],
+                backgroundColor: 'hsl({{ 46 % 360 }}, 100%, 50%)'
+            },{
+                label: "Confidentialité",
+                data: [{x: confidentialityVraisemblance, y: confidentialityGravity, r: 10}],
+                backgroundColor: 'hsl({{ 69 % 360 }}, 100%, 50%)'
+            });
+            {% for mesure in object.mesureProtections %}
+                mesuresLabels.push("{{ mesure.nomCourt|raw|escape('js') }}");
+                {% if mesure.reponse == 'insatisfaisant' or mesure.reponse is null %}
+                mesuresDatas.push(1);
+                {% elseif mesure.reponse == 'besoin_amelioration' %}
+                mesuresDatas.push(3);
+                {% else %}
+                mesuresDatas.push(5);
+                {% endif %}
+            {% endfor %}
+            mesuresDatas = [mesuresDatas];
+            risquesDataSet1 = {label: "Risque couvert", data: risquesDataSet1, backgroundColor: colorTeal};
+            risquesDataSet2 = {label: "Risque résiduel", data: risquesDataSet2, backgroundColor: colorPink};
+            var risquesDatas = [risquesDataSet2, risquesDataSet1];
+
+            window.onload = function() {
+                radarChart("grandsDomaines-chart", domainesLabels, [''], domainesDatas, [colorBlue]);
+                radarChart('mesuresSecurite-chart', mesuresLabels, [''], mesuresDatas, [colorPurple]);
+                stackedBarChart("risquesResiduels-chart", risquesResiduelsLabels, risquesDatas);
+                bubbleChart('dicResiduels-chart', risquesLabels, dicResiduelsData);
+            };
+
+        </script>
+    </body>
 </html>
diff --git a/templates/Aipd/Modele_analyse/_form_criteres.html.twig b/templates/Aipd/Modele_analyse/_form_criteres.html.twig
index 93a08f00fbf70720a30916cf6035216cf750bdc9..cf9667c49d244b84cb0d2448d0a84dfa32852a82 100644
--- a/templates/Aipd/Modele_analyse/_form_criteres.html.twig
+++ b/templates/Aipd/Modele_analyse/_form_criteres.html.twig
@@ -2,7 +2,7 @@
     <td>{{ form_widget(form.label) }}</td>
     <td>{{ form_widget(form.labelLivrable) }}</td>
     <td>{{ form_widget(form.reponse) }}</td>
-    <td> {{ form_widget(form.isVisible) }}</td>
+    <td>{{ form_widget(form.isVisible) }}</td>
     <td>{{ form_widget(form.texteConformite) }}</td>
     <td>{{ form_widget(form.texteNonConformite) }}</td>
     <td>{{ form_widget(form.texteNonApplicable) }}</td>