From 081b65f48ffb26a455a3311630b58d2f8c38ef3f Mon Sep 17 00:00:00 2001 From: william Date: Sun, 20 Sep 2026 13:07:54 +0200 Subject: [PATCH] Corrige "+ Ajouter une paire" qui ne faisait rien (Association) Retour utilisateur direct : cliquer "+ Ajouter une paire" ne montrait aucune nouvelle ligne. Cause reelle : la nouvelle paire etait creee avec ses deux champs vides ({left:'', right:''}), or sanitize_association_config (routes/document/document_element_update.py) rejette a raison toute paire dont un cote est vide - la paire disparaissait donc silencieusement des sa creation, sans aucun signal. Corrige en pre-remplissant des valeurs par defaut non vides ("Nouvel element" / "Sa correspondance"), meme strategie que forgeDocQuizNewQuestion (deja correcte pour le quiz). Verifie via sanitize_association_config directement (la paire par defaut survit desormais) et via un appel HTTP complet reproduisant exactement l'action du bouton cote client (element cree, persiste, rendu dans le badge "1 paire"). SKIP=djlint : backlog H021 pre-existant, aucun template touche ici. ruff/mypy --strict tous verts ; 50 tests document verifies frais. Co-Authored-By: Claude Sonnet 5 --- static/document/js/document-editor.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/static/document/js/document-editor.js b/static/document/js/document-editor.js index 3079002c..030fd8da 100644 --- a/static/document/js/document-editor.js +++ b/static/document/js/document-editor.js @@ -1074,7 +1074,14 @@ function forgeDocRenderQuizProps(panel, el) { } function forgeDocAssociationNewPair() { - return { left: '', right: '' }; + // Champs pré-remplis (jamais vides) : sanitize_association_config + // (routes/document/document_element_update.py) rejette silencieusement + // toute paire dont un des deux côtés est vide — une paire vide envoyée + // telle quelle disparaîtrait donc aussitôt créée, sans aucun signal + // pour le créateur (bug réel trouvé le 20/09/2026 : "+ Ajouter une + // paire" semblait ne rien faire). Même stratégie que + // forgeDocQuizNewQuestion ci-dessus. + return { left: 'Nouvel élément', right: 'Sa correspondance' }; } function forgeDocRenderAssociationPairHtml(pair, pIndex) {