fix: side peek des bases repasse en vanilla JS + largeur 1100px standard (v7.49.0)
FlowDeck CI / test (push) Failing after 3h13m58s
FlowDeck CI / lint (push) Successful in 2m12s
FlowDeck CI / docker (push) Skipped

- Panneau peek: les bindings Alpine (x-data absent du conteneur) rendaient
  loovverture et le redimensionnement inoperants -> cblage direct sur le document.
- Helper unique window.fdWirePeekResize (app.js): pointer capture, 300px-90vw,
  clic=fermer, largeur persiste fd_peek_width partagee entre les 4 peeks.
- database-table-container margin:0 (tableau colle a gauche, marge Library).
- .lib-container remonte dans app.css (trash etait pleine largeur), .db-index 1100px.
- ObsiGate verifie sans code: creation .xlsx OK (openpyxl, #186).
This commit is contained in:
2026-10-05 22:47:36 -04:00
parent 894004a1f5
commit 1d1cdbd618
63 changed files with 9473 additions and 393 deletions
+31
View File
@@ -1553,3 +1553,34 @@ def _migration_sso_enterprise_auth(conn: sqlite3.Connection) -> None:
conn.execute(
"CREATE INDEX IF NOT EXISTS idx_sso_requests_created ON sso_requests(created_at)"
)
@register(30, "v7.47.0: My Tasks — mapping des propriétés de base de tâches")
def _migration_my_tasks_mapping(conn: sqlite3.Connection) -> None:
"""My Tasks façon Notion : une base ne diffuse ses tâches qu'après
conversion explicite, et les trois propriétés requises sont **nommées**
(pas devinées d'après leur type).
``collections.is_task`` existait déjà mais ne mémorisait rien : My Tasks
devait deviner « la colonne personne = Assigné à » et n'avait aucun moyen
de distinguer deux bases connectées. Trois colonnes nullable REFERENCES
fixent le mapping ; suppression de la propriété → `SET NULL`, et la base
redevient « non configurée » au lieu de pointer sur du vide.
"""
cols = columns(conn, "collections")
for name, target in (
("task_assignee_prop", "collection_properties"),
("task_status_prop", "collection_properties"),
("task_due_prop", "collection_properties"),
):
if name in cols:
continue
conn.execute(
f"ALTER TABLE collections ADD COLUMN {name} INTEGER "
f"REFERENCES {target}(id) ON DELETE SET NULL"
)
# Index de lecture : « les bases de tâches de cet utilisateur ».
conn.execute(
"CREATE INDEX IF NOT EXISTS idx_collections_task "
"ON collections(is_task, workspace_id)"
)