Ajoute l'alignement vertical du contenu d'une page, réglable depuis l'onglet "Pages"

Nouvelle colonne _document_pages.vertical_align (top/center/bottom,
"top" par défaut, migration incluse pour les supports existants).
Quand l'onglet "Pages" du panneau gauche est actif, le panneau
Propriétés (droite) affiche maintenant l'alignement de la page active
au lieu des propriétés d'un élément — un contrôle segmenté qui persiste
via une nouvelle route dédiée et met à jour le canevas immédiatement.

Le contenu-seed des thèmes porte désormais aussi ce réglage par page
(seed_pages devient une liste de {vertical_align, blocks} plutôt qu'une
liste de listes de blocs) : la page de titre du thème "Sécurité
Incendie" est centrée verticalement, comme demandé, cohérente avec la
maquette d'origine. L'aperçu de thème (iframe de la modale) reflète
aussi ce réglage par page.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
william
2026-09-24 10:24:48 +02:00
co-authored by Claude Sonnet 5
parent be62275675
commit 746feb3796
20 changed files with 500 additions and 215 deletions
+1
View File
@@ -39,6 +39,7 @@ def create_support(name: str, owner_folder: str) -> str:
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL DEFAULT 'Page 1',
order_index INTEGER NOT NULL DEFAULT 0,
vertical_align TEXT NOT NULL DEFAULT 'top',
created_at TEXT DEFAULT CURRENT_TIMESTAMP
);
@@ -24,6 +24,15 @@ def ensure_document_pages_schema(slug: str) -> None:
if page_count == 0:
conn.execute("INSERT INTO _document_pages (title, order_index) VALUES ('Page 1', 0)")
# vertical_align : alignement vertical du contenu de la page
# (top/center/bottom — voir document_engine/pages/
# set_document_page_vertical_align.py), ajouté après la création
# initiale des pages — même pragmatisme que page_id ci-dessous, une
# valeur par défaut CONSTANTE plutôt qu'une contrainte CHECK.
page_cols = {r["name"] for r in conn.execute("PRAGMA table_info(_document_pages)").fetchall()}
if "vertical_align" not in page_cols:
conn.execute("ALTER TABLE _document_pages ADD COLUMN vertical_align TEXT NOT NULL DEFAULT 'top'")
cols = {r["name"] for r in conn.execute("PRAGMA table_info(_document_elements)").fetchall()}
if "page_id" not in cols:
first_page_id = conn.execute("SELECT id FROM _document_pages ORDER BY order_index LIMIT 1").fetchone()["id"]