fix: A27 phase 2c — database_table 1 314 L, extraction A27 terminée (v7.24.0)
- `_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:
@@ -1,5 +1,27 @@
|
|||||||
# Changelog - FlowDeck
|
# 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)
|
## v7.23.0 (2026-10-01) — Audit : A27 phase 2b (+3 801 L)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|||||||
+2
-2
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
# WORKLOAD — FlowDeck Notion Clone
|
# 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`
|
> **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
|
## Avancement Global
|
||||||
|
|||||||
+1
-1
@@ -185,7 +185,7 @@ async def lifespan(_app: FastAPI):
|
|||||||
|
|
||||||
app = FastAPI(
|
app = FastAPI(
|
||||||
title="FlowDeck",
|
title="FlowDeck",
|
||||||
version="7.23.0",
|
version="7.24.0",
|
||||||
docs_url="/docs",
|
docs_url="/docs",
|
||||||
redoc_url="/redoc",
|
redoc_url="/redoc",
|
||||||
lifespan=lifespan,
|
lifespan=lifespan,
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@
|
|||||||
"openapi": "3.1.0",
|
"openapi": "3.1.0",
|
||||||
"info": {
|
"info": {
|
||||||
"title": "FlowDeck",
|
"title": "FlowDeck",
|
||||||
"version": "7.23.0"
|
"version": "7.24.0"
|
||||||
},
|
},
|
||||||
"paths": {
|
"paths": {
|
||||||
"/auth/register": {
|
"/auth/register": {
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -294,7 +294,7 @@ def test_editor_has_autocomplete(client):
|
|||||||
|
|
||||||
|
|
||||||
def test_database_has_ai_properties(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 "db-ai-fill-btn" in src
|
||||||
assert "aiFillRow" in src
|
assert "aiFillRow" in src
|
||||||
assert "/api/agent/writing/properties" in src
|
assert "/api/agent/writing/properties" in src
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ from __future__ import annotations
|
|||||||
|
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
import pathlib
|
||||||
import secrets
|
import secrets
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
@@ -273,8 +274,10 @@ def test_collection_page_renders_multi_view(client):
|
|||||||
resp = client.get(f"/pages/{page}", cookies={"flowdeck_session": cookie})
|
resp = client.get(f"/pages/{page}", cookies={"flowdeck_session": cookie})
|
||||||
assert resp.status_code == 200
|
assert resp.status_code == 200
|
||||||
assert "db-view-bar" in resp.text
|
assert "db-view-bar" in resp.text
|
||||||
assert "FlowDeckDB" in resp.text
|
|
||||||
# New view types + settings are available client-side.
|
# New view types + settings are available client-side.
|
||||||
assert "db-board" in resp.text
|
# (A27 : le JS de la DB est extrait dans static/js/database_table.js.)
|
||||||
assert "db-cal-grid" in resp.text
|
src = pathlib.Path("static/js/database_table.js").read_text(encoding="utf-8")
|
||||||
assert "db-gallery" in resp.text
|
assert "FlowDeckDB" in src
|
||||||
|
assert "db-board" in src
|
||||||
|
assert "db-cal-grid" in src
|
||||||
|
assert "db-gallery" in src
|
||||||
|
|||||||
@@ -417,7 +417,7 @@ def test_notification_prefs_extended_keys(client):
|
|||||||
|
|
||||||
def test_calendar_front_end_wired(client):
|
def test_calendar_front_end_wired(client):
|
||||||
import pathlib
|
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 "calendar/api" in src
|
||||||
assert "data-cal-mode" in src and "refreshCalendar" in src
|
assert "data-cal-mode" in src and "refreshCalendar" in src
|
||||||
assert "openEventEditor" in src and "__recurrence__" in src and "__reminder__" in src
|
assert "openEventEditor" in src and "__recurrence__" in src and "__reminder__" in src
|
||||||
|
|||||||
Reference in New Issue
Block a user