Supprime la couche de formes libres, déplace la navigation de page dans le panneau gauche
Build and deploy / test-python (push) Successful in 7m43s
Build and deploy / test-js (push) Successful in 57s
Build and deploy / lint-python (push) Successful in 5m29s
Build and deploy / lint-js (push) Failing after 1m16s
Build and deploy / build-and-push (push) Skipped
Build and deploy / deploy (push) Skipped
Build and deploy / sonarqube (push) Failing after 5m42s

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 <noreply@anthropic.com>
This commit is contained in:
william
2026-09-21 14:40:33 +02:00
co-authored by Claude Sonnet 5
parent 57c4de3d8a
commit 8dc4b35dcf
11 changed files with 220 additions and 597 deletions
+11 -21
View File
@@ -21,15 +21,12 @@ def document_edit(slug: str) -> str:
PREMIÈRE page (triée par order_index) — changer de page se fait
ensuite entièrement côté client via /document/<slug>/render?page_id=
(voir static/document/js/document-editor.js), jamais un rechargement
complet de cette route.
`rendered_pages` (retour utilisateur du 21/09/2026 : "je préfère
avoir des miniatures") rend le document de CHAQUE page — pas
seulement la page active — pour construire les vraies vignettes
miniatures de la bande au-dessus du canevas (voir templates/document/
document_edit.html, .docPageThumbInner) : un rendu réduit (CSS
`transform: scale()`) du contenu RÉEL de chaque page, pas une carte
générique numéro+titre.
complet de cette route. La navigation entre pages (ajout/renommage/
suppression/réordonnancement) vit dans une section dédiée du panneau
gauche (retour utilisateur du 21/09/2026 : "une section qui s'ajoute
dans le panneau de gauche pour ajouter une page et naviguer entre
elles"), qui n'a besoin que des métadonnées de page (`pages`), jamais
d'un rendu de leur contenu.
Les attributs de chaque élément sont revalidés (document_engine.
sanitize_element_attributes) avant d'atteindre le client — jamais les
@@ -42,16 +39,10 @@ def document_edit(slug: str) -> str:
pages = document_engine.list_document_pages(slug)
active_page = pages[0]
rendered_pages: dict[int, str] = {}
active_elements: list[dict[str, Any]] = []
for page in pages:
page_elements = [
{**el, "attributes": document_engine.sanitize_element_attributes(el["kind"], el["attributes"])}
for el in document_engine.list_document_elements(slug, page["id"])
]
rendered_pages[page["id"]] = document_engine.render_document(page_elements)
if page["id"] == active_page["id"]:
active_elements = page_elements
active_elements: list[dict[str, Any]] = [
{**el, "attributes": document_engine.sanitize_element_attributes(el["kind"], el["attributes"])}
for el in document_engine.list_document_elements(slug, active_page["id"])
]
return render_template(
"document/document_edit.html",
@@ -59,8 +50,7 @@ def document_edit(slug: str) -> str:
pages=pages,
active_page=active_page,
elements=active_elements,
rendered_document=rendered_pages[active_page["id"]],
rendered_pages=rendered_pages,
rendered_document=document_engine.render_document(active_elements),
element_library=document_engine.ELEMENT_LIBRARY,
element_kind_labels=document_engine.ELEMENT_KIND_LABELS,
)