Commit Graph
95 Commits
Author SHA1 Message Date
bruno 246aef65ac docs: v2.2 + ROADMAP v3.0 — multi-user, multi-forge, standalone
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
ROADMAP.md: 7 phases détaillant la migration vers une plateforme:
- Phase 1: Auth locale (password + OAuth Gitea/GitHub)
- Phase 2: Abstraction multi-forge (adapter pattern)
- Phase 3: Workspace page + navigation projet
- Phase 4: Mode standalone (sans forge)
- Phase 5: Permissions collaboratives
- Phase 6: UI/UX polishing
- Phase 7: Infrastructure (DB, tests, CI/CD)

WORKLOAD.md: v2.1 → v2.2 (Share/Publish/Favorites/Library),
cible v3.0 ajoutée
2026-07-10 15:26:57 -04:00
bruno ca144e29d1 feat: shared pages now appear in sidebar Shared section
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
Pages with share_mode='anyone' or published=1 are now listed in the
left sidebar Shared section. Icon shows 🌐 for published pages,
🔗 for anyone-with-link pages. Updated _sidebar_data() to query
the pages table for shared/published pages.
2026-07-10 15:04:50 -04:00
bruno e0102d2617 Reformat HTML in page editor template
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
2026-07-10 14:45:17 -04:00
bruno 806ec495f0 fix: add missing closing brace for toggleFavorite() method
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
The toggleFavorite() function body was missing its closing },
causing togglePublish(){...} to be parsed inside toggleFavorite()
body. The { at togglePublish() column was the 'Unexpected token {'
SyntaxError that prevented ALL JavaScript from executing.

Root cause of ALL Alpine 'is not defined' errors since the refactor.
2026-07-10 14:17:25 -04:00
bruno f87aaa7ead fix: 500 on /pages/{id} — missing page_data in dashboard.py context
FlowDeck CI / test (push) Failing after 3s
FlowDeck CI / docker (push) Has been skipped
Same pattern as f7d9d91: dashboard.router is registered before board.router
in main.py, so its /pages/{id} takes priority. Added page_data dict to match
the new JSON script tag approach.
2026-07-10 14:13:08 -04:00
bruno be98f9d504 fix: eliminate x-data quoting bug by moving page data to JSON script tag
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
Root cause: x-data HTML attribute with tojson creates quote conflicts
that survive even Cache-Control: no-store (likely nginx proxy cache).

Solution: page data is now in a <script type=application/json> tag,
completely decoupled from Alpine x-data HTML attribute. Zero quoting
issues regardless of page content.

- x-data="editorState()" + x-init="loadPage()" replaces editor(...)
- Server passes page_data dict, template renders as JSON script tag
- Same approach used for page_share_mode and page_published
- All 73 tests pass
2026-07-10 14:11:01 -04:00
bruno 79b0bdd22d fix: autoSave not defined in title input — use save() directly
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
The @input handler on the title called autoSave() which wasn't in
scope. Changed to save() which is available on the Alpine x-data object.
The debounce is already handled internally.
2026-07-10 13:28:24 -04:00
bruno 5850085c8b fix: add Cache-Control: no-store to prevent stale JS in browser cache
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
Both board.py and dashboard.py page endpoints now return
Cache-Control: no-store, max-age=0 headers to prevent the browser
from caching the page HTML with broken x-data attributes.
2026-07-10 13:25:35 -04:00
bruno 4f0bd85e35 fix: x-data quotes conflict — tojson double-quotes break HTML attribute
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
tojson outputs JSON with double quotes, which clash with x-data="..."
HTML attribute delimiter. Changed x-data delimiters to single quotes
so JSON double quotes are contained properly within the attribute.
2026-07-10 13:11:20 -04:00
bruno db6acf0ec3 fix: JS syntax error on pages with special characters in content
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
x-data editor() arguments used manual |e escaping with single quotes.
Page content containing newlines, quotes or backslashes broke the
JavaScript string literal. Now uses |tojson filter for all fields
(proper JSON escaping).
2026-07-10 13:07:27 -04:00
bruno f7d9d91723 fix: 500 error on /pages/{id} — missing page_share_mode in dashboard.py
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
dashboard.router is registered before board.router in main.py, so its
/pages/{page_id} takes priority. It was missing page_share_mode and
page_published template variables, causing Jinja2 TypeError.
2026-07-10 13:02:53 -04:00
bruno 6033a0b1e4 fix: share persistence + clipboard fallback + auto-save
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- DB: pages.share_mode (private/invited/anyone) + published (bool)
- API: POST /board/api/share/{id} saves share settings to DB
- view_page: passes page_share_mode + page_published to template
- page_editor: inits share state from server, auto-saves on change
- Clipboard: fallback to textarea for HTTP (navigator.clipboard blocked)
- Toast: showToast() with proper timeout clearing
2026-07-10 12:03:32 -04:00
bruno c75cdab134 feat: server-side share persistence — DB columns + API + sidebar
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- pages table: added share_mode (private/invited/anyone) and published (bool)
- board.py: view_page now loads share_mode + published from DB
- page_editor.html: initializes shareTab, generalAccess, pagePublished from server
- Clipboard: fallback to textarea copy for HTTP (no HTTPS required)
- Toast: guaranteed visible with fixed positioning and Alpine x-show
- Sidebar Shared section: renders shared_pages (pages with share_mode != private)
2026-07-10 12:01:34 -04:00
bruno fe4e28e23c fix: Share dialog alignment, z-index, access menu colors, shared section
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- Dialog right edge aligns with Share button area (right: 72px)
- z-index raised to 999 to prevent being hidden by other layers
- Max-height reduced to 65vh to fit viewport
- Access menu: !important dark background, proper option styling
- Sidebar Shared section now renders shared_pages dynamically
- board.py: shared_pages added to _sidebar_data() return
2026-07-10 11:56:02 -04:00
bruno 4a58261c02 fix: Jinja2/Alpine conflict — raw block around x-for template
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
Jinja2 tried to evaluate {{ a.email[0].toUpperCase() }} inside Alpine.js
x-for template, causing UndefinedError. Wrapped in {% raw %} block.
Also changed avatars to use x-text binding instead of {{ }} interpolation.
2026-07-10 11:40:00 -04:00
bruno 124bb3cd9f feat: Share/Publish dialog — Notion-style with tabs, permissions, publish
FlowDeck CI / test (push) Failing after 3s
FlowDeck CI / docker (push) Has been skipped
Complete redesign per Bruno's spec:
- Floating dialog (440px, 18px radius) under Share button
- Header: Share | Publish tabs with active underline, close button
- Share tab: invite input, participants list with role dropdowns,
  General Access (Only invited / Anyone with link), footer with Copy link
- Publish tab: preview card, Publish button (before), URL bar + settings
  rows (link expiry, SEO, duplicate, edit, comments) + Unpublish (after)
- Toast notification for copy link (bottom centered, 2500ms)
- Colors: #1F1F1F surface, #2A2A2A secondary, #2383E2 accent
- Toggle: OFF=#555, ON=#2383E2, thumb=white 16px
2026-07-10 11:36:28 -04:00
bruno ed1b5d4193 fix: Share panel — General Access dropdown + Publish section
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
Share panel restructured to match Notion:
- General Access: dropdown with 'Only people invited' / 'Anyone with the link'
- Invite: email + permission selector
- Publish to web: toggle + URL input + Copy link button
- Copy page link at bottom

CSS: .share-access-btn and .share-access-menu for the access dropdown
2026-07-10 11:05:45 -04:00
bruno d92e26f01b fix: restore missing .share-dropdown and .more-menu CSS, reposition Get Started
FlowDeck CI / test (push) Failing after 3s
FlowDeck CI / docker (push) Has been skipped
- Share dropdown and More menu CSS were accidentally removed — restored
- Share dropdown: position absolute under button (top: calc(100% + 4px))
- Get Started toolbar: bottom: 28px to clear the editor statusbar
- Removed gradient background that was cut off by statusbar
2026-07-10 10:59:32 -04:00
bruno 6015a415d4 fix: remove duplicate topbar on page editor, position Get Started at bottom
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- base.html topbar wrapped in {% block topbar %} for override
- page_editor.html overrides topbar block with empty content (uses its own)
- Get Started toolbar: fixed to bottom center with gradient fade
- No more double Share/Link/Star buttons
2026-07-10 10:53:40 -04:00
bruno 65fcda0ca0 fix: page editor — share dropdown, pill toolbar, link copy
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
Share panel: dropdown under Share button (not modal), with Private status,
Copy link, Publish toggle, Invite section — matches Notion design.

Get Started toolbar: at bottom with pill-shaped buttons (border-radius:9999px),
shows Ask AI, AI meeting note, Database, Form, Templates, … (Table/Board/List/
Timeline/Calendar/Gallery/Import).

Link copy button (🔗): uses navigator.clipboard, shows '✓ Copied' feedback.

Removed old modal overlay CSS, replaced with .share-dropdown + .gs-pill styles.
2026-07-10 10:49:00 -04:00
bruno b1304b76e8 feat: Notion page editor — top bar, share modal, star toggle, empty toolbar
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
Replicates Notion's page layout from reference images:
- Top bar: Private badge, Share button, Link copy, Star/favorite toggle, ⋮ menu
- Share modal: Publish toggle, Copy link, Invite people with permission select
- Empty page toolbar: Get started with H1/H2/H3/bullet/todo/callout/quote
- Star toggle integrated with favorites API (POST/DELETE /board/api/favorites)
- board.py view_page now passes workspace context + page_favorited
- dashboard.py view_page_root also passes page_favorited
- CSS: .page-topbar, .share-modal, .empty-page-toolbar, toggle switch, more menu
2026-07-10 10:37:39 -04:00
bruno 85d983c56b Add Notion UI reference images
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
2026-07-10 10:27:49 -04:00
bruno f5fedf1d7b fix: Private tab in library now shows pages by parent_section, not workspace
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
Bug: lib_private filtered on p.source == '🔒 Private' which only matched pages
without a workspace. All pages have parent_section='Private' by default, so
filtering by source excluded them all.

Fix: add 'section' field to page dict from parent_section DB column,
filter lib_private by p.section == 'Private'
2026-07-10 10:01:19 -04:00
bruno b2426a3504 fix: library tabs now switch content — single Alpine scope
FlowDeck CI / test (push) Failing after 3s
FlowDeck CI / docker (push) Has been skipped
Bug: two separate x-data='{ tab }' scopes (one on tabs, one on table)
→ clicking tabs changed tab in first scope, x-show looked at second scope
Fix: single x-data wrapper around both tabs and table divs
2026-07-10 09:55:05 -04:00
bruno 0de4f411bd feat: complete favorites system — sidebar, library, context menu, API
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
6 files changed:
- db.py: migrate favorites table FK from collection_pages(id) to pages(id)
- board.py: add favorites API (POST/DELETE /board/api/favorites/{id}, GET list)
- board.py: _sidebar_data() now loads favorite_pages from DB via JOIN
- dashboard.py: library_page loads lib_favorites from DB (not parent_section)
- csrf.py: exclude /board/api/favorites from CSRF checks
- base.html: context menu toggles Add/Remove Favorites based on state
- base.html: favoriteIds Alpine set initialized from server-rendered favorites
- test_app.py: test_favorites_crud rewritten for new page-based favorites API

Favorites now work end-to-end:
- Right-click → Add to Favorites (or Remove if already favorited)
- Sidebar Favorites section shows favorited pages
- Library Favorites tab shows the same pages
- API: POST/DELETE /board/api/favorites/{page_id}, GET /board/api/favorites
2026-07-10 09:44:20 -04:00
bruno fbf0335c3a fix: Library preserves sidebar tree and categorizes by parent_section
FlowDeck CI / test (push) Failing after 8s
FlowDeck CI / docker (push) Has been skipped
- Sidebar data (board._sidebar_data()) no longer overwritten by library content
- New variables: lib_recent, lib_favorites, lib_shared, lib_private
- Pages categorized by parent_section column: Private/Favorites/Shared
- Recents tab shows all non-trashed pages ordered by updated_at
- library.html updated to use lib_* variables instead of sidebar data
- Favorites/Shared tabs hidden when empty (lib_has_favorites/lib_has_shared)
2026-07-10 09:31:18 -04:00
bruno a251ccfe2d fix: Library button preserves workspace context
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
3 bugs fixed:
1. dashboard.py /library was registered before board.router and had no workspace context → removed old endpoint, re-added with owner/repo params using board._sidebar_data()
2. base.html navigateTo('/library') lost workspace → now auto-appends ?owner=X&repo=Y from workspaceKey
3. openLibrary(id) used bare window.location.href → now uses this.navigateTo()

Now the Library page:
- Shows pages filtered by workspace when coming from a project
- Preserves the sidebar context (no more Admin Dashboard fallback)
- Tabs (Recents, Favorites, Shared, Private) display project pages from DB
2026-07-10 09:19:47 -04:00
bruno 3ed2181e89 feat: add Understand-Anything knowledge graph for FlowDeck
FlowDeck CI / test (push) Failing after 5s
FlowDeck CI / docker (push) Has been skipped
- 267 nodes, 518 edges across 9 architectural layers
- 13-step guided tour in French
- 9 languages detected (Python, JavaScript, HTML, CSS, YAML, JSON, Markdown, Dockerfile, TOML)
- 6 frameworks (FastAPI, Pydantic, Uvicorn, pytest, Docker, Docker Compose)
- Generated via Understand-Anything multi-agent pipeline
2026-07-10 08:56:28 -04:00
bruno c86c04ca22 docs: résultats du run de tests (55/61) + bogues corrigés
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
2026-07-10 08:23:03 -04:00
bruno 6b67b25d27 fix: CSRF token manquant dans les fetch() POST du board et card detail
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- board.html: ajout X-CSRF-Token header sur fetch /api/move et /api/issues
- card_detail.html: ajout helper getCsrf() + header sur tous les fetch POST/PATCH
- Sans ce fix, drag & drop, création issue, checklists échouent en production
2026-07-10 08:22:42 -04:00
bruno d940481a6f docs: grille de tests visuels (61 tests, 14 sections)
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
2026-07-10 08:11:35 -04:00
bruno 8aaf1676c0 fix: refresh board after drag & drop move
FlowDeck CI / test (push) Failing after 3s
FlowDeck CI / docker (push) Has been skipped
2026-07-10 08:06:06 -04:00
bruno 7c8f8d719e docs: CHANGELOG, README, WORKLOAD updated for v2.1.0 — complete
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- CHANGELOG: all 9 versions documented (v1.3 → v2.1)
- README: version 2.1.0, full feature list, 73/73 tests
- WORKLOAD: rewritten, 52/52 features (100%), architecture summary
2026-07-10 07:30:54 -04:00
bruno 80f56acf4c feat(v2.1.0): API publique + Webhooks sortants + PWA
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- Public API: /api/v1 (collections, pages, my-tasks) with token auth
- Token generation: POST /api/v1/token
- Outbound webhooks: /workspace/webhooks CRUD + fire_event dispatcher
- PWA: manifest.json endpoint
- CSRF exempt for /api/v1
- 73/73 tests passent (+6 tests v2.1)
- Version 2.0.0 → 2.1.0
- Docs: ROADMAP updated — 7/7 blocs, 52/52 features ✅
v2.1.0
2026-07-10 07:28:09 -04:00
bruno cd854e1dfe feat(v2.0.0): Multi-User Workspaces + Comments + History + Favorites + Templates + CSV + Public Sharing
FlowDeck CI / test (push) Failing after 5s
FlowDeck CI / docker (push) Has been skipped
- 7 new tables: workspaces, workspace_members, comments, page_history, favorites, database_templates, page_templates
- Router /workspace: 20 endpoints (CRUD workspaces, members, comments, favorites, history, templates, CSV import/export, public sharing)
- Roles: admin, editor, commenter, viewer
- FK user auto-insert for test compatibility
- CSRF exempt for /workspace paths
- 67/67 tests passent (+7 tests v2.0)
- Version 1.9.0 → 2.0.0
- Docs: ROADMAP updated (7/7 blocs completed)
v2.0.0
2026-07-10 07:22:34 -04:00
bruno f752ae2ed7 docs: ROADMAP v1.9.0 ✅ — 5 blocs complétés (37/52)
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
2026-07-09 23:09:05 -04:00
bruno ad95c87b01 feat(v1.9.0): My Tasks — dashboard cross-collection unifié
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- Nouveau router my_tasks.py: GET /my-tasks (HTML), GET /my-tasks/api (JSON)
- Agrège toutes les pages assignées à l'utilisateur sur toutes les collections
- Vues: All, Today, Overdue, Next 7 days
- Groupement par collection, filter admin auto
- 60/60 tests passent (+4 tests v1.9)
- Version 1.8.0 → 1.9.0
v1.9.0
2026-07-09 23:08:49 -04:00
bruno 4a6ed24315 feat(v1.7.0+v1.8.0): Vues Améliorées + Sub-items & Dépendances
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
v1.7.0 — View Management:
- PUT /db/views/{id}/config (group_by, card_size, cover, visible_properties)
- POST /db/{id}/views/save-as (save current state as new view)
- GET /db/{id}/views/api (list views)

v1.8.0 — Sub-items & Dependencies:
- parent_id auto-référence: GET/POST /db/{id}/pages/{pid}/sub-items
- Status aggregation: GET .../status-aggregate
- Dependencies: POST .../dependencies, POST .../check-deps (blocking constraint)
- 56/56 tests passent (+7 tests)
- Version 1.6.0 → 1.8.0
v1.8.0
2026-07-09 23:06:53 -04:00
bruno e725398543 feat(v1.6.0): Vues Manquantes — Calendar, Gallery, List, Timeline, Table SSR
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- 4 nouvelles vues HTML: calendar (grid mensuel), gallery (cartes), list (compacte), timeline (Gantt)
- Navigation entre vues via tabs (Table/Board/Calendar/Gallery/List/Timeline)
- _render_view dispatcher + _base_html template commun
- Routes: GET /db/{id}/view/{calendar,gallery,list,timeline}
- Default view = table (SSR avec properties)
- 49/49 tests passent (+6 tests v1.6)
- Version 1.5.0 → 1.6.0
v1.6.0
2026-07-09 23:03:51 -04:00
bruno b8647f1a19 feat(v1.5.0): Relations, Rollups, Formulas — FormulaEngine, RollupEngine, API
FlowDeck CI / test (push) Failing after 15s
FlowDeck CI / docker (push) Has been skipped
- FormulaEngine: 19 functions (prop, if, concat, round, now, today, dateAdd, replace, ...)
- RollupEngine: 12 aggregations (count, sum, avg, min, max, range, unique, percent_checked)
- API relation: POST /db/{id}/properties/relation + /link (bidirectional)
- API rollup: POST /db/rollup/compute
- API formula: POST /db/formula/evaluate
- FKs fix: related_collection_id/relation_property_id/target_property_id → ON DELETE SET NULL
- 43/43 tests passent (+5 tests v1.5)
- Version 1.4.0 → 1.5.0
- Docs: ROADMAP, CHANGELOG à jour
v1.5.0
2026-07-09 22:48:41 -04:00
bruno 16532d10bd feat(v1.4.0): Propriétés Avancées — collection_properties, 21 types, API CRUD
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- Table collection_properties (21 types Notion: number, checkbox, url, email, phone, status, files, unique_id, ...)
- Auto-propriétés: created_time, created_by, last_edited_time, last_edited_by
- Service property_types.py: validation, formatage, auto-values
- API: GET /db/property-types/api, CRUD /db/{id}/properties/api, PUT/DELETE /db/properties/{id}/api
- 38/38 tests passent (+4 nouveaux tests v1.4)
- Version 1.3.0 → 1.4.0
- Docs: ROADMAP, CHANGELOG, WORKLOAD, README à jour
v1.4.0
2026-07-09 22:43:16 -04:00
bruno d94817bac5 docs: ROADMAP v1.3.0 ✅ + WORKLOAD/README updated
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- ROADMAP: v1.3.0 déplacé dans Completed, item checkboxes [x]
- WORKLOAD: réécrit pour refléter v1.3.0 + plan v1.4.0
- README: version 1.3.0, features à jour, tests 34/34
2026-07-09 22:40:19 -04:00
bruno c574d2c8b5 feat(v1.3.0): Database Concept — collections, pages, views, GiteaBoardCompat
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
Database foundation:
- New tables: collections, collection_pages, collection_views
- Router /db with full CRUD API
- GiteaBoardCompat adapter for legacy board compatibility
- CSRF exemption for /db/ routes
- 34/34 tests pass
- Version bump 1.0.0 → 1.3.0
- Deployed and verified on Docker port 8080
v1.3.0
2026-07-09 22:33:39 -04:00
bruno b9723dffab feat(v1.3.0): Step 3 — Router /db avec API CRUD collections + pages
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- Nouveau router app/routers/collections.py
- GET/POST/PUT/DELETE /db pour les collections
- POST/GET/PUT/DELETE pour les pages dans une collection
- Vue HTML basique par collection + vue par défaut auto-créée
- CSRF exempté pour /db/
- 5 nouveaux tests (collections list, CRUD, pages CRUD, validation, HTML render)
- 33/33 tests passent
2026-07-09 22:30:05 -04:00
bruno 3967c7df85 feat(v1.3.0): Step 2 — DB tables collections, collection_pages, collection_views
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- Ajout des 3 nouvelles tables pour le Database Concept
- collections: base de données abstraite, indépendante de Gitea
- collection_pages: pages génériques avec parent_id et property_values_json
- collection_views: vues configurables par collection
- Mise à jour test_db_tables_exist pour inclure les nouvelles tables
- 28/28 tests passent
2026-07-09 22:26:45 -04:00
bruno 66ae1289a9 docs: ROADMAP v1.3-v2.1 + ARCHITECTURE v2.0 complète
FlowDeck CI / test (push) Failing after 6s
FlowDeck CI / docker (push) Has been skipped
ROADMAP.md:
- 52 fonctionnalités manquantes organisées en 7 phases (v1.3 → v2.1)
- v1.3: Database Concept (collections, pages, views)
- v1.4-v1.5: Propriétés avancées (number, checkbox, status, relation, rollup, formula)
- v1.6-v1.7: Vues manquantes (calendar, timeline, gallery, list, group_by, filters)
- v1.8: Sub-items & Dépendances
- v1.9: My Tasks & Dashboard unifié
- v2.0: Éditeur complet + Multi-utilisateurs
- v2.1: Intégrations avancées (API, webhooks, n8n, mobile PWA)

ARCHITECTURE.md (63 Ko, 15 sections):
- Architecture système complète (schéma ASCII détaillé)
- Modèle de données: 22 tables SQL (existantes + nouvelles)
- Diagramme des relations entre tables
- Routes API complètes: 80+ endpoints documentés
- Frontend: layout, 6 vues, composants réutilisables
- Authentification OAuth2 + modèle de permissions multi-user
- Intégration Gitea: flux, sync, adaptateur de compatibilité
- Système de propriétés: 18 types, formula engine, rollup engine
- Système de vues: config JSON, chaîne de rendu
- Sub-items: auto-référence, affichage imbriqué
- Dépendances: contraintes, flèches timeline
- My Tasks: algorithme d'agrégation cross-collection
- Éditeur de blocs: 15+ block types, format JSON
- Multi-utilisateurs: workspaces, ACL, historique, commentaires
- Déploiement: Docker Compose + migration PostgreSQL
2026-07-09 21:38:28 -04:00
bruno 1dea15ad90 docs: Guide Notion Database & Tasks — analyse complète pour FlowDeck
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- Anatomie des Databases Notion (Collection/CollectionView/Pages)
- 21 types de propriétés, 6 types de vues, Relations & Rollups
- Architecture des Tasks (sub-items auto-référencés, dépendances)
- Plan d'implémentation en 6 phases avec SQL, Python et HTML
- Rétrocompatibilité avec les boards Gitea existants
2026-07-09 17:41:21 -04:00
bruno f04003f060 Add guide for cloning Notion databases and tasks
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
Also add screenshots of Notion trash menu and library section.
2026-07-09 16:40:20 -04:00
bruno 780cccf79f feat: Notion sidebar complete — 7 sections, nav icons, auto-update title
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- Sidebar: 7 collapsible sections (Meetings, Recents, Favorites, Agents, Shared, Private, Notion apps)
- Nav icon row: Home with text + icon, Chat/Inbox/Search icon-only, collapse on right
- Notion apps: Library, My Tasks, Trash, Help
- Footer: New chat Ctrl+O + New page buttons
- Auto-update: sidebar items reflect title changes immediately on save
- CSS: nav-icon-btn, home-btn, collapse-btn, empty-hint, outline none
2026-07-09 16:39:22 -04:00
bruno c02e00726e Add Notion navigation menu screenshots
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
2026-07-09 15:48:26 -04:00