From 8dc4b35dcfdd1006ca89af4dfc226fc3ad79045e Mon Sep 17 00:00:00 2001 From: william Date: Mon, 21 Sep 2026 14:40:33 +0200 Subject: [PATCH] =?UTF-8?q?Supprime=20la=20couche=20de=20formes=20libres,?= =?UTF-8?q?=20d=C3=A9place=20la=20navigation=20de=20page=20dans=20le=20pan?= =?UTF-8?q?neau=20gauche?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Formes libres (rectangle/cercle/triangle/trait) retirées de bout en bout (bibliothèque, rendu, panneau Propriétés, grille d'accroche, JS/CSS associés) — fonctionnalité non retenue. La bande de vignettes visuelles des pages au-dessus du canevas est remplacée par une section "Pages" dans le panneau de gauche (liste simple : ajouter/renommer/réordonner (haut/bas)/supprimer), à la place de l'ex-catégorie "Mise en page" de la bibliothèque. La route document_edit ne rend plus qu'une seule page (celle affichée) au chargement, au lieu de toutes les pages pour alimenter les anciennes vignettes. Co-Authored-By: Claude Sonnet 5 --- CODE_QUALITY.md | 4 +- document_engine/__init__.py | 15 +- document_engine/labels/element_kind_labels.py | 21 -- document_engine/labels/labels.md | 12 +- .../rendering/render_document_element.py | 40 --- document_engine/rendering/rendering.md | 3 - routes/document/document_edit.py | 32 +- static/document/document-editor.css | 238 ++++---------- static/document/js/document-editor.js | 303 +++++------------- templates/document/document_edit.html | 113 ++++--- tests/document/test_document_elements.py | 36 +-- 11 files changed, 220 insertions(+), 597 deletions(-) diff --git a/CODE_QUALITY.md b/CODE_QUALITY.md index f843b746..d238e281 100644 --- a/CODE_QUALITY.md +++ b/CODE_QUALITY.md @@ -141,7 +141,7 @@ SonarQube : voir section 2, sous-section "SonarQube" — CI restaurée (non-bloq | `static/game/js/scenes/scene-editor.js:214` (`CURRENT_SELECTED_ID = null`), `static/game/js/screen_edit/tree-panels.js:392` (`CURRENT_SELECTED_ID = selectedId \|\| null`) | `javascript:S2703` | Déclarée en **`var`** (pas `let`/`const`) dans `templates/game/scene_edit.html:833` (`var CURRENT_SELECTED_ID = {{ selected_id or 'null' }};`), chargé avant `tree-panels.js`/`scene-editor.js`/`trigger-editor.js`/`collision-rules-editor.js` (ordre vérifié, lignes 833/858/880/885/887/888) — un `var` de script classique attache directement à `window`, réassignable sans aucune restriction depuis n'importe quel autre `` (voir Phase 3) ; (3) `rendered_document`/`rendered_pages[page.id]` (`document_edit.html`, le second ajouté le 21/09/2026) — même sous-groupe (1) : produits par `document_engine.render_document`, qui échappe (`html.escape()`) tout contenu utilisateur avant interpolation (voir `document_engine/rendering/render_document_element.py`) — `rendered_pages[page.id]` rend simplement CHAQUE page du support de la même façon, pour construire une vraie vignette miniature de son contenu réel (retour utilisateur du 21/09/2026 : "je préfère avoir des miniatures"), jamais une nouvelle source de contenu non échappé. Plusieurs syntaxes de suppression testées (commentaire Jinja `{# #}`, commentaire JS natif dans un `` (voir Phase 3) ; (3) `rendered_document` (`document_edit.html`) — même sous-groupe (1) : produit par `document_engine.render_document`, qui échappe (`html.escape()`) tout contenu utilisateur avant interpolation (voir `document_engine/rendering/render_document_element.py`). Plusieurs syntaxes de suppression testées (commentaire Jinja `{# #}`, commentaire JS natif dans un `