feat: menu + — Design System – Canevas — phase 3/8 (v7.53.0)
- Section « Design System – Canevas » : liste des canevas (intégrés +
personnels, GET /board/api/page-templates) puis page de détail avec
« Créer une page à partir du canevas », « Insérer dans le document ouvert »
(désactivé sans document ouvert) et « Enregistrer le document ouvert comme
canevas ».
- GET /board/api/page-templates/{id}/blocks (nouvelle route) : blocs d'un
canevas — intégré via template_id=0&key=, sinon id ; 404 clé/id inconnu.
Insertion côté front via ensureBlockIds() global + concat dans E.blocks
+ autoSave/render.
- Canevas « Design System » ajouté aux builtins (callout tokens, TOC, toggles
composants, grille, checklist revue UI, citation).
- Fix : le front du panneau appelait /api/page-templates (404 silencieux) —
le router est sous prefix=/board → /board/api/page-templates.
- Piège : pour /use la clé builtin se passe DANS LE BODY (body.key), pas en
query string — test garde-fou ajouté.
- Tests : tests/test_v753_canvases.py (5) + test_v751 adapté. Suite complète
1285 verts (-n auto), ruff 0, eslint 0 problème. OpenAPI 516 chemins.
This commit is contained in:
@@ -1,5 +1,44 @@
|
||||
# Changelog - FlowDeck
|
||||
|
||||
## v7.53.0 (2026-10-06) — Menu + : Design System – Canevas (phase 3/8)
|
||||
|
||||
### Added
|
||||
|
||||
- **Section « Design System – Canevas »** — liste des canevas
|
||||
(`GET /board/api/page-templates` : intégrés + personnels), puis une page de
|
||||
détail avec 3 actions :
|
||||
- **Créer une page à partir du canevas** (`POST …/0/use` avec `{key}` *dans le
|
||||
body* pour un intégré, `POST …/{id}/use` pour un personnel) ;
|
||||
- **Insérer dans le document ouvert** — `GET …/blocks` (nouvelle route) →
|
||||
`ensureBlockIds()` (global côté éditeur) → concaténation dans `E.blocks` +
|
||||
`autoSave/render`, désactivé si aucun document éditable n'est ouvert ;
|
||||
- **Enregistrer le document ouvert comme canevas**
|
||||
(`POST /board/api/page-templates` avec `page_id`).
|
||||
- **`GET /board/api/page-templates/{template_id}/blocks`** — blocs d'un canevas
|
||||
( intégré via `template_id=0&key=`, sinon id) ; 404 clé/id inconnu,
|
||||
500 si le JSON est corrompu. **OpenAPI : 516 chemins**, `info.version` 7.53.0.
|
||||
- **Canevas « Design System »** intégré (`design_system` dans
|
||||
`app/services/block_templates.py`) : callout tokens, TOC, 3 toggles
|
||||
composants, grille & espacement, checklist revue UI, citation.
|
||||
- **Navigation** : en-tête ← gère le niveau canevas → liste.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Prefixe des canevas** : le front du panneau utilisait `/api/page-templates`
|
||||
(404 silencieux) — la route réelle est `/board/api/page-templates` (router
|
||||
`prefix="/board"`), comme `base.html` le fait déjà.
|
||||
|
||||
### Tests
|
||||
|
||||
- `tests/test_v753_canvases.py` — **5 tests** : canevas `design_system` listé,
|
||||
route blocks intégré (sans `id`, 404 clé inconnue, `empty` par défaut),
|
||||
route blocks personnel + 404, création de page depuis le canevas (blocs lus
|
||||
en base, ids assignés), câblage des sections (3 « bientôt » restantes) +
|
||||
garde-fou « `key` dans le body ». `test_v751` adapté (3 sections désactivées).
|
||||
- **Suite complète : 1285 passed / 0 failed** (`-n auto`), `ruff` 0,
|
||||
`eslint` 0 problème.
|
||||
|
||||
|
||||
## v7.52.0 (2026-10-06) — Menu + : Compétences-skills « Gérer » + « Parcourir » (phase 2/8)
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user