fix: A27 phase 2c — database_table 1 314 L, extraction A27 terminée (v7.24.0)
FlowDeck CI / lint (push) Canceled after 0s
FlowDeck CI / test (push) Canceled after 0s
FlowDeck CI / docker (push) Canceled after 0s

- `_database_table_scripts.html` → `static/js/database_table.js` (1 314 L).
  Le Jinja du bloc était confiné à la construction de l'objet de config
  (4 clés + `{% if collection_data %}`) → config JSON `#db-config`
  null-vs-objet : `new DBInstance(container, PAGE_COLLECTION_ID, DB_CONFIG)`
  remplace les 2 branches Jinja (le `else` était déjà un literal null).
- Loader DB_CONFIG : JSON.parse du bloc, `null` si absent (parité stricte
  avec le else d'origine) ; acrlade try corrigée par node --check avant
  commit.
- 2 tests adaptés (lisaient le template source → static/js/database_table.js)
  ; `FlowDeckDB` / `db-board` / `db-cal-grid` / `db-gallery` plus dans le
  HTML → asserts sur le JS extrait.

BILAN A27 : 11 874 L extraites en 4 phases (4 243 + 2 516 + 3 801 + 1 314),
inline 13 904 → 2 022 L (-85 %), 22 fichiers static/js/*.js, node --check
vert partout, eslint 0 erreur / 285 warnings. Reste : base 1 523 L
structurel ({% block %}/{% for %} — inline par nature), ~500 L de petits
blocs hors cibles, nettoyage des 285 warnings.

suite **1089/1089** · ruff OK · docs à jour
This commit is contained in:
2026-10-01 21:10:16 -04:00
parent 45917c194d
commit 103bc57418
11 changed files with 1354 additions and 1336 deletions
+22
View File
@@ -1,5 +1,27 @@
# Changelog - FlowDeck
## v7.24.0 (2026-10-01) — Audit : A27 extraction TERMINÉE (bilan -85 %)
### Changed
- **A27 (phase 2c)** — `_database_table_scripts.html` : **1 314 L extraites**
vers `static/js/database_table.js`. Le Jinja du bloc était confiné à la
construction de l'objet de config (4 clés + `{% if collection_data %}`) →
config JSON `#db-config` **null-vs-objet** : `new DBInstance(container,
PAGE_COLLECTION_ID, DB_CONFIG)` remplace les 2 branches Jinja
- 2 tests adaptés (lisaient le template source → `database_table.js`) ;
`FlowDeckDB` plus dans le HTML → assert sur le JS
### Notes
- **BILAN A27 : 11 874 L extraites en 4 phases** (4 243 + 2 516 + 3 801 +
1 314), **inline 13 904 → 2 022 L (-85 %)**, 22 fichiers `static/js/*.js`,
`node --check` vert partout, eslint **0 erreur / 285 warnings**
- Reste : `base` 1 523 L structurel (`{% block %}`/`{% for %}` — reste
inline par nature, décision assumée), ~500 L de petits blocs hors cibles,
nettoyage des 285 warnings
- Suite complète : **1089/1089**
## v7.23.0 (2026-10-01) — Audit : A27 phase 2b (+3 801 L)
### Changed
+2 -2
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
7.23.0
7.24.0
+1 -1
View File
@@ -1,6 +1,6 @@
# WORKLOAD — FlowDeck Notion Clone
> **Début**: 2026-07-08 | **Version**: v7.23.0 (audit — A27 phase 2b : +3 801 L, cumul 10 560 L) | **Statut**: EN COURS 🔄
> **Début**: 2026-07-08 | **Version**: v7.24.0 (audit — A27 extraction TERMINÉE : 11 874 L, -85 % inline) | **Statut**: EN COURS 🔄
> **Cible**: parité Notion + intégration forge · **Follow-ups v7.3 livrés**: sidebar teamspaces, notif `page.updated`, charts `number` + dashboards multi-DB, unfurl forge, UI Settings → Audit — voir `ROADMAP.md § v7.3.0`
## Avancement Global
+1 -1
View File
@@ -185,7 +185,7 @@ async def lifespan(_app: FastAPI):
app = FastAPI(
title="FlowDeck",
version="7.23.0",
version="7.24.0",
docs_url="/docs",
redoc_url="/redoc",
lifespan=lifespan,
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -2,7 +2,7 @@
"openapi": "3.1.0",
"info": {
"title": "FlowDeck",
"version": "7.23.0"
"version": "7.24.0"
},
"paths": {
"/auth/register": {
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -294,7 +294,7 @@ def test_editor_has_autocomplete(client):
def test_database_has_ai_properties(client):
src = _read_template("_database_table_scripts.html")
src = _read_js("database_table.js")
assert "db-ai-fill-btn" in src
assert "aiFillRow" in src
assert "/api/agent/writing/properties" in src
+7 -4
View File
@@ -8,6 +8,7 @@ from __future__ import annotations
import json
import os
import pathlib
import secrets
import tempfile
@@ -273,8 +274,10 @@ def test_collection_page_renders_multi_view(client):
resp = client.get(f"/pages/{page}", cookies={"flowdeck_session": cookie})
assert resp.status_code == 200
assert "db-view-bar" in resp.text
assert "FlowDeckDB" in resp.text
# New view types + settings are available client-side.
assert "db-board" in resp.text
assert "db-cal-grid" in resp.text
assert "db-gallery" in resp.text
# (A27 : le JS de la DB est extrait dans static/js/database_table.js.)
src = pathlib.Path("static/js/database_table.js").read_text(encoding="utf-8")
assert "FlowDeckDB" in src
assert "db-board" in src
assert "db-cal-grid" in src
assert "db-gallery" in src
+1 -1
View File
@@ -417,7 +417,7 @@ def test_notification_prefs_extended_keys(client):
def test_calendar_front_end_wired(client):
import pathlib
src = pathlib.Path("app/templates/_database_table_scripts.html").read_text(encoding="utf-8")
src = pathlib.Path("static/js/database_table.js").read_text(encoding="utf-8")
assert "calendar/api" in src
assert "data-cal-mode" in src and "refreshCalendar" in src
assert "openEventEditor" in src and "__recurrence__" in src and "__reminder__" in src