diff --git a/CHANGELOG.md b/CHANGELOG.md
index b0b1879332ecc82069985cf5b4125a2ff4a2a27e..4bbc6873b354c583a808e74b545197ad642b83d5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,24 @@
 CHANGELOG
 =========
+## [2.4.6] - 2024-07-05
+### Changement
+- [Global] Divers renommages et traductions.
+- [Traitements] Déplacement de la colonne "Mise à jour" avec les autres colonnes des mesures de sécurité et confidentialité.
+- [Documentation] Mise à jour de la documentation technique.
+- [Documentation] Mise à jour de la documentation utilisateur.
+- [AIPD] Augmentation du nombre de caractères maximums à 2 000 pour le champ "Justification" dans la création ou modification d'un modèle d'AIPD, et dans l'instruction d'une AIPD.
+### Suppression
+- [Global] Suppression de divers messages générés par console.log.
+- [Logiciels et supports] Suppresion de la limite du nombre de caractères maximums de certains champs.
+### Fix
+- [Traitements] Fix du trie par ordre croissant ou décroissant de certaines colonnes.
+- [Traitements] Fix de la limite de caractères du message d'erreur de certains champs.
+- [Logiciels et supports] Fix de l'accès à la liste des logiciels et supports par un référent multi-structures.
+- [Demandes] Fix du trie par ordre croissant ou décroissant de certaines colonnes.
+- [Bilan] Fix de certaines données présentes dans le tableau du registre des violations.
+- [AIPD] Fix du sommaire dans le PDF d'une AIPD.
+- [AIPD] Fix de la couleur de certains tags dans le PDF d'une AIPD.
+- [Notification] Fix de l'accès au centre de notification par un gestionnaire.
 ## [2.4.5] - 2024-05-31
 ### Ajout
 - [Tableau de bord] Ajout du type "S'opposer au traitement" dans le graphique des types des demandes.
diff --git a/config/domain/registry/translations/messages.fr.yaml b/config/domain/registry/translations/messages.fr.yaml
index 1c7ba06d634e29ebeacf41b66af2d93e2d60d88a..225f2577a8a24e8bddf2984d12553cedbfbc3808 100644
--- a/config/domain/registry/translations/messages.fr.yaml
+++ b/config/domain/registry/translations/messages.fr.yaml
@@ -114,7 +114,7 @@ registry:
             data_category: Catégorie des données
             details: Détails
             last_aipd: Analyse d'impact
-            recipients: Destination
+            recipients: Destinataires
             security: Mesures de sécurité et confidentialité
             specific: Traitement spécifique
             statut_dpo: Statut et préconisations DPD
@@ -480,7 +480,7 @@ registry:
             success:
                 create: Conformité de la structure "%object%" créée avec succès
                 pilote: Les pilotes ont été enregistrés avec succès
-                edit: Conformité de la structure "%object%" éditée avec succès
+                edit: Conformité de la structure "%object%" modifiée avec succès
                 delete: Conformité de la structure "%object%" supprimée avec succès
         action:
             create: Nouvelle évaluation de la structure
diff --git a/config/domain/user/translations/messages.fr.yaml b/config/domain/user/translations/messages.fr.yaml
index 753a82a8a2ea5266877ae54f491d45a5d16ceaea..20251f21ee2f3327e613d7f6f82ac188f8386e46 100644
--- a/config/domain/user/translations/messages.fr.yaml
+++ b/config/domain/user/translations/messages.fr.yaml
@@ -145,7 +145,7 @@ user:
         flashbag:
             success:
                 create: Utilisateur "%object%" crée avec succès
-                edit: Utilisateur "%object%" édité avec succès
+                edit: Utilisateur "%object%" modifié avec succès
                 delete: Utilisateur "%object%" supprimé avec succès
                 unarchive: Utilisateur "%object%" rétabli avec succès
                 my_profil_edit: Votre compte vient d'être mis à jour
diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml
index fcc694b9430518111839ba137cdde11356fb0301..717f3620169b530ab1efc9619ac63c856f27138f 100644
--- a/config/packages/framework.yaml
+++ b/config/packages/framework.yaml
@@ -1,5 +1,5 @@
 parameters:
-    app.version: "2.4.5"
+    app.version: "2.4.6"
 
 framework:
     secret: '%env(APP_SECRET)%'
diff --git a/doc/installation/1-installation-script.md b/doc/installation/1-installation-script.md
index f2c44efecc8b78bc5feea1e83be32f15f8d7ca85..f274df0888c1cbffe0434c39af65c5de4aa35a99 100644
--- a/doc/installation/1-installation-script.md
+++ b/doc/installation/1-installation-script.md
@@ -30,7 +30,7 @@ L'installateur permet de réaliser les étapes suivantes :
 6. (Optionnel) Paramétrage d'un serveur SMTP ;
 7. Installation automatique et paramétrage des éléments suivants :
     -	Installation de divers éléments nécessaires (PHP-FPM, NGINX, Curl, git, NodeJS, Composer, Wkhtmltopdf...), des extensions PHP (php8.1-bz2 php8.1-cli php8.1-common php8.1-curl php8.1-fpm php8.1-gd php8.1-intl php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-xml php8.1-zip), ainsi qu'une base de données MySQL (ou MariaDB pour Rocky Linux) ;
-    - Installation de Madis 2.4.5 ;
+    - Installation de Madis 2.4.6 ;
     - Paramétrage du .env ;
     - Ajout d'une structure et d'un utilisateur ;
     - Installation du modèle AIPD et des référentiels ;
diff --git a/doc/installation/2-installation-manuelle.md b/doc/installation/2-installation-manuelle.md
index e508ca7633da552a8e6ca47f48f2753c3e337e63..8711a3d5fc163c6a7a99e64def55df5ac2928f35 100644
--- a/doc/installation/2-installation-manuelle.md
+++ b/doc/installation/2-installation-manuelle.md
@@ -179,7 +179,7 @@ sudo -u www-data git tag
 
 Puis placez-vous dans la version à utiliser.
 ```bash
-sudo -u www-data git checkout v2.4.5
+sudo -u www-data git checkout v2.4.6
 ```
 
 Enfin, lancez la commande suivante pour finaliser l’installation de Madis.
diff --git a/doc/installation/install.sh b/doc/installation/install.sh
index ea1fe41df785e83e552c943877cf0dc37c1aeec4..c828639cbcfcfe34756856c8580752a013fa70cf 100644
--- a/doc/installation/install.sh
+++ b/doc/installation/install.sh
@@ -289,7 +289,7 @@ sudo sed -i "s|APP_COMMUNE_SVG_REDUCED_PATH=.*|APP_COMMUNE_SVG_REDUCED_PATH=''|"
 sudo sed -i "s|MAILER_DSN=.*|MAILER_DSN=smtp://$smtp_username:smtp_password@$smtp_server:$smtp_port|" /var/www/madis/.env
 
 # Checkout du dépôt
-sudo -u $nginxusr git --git-dir=/var/www/madis/.git --work-tree=/var/www/madis checkout v2.4.5
+sudo -u $nginxusr git --git-dir=/var/www/madis/.git --work-tree=/var/www/madis checkout v2.4.6
 
 # Déploiement
 sudo -u $nginxusr bash -c "cd /var/www/madis && bin/deploy"
diff --git a/templates/Aipd/Analyse_impact/pdf.html.twig b/templates/Aipd/Analyse_impact/pdf.html.twig
index b03e4f5ca7282b56baa7435a9474d885579b84f3..8c080fb21bf5db3416dd91e6132fd1aefbcc30ba 100644
--- a/templates/Aipd/Analyse_impact/pdf.html.twig
+++ b/templates/Aipd/Analyse_impact/pdf.html.twig
@@ -132,26 +132,39 @@
 
         <div  style="page-break-before: always;"></div>
         <div class="separator"></div>
-        <h1 style="text-align: center;">Sommaire</h1>
+        <h2 style="text-align: center;">Sommaire</h2>
         <div class="separator"></div>
         <div class="separator"></div>
-        <h2>1. Préambule</h2>
-        <h3 style="margin-left: 30px">1.1 Méthode d'une Analyse d'Impact relative à la Protection des Données</h3>
-        <h3 style="margin-left: 30px">1.2 Conformité d’une Analyse d’Impact relative à la Protection des Données</h3>
-        <h2>2. Étude du contexte</h2>
-        <h2>3. Études des principes fondamentaux</h2>
-        <h2>4. Études des risques liés à la sécurité des données</h2>
-        <h3 style="margin-left: 30px">4.1 Évaluation des risques sur les droits et les libertés des personnes concernées</h3>
-        <h3 style="margin-left: 30px">4.2 Évaluation de l'impact et matrice de décision</h3>
-        <h3 style="margin-left: 30px">4.3 Mesure(s) de réduction des risques envisagée(s)</h3>
-        <h3 style="margin-left: 30px">4.4 Risques résiduels</h3>
-        <h2>5. Validation de l'AIPD</h2>
-        <h3 style="margin-left: 30px">Avis des personnes consultées</h3>
-        <h2>6. Annexes</h2>
-        <h3 style="margin-left: 30px">6.1 Glossaire</h3>
-        <h3 style="margin-left: 30px">6.2 Références</h3>
-        <h3 style="margin-left: 30px">6.3 Fiche de traitement</h3>
-
+        <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;">
             <h2>1. Préambule</h2>
@@ -200,7 +213,7 @@
                             {% 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-warning" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
+                                <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
                             {% endif %}
                             <br/>
                             {% if critere.justification is not null %}
@@ -231,7 +244,7 @@
                             {% 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-warning" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
+                                <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
                             {% endif %}
                             <br/>
                             {% if critere.justification is not null %}
@@ -306,7 +319,7 @@
                             {% 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-warning" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
+                                <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
                             {% endif %}
                             <br/>
                             {% if critere.justification is not null %}
@@ -337,7 +350,7 @@
                             {% 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-warning" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
+                                <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
                             {% endif %}
                             <br/>
                             {% if critere.justification is not null %}
@@ -367,7 +380,7 @@
                             {% 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-warning" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
+                                <span class="label label-default" style="min-width: 50px; display: inline-block;">{{ critere.texteNonApplicable }}</span>
                             {% endif %}
                             <br/>
                             {% if critere.justification is not null %}