Files
flowdeck/app/routers/dashboard/__init__.py
T
bruno c0925e511b
FlowDeck CI / lint (push) Successful in 1m56s
FlowDeck CI / docker (push) Canceled after 0s
FlowDeck CI / test (push) Canceled after 9m39s
refactor: A28 lot 2 — dashboard.py (2 735 L) → package 10 fichiers (v7.30.0)
Découpe par concern de l'ancien app/routers/dashboard.py (2 735 lignes,
63 routes) en package `app/routers/dashboard/` :

- 8 modules de routes : local_workspace 559 L (15 r.), pages_html 485 (6),
  account_settings 439 (16), workspace 321 (9), pages_api 240 (6),
  workspaces 131 (6), public 78 (1), account_api 77 (4)
- _common.py (774 L) : les 15 helpers top-level INTERCALÉS dans l'ancien
  fichier + état (logger, _VERSION, WORKSPACE_COOKIE)
- __init__.py : ordre d'enregistrement identique à l'origine, re-export
  complet (7 importateurs inchangés : main, board ×3, my_tasks,
  web_clipper, wiki, sites `_dash._render_blocks_public`, tests) + __all__

Preuve contractuelle : docs/openapi-v2.json régénéré = IDENTIQUE
byte-à-byte (509 chemins, ordre préservé).

Pièges rattrapés :
- segment décorateur sans sa fonction → assert `def in seg` + récupération
  git (corps perdus en silence à la 1ʳᵉ exécution)
- collision `settings` (section vs from app.config import settings →
  hasattr du fromlist) → renommée account_settings
- WORKSPACE_COOKIE utilisé sans import dans workspaces.py (F821)
- script __all__ mangeant la fin du fichier → __init__ réécrit

Reste A28 : collections.py 2 622 L, board.py 2 101 L (lot 3).

suite **1091/1091** · ruff OK · OpenAPI 509 identique · docs à jour
2026-10-02 07:47:41 -04:00

78 lines
1.7 KiB
Python

"""FlowDeck — Dashboard (pages HTML + API de l'app).
Découpe A28 : l'ancien `dashboard.py` (2 735 lignes, 63 routes) est
devenu ce package — un module par concern, helpers dans `_common`,
re-export de tout ce que les 7 importateurs existants utilisent
(main, board, my_tasks, web_clipper, wiki, sites, tests).
"""
from __future__ import annotations
import logging
from fastapi import APIRouter
from . import ( # ordre = ordre d'enregistrement d'origine (openapi identique)
account_api,
account_settings,
local_workspace,
pages_api,
pages_html,
public,
workspace,
workspaces,
)
from ._common import ( # noqa: F401 — re-export des helpers
_VERSION,
WORKSPACE_COOKIE,
_build_breadcrumb,
_build_tree_children,
_file_page_disk_path,
_format_size,
_get_active_workspace,
_get_app_version,
_get_user_id,
_get_user_or_redirect,
_local_workspaces_for_user,
_nav_breadcrumb,
_render_blocks_public,
_require_page_view,
_require_user_id,
_sanitize_id,
_sidebar_data,
)
logger = logging.getLogger(__name__)
router = APIRouter()
for _mod in (
pages_html,
account_api,
workspace,
local_workspace,
workspaces,
account_settings,
public,
pages_api,
):
router.include_router(_mod.router)
__all__ = [
"router",
"WORKSPACE_COOKIE",
"_VERSION",
"_build_breadcrumb",
"_build_tree_children",
"_file_page_disk_path",
"_format_size",
"_get_active_workspace",
"_get_app_version",
"_get_user_id",
"_get_user_or_redirect",
"_local_workspaces_for_user",
"_nav_breadcrumb",
"_render_blocks_public",
"_require_page_view",
"_require_user_id",
"_sanitize_id",
"_sidebar_data",
]