diff --git a/app/api/jury.py b/app/api/jury.py
index b58b35c2c7e9bfc669b6bcd7216e9882fc9b6c49..795062bd54ac4eafd7820c329ad2003ec6df65c0 100644
--- a/app/api/jury.py
+++ b/app/api/jury.py
@@ -5,12 +5,12 @@
 ##############################################################################
 
 """
-  ScoDoc 9 API : jury   WIP à compléter avec enregistrement décisions.
+ScoDoc 9 API : jury   WIP à compléter avec enregistrement décisions.
 
 
-  CATEGORY
-  --------
-  Jury
+CATEGORY
+--------
+Jury
 """
 
 import datetime
@@ -85,7 +85,7 @@ def _news_delete_jury_etud(etud: Identite, detail: str = ""):
     Scolog.logdb(
         "jury_delete_manual",
         etudid=etud.id,
-        msg=f"Validation {detail} effacée",
+        msg=f"Suppression décision jury {detail}",
         commit=True,
     )
 
@@ -151,11 +151,12 @@ def _validation_ue_delete(etudid: int, validation_id: int):
             # Validation non rattachée à un semestre: on doit être chef
             return json_error(403, "opération non autorisée (126)")
 
+    detail = f"UE {validation}"
     log(f"validation_ue_delete: etuid={etudid} {validation}")
     db.session.delete(validation)
     sco_cache.invalidate_formsemestre_etud(etud)
     db.session.commit()
-    _news_delete_jury_etud(etud)
+    _news_delete_jury_etud(etud, detail=detail)
     return "ok"
 
 
@@ -179,11 +180,12 @@ def autorisation_inscription_delete(etudid: int, validation_id: int):
     validation = ScolarAutorisationInscription.query.filter_by(
         id=validation_id, etudid=etudid
     ).first_or_404()
+    detail = f"autorisation inscription {validation}"
     log(f"autorisation_inscription_delete: etuid={etudid} {validation}")
     db.session.delete(validation)
     sco_cache.invalidate_formsemestre_etud(etud)
     db.session.commit()
-    _news_delete_jury_etud(etud)
+    _news_delete_jury_etud(etud, detail=detail)
     return "ok"
 
 
@@ -338,11 +340,12 @@ def validation_rcue_delete(etudid: int, validation_id: int):
     validation = ApcValidationRCUE.query.filter_by(
         id=validation_id, etudid=etudid
     ).first_or_404()
+    detail = f"RCUE {validation}"
     log(f"delete validation_ue_delete: etuid={etudid} {validation}")
     db.session.delete(validation)
     sco_cache.invalidate_formsemestre_etud(etud)
     db.session.commit()
-    _news_delete_jury_etud(etud, detail="UE")
+    _news_delete_jury_etud(etud, detail=detail)
     return "ok"
 
 
@@ -366,12 +369,12 @@ def validation_annee_but_delete(etudid: int, validation_id: int):
     validation = ApcValidationAnnee.query.filter_by(
         id=validation_id, etudid=etudid
     ).first_or_404()
-    ordre = validation.ordre
+    detail = f"{validation}"
     log(f"delete validation_annee_but: etuid={etudid} {validation}")
     db.session.delete(validation)
     sco_cache.invalidate_formsemestre_etud(etud)
     db.session.commit()
-    _news_delete_jury_etud(etud, detail=f"année BUT{ordre}")
+    _news_delete_jury_etud(etud, detail=detail)
     return "ok"
 
 
@@ -395,9 +398,10 @@ def validation_dut120_delete(etudid: int, validation_id: int):
     validation = ValidationDUT120.query.filter_by(
         id=validation_id, etudid=etudid
     ).first_or_404()
+    detail = f"{validation}"
     log(f"delete validation_dut120: etuid={etudid} {validation}")
     db.session.delete(validation)
     sco_cache.invalidate_formsemestre_etud(etud)
     db.session.commit()
-    _news_delete_jury_etud(etud, detail="diplôme DUT120")
+    _news_delete_jury_etud(etud, detail=detail)
     return "ok"
diff --git a/app/models/but_validations.py b/app/models/but_validations.py
index b5d962192178a87d745d87a358398d02cb52e6a7..e09e6d0ad6f4873bca6d6d07b14a30721c212bb4 100644
--- a/app/models/but_validations.py
+++ b/app/models/but_validations.py
@@ -1,7 +1,6 @@
 # -*- coding: UTF-8 -*
 
-"""Décisions de jury (validations) des RCUE et années du BUT
-"""
+"""Décisions de jury (validations) des RCUE et années du BUT"""
 from collections import defaultdict
 
 import sqlalchemy as sa
@@ -163,7 +162,8 @@ class ApcValidationAnnee(ScoDocModel):
             } BUT{self.ordre}/{self.annee_scolaire}:{self.code!r}>"""
 
     def __str__(self):
-        return f"""décision sur année BUT{self.ordre} {self.annee_scolaire} : {self.code}"""
+        return f"""décision sur année BUT{self.ordre} {self.annee_scolaire} : {self.code
+        } enregistrée le {self.date.strftime(scu.DATE_FMT) if self.date else '?'}"""
 
     def to_dict_bul(self) -> dict:
         "dict pour bulletins"
@@ -326,6 +326,11 @@ class ValidationDUT120(ScoDocModel):
     def __repr__(self):
         return f"""<ValidationDUT120 {self.etud}>"""
 
+    def __str__(self):
+        return f"""Diplôme de DUT 120 ECTS {
+            self.formsemestre.formation.referentiel_competence.specialite
+        } enregistré le {self.date.strftime(scu.DATE_FMT)}"""
+
     def html(self) -> str:
         "Affichage html"
         date_str = (
diff --git a/app/models/validations.py b/app/models/validations.py
index 25417b4258f9e0cf842e306f7f7ab49a62c1cc9f..4f860826ac7eed92a0b7736c1a42f0694a861e48 100644
--- a/app/models/validations.py
+++ b/app/models/validations.py
@@ -1,7 +1,6 @@
 # -*- coding: UTF-8 -*
 
-"""Notes, décisions de jury
-"""
+"""Notes, décisions de jury"""
 from flask_sqlalchemy.query import Query
 
 from app import db, log, models
@@ -182,6 +181,11 @@ class ScolarAutorisationInscription(models.ScoDocModel):
         return f"""{self.__class__.__name__}(id={self.id}, etudid={
             self.etudid}, semestre_id={self.semestre_id})"""
 
+    def __str__(self) -> str:
+        return f"""Autorisation de passage vers S{self.semestre_id} émise par {
+            self.origin_formsemestre.titre_mois() if self.origin_formsemestre else '?'
+            } le {self.date.strftime(scu.DATE_FMT) if self.date else '?'}"""
+
     def to_dict(self) -> dict:
         "as a dict"
         d = dict(self.__dict__)
diff --git a/app/scodoc/sco_formsemestre_validation.py b/app/scodoc/sco_formsemestre_validation.py
index b4690148dc7784f6d8b4b60d5bf9d9089f8697a8..fe598e57028c66af64f110429027fbc4ffaa62bc 100644
--- a/app/scodoc/sco_formsemestre_validation.py
+++ b/app/scodoc/sco_formsemestre_validation.py
@@ -1122,24 +1122,36 @@ def formsemestre_validation_suppress_etud(formsemestre_id, etudid):
     """
     log(f"formsemestre_validation_suppress_etud( {formsemestre_id}, {etudid})")
 
+    def log_op(v):
+        Scolog.logdb(
+            method="formsemestre_validation_suppress_etud",
+            etudid=etudid,
+            msg=f"Suppression décision jury sur {v}",
+        )
+
     # Validations jury  classiques (semestres, UEs, autorisations)
     for v in ScolarFormSemestreValidation.query.filter_by(
         etudid=etudid, formsemestre_id=formsemestre_id
     ):
         db.session.delete(v)
+        log_op(v)
+
     for v in ScolarAutorisationInscription.query.filter_by(
         etudid=etudid, origin_formsemestre_id=formsemestre_id
     ):
         db.session.delete(v)
+        log_op(v)
     # Validations jury spécifiques BUT
     for v in ApcValidationRCUE.query.filter_by(
         etudid=etudid, formsemestre_id=formsemestre_id
     ):
         db.session.delete(v)
+        log_op(v)
     for v in ApcValidationAnnee.query.filter_by(
         etudid=etudid, formsemestre_id=formsemestre_id
     ):
         db.session.delete(v)
+        log_op(v)
 
     db.session.commit()