[DTP-Worker] Sprint 4 · Générateur Workspaces ERPNext 5 portails rôle (Frontend Console · roadmap L49)
Livre le dernier volet ouvert de Sprint 4 : Frontend Console « 5 portails (Ventes/Construction/Achat/Compta/Direction) ». Contrainte #1 (ERPNext natif) : le portail de landing par rôle EST le DocType Workspace v15 → 5 Workspaces natifs. Anti-invention (#6) : rôles et DocTypes dérivés du contrat rbac_50_roles.json ; chaque lien/raccourci vise un DocType présent dans les permissions_cibles du portail (droit prouvé) ; couverture exhaustive ; flag custom issu du contrat ; tokens de marque repris verbatim de CLAUDE.md #4. CLI + 12 invariants + 19 tests (4 négatifs). Régression 260 tests verts. Hand-off VPS #8 documenté. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,50 @@
|
||||
# Activity Log · 2026-07-30 · Claude Code DTP
|
||||
|
||||
## Session `20260730_072711` (session 15)
|
||||
|
||||
**Tâche** : Sprint 4 · Frontend Console — Générateur de **Workspaces ERPNext
|
||||
(5 portails rôle)** (roadmap ligne 49 « 5 portails (Ventes/Construction/Achat/
|
||||
Compta/Direction) » ; dernier volet ouvert de Sprint 4, les volets CRM et ERPNext
|
||||
Backend ayant été livrés sessions 11-14).
|
||||
|
||||
**Décision d'architecture (#1 ERPNext natif)** : dans ERPNext v15, le portail de
|
||||
landing par rôle **EST le DocType `Workspace`** → on livre 5 Workspaces natifs,
|
||||
pas de framework de dashboard externe.
|
||||
|
||||
**Fichiers créés** — `05_deliverables_mvp/frontend/portails/` :
|
||||
- `portails_spec.json` (mise en page seule : cartes/raccourcis/thème · aucun
|
||||
DocType ni rôle hors contrat)
|
||||
- `wslib/{__init__,frappe,builder}.py` (connaissance Frappe `Workspace` + enfants ·
|
||||
dérive rôles et DocTypes du contrat `rbac_50_roles.json`)
|
||||
- `workspaces_gen.py` (CLI `build`/`validate` · 12 invariants de cross-cohérence)
|
||||
- `workspace.schema.json` (contrat de sortie draft-07)
|
||||
- `out/{workspace,MANIFEST}.json` (hand-off) · `tests/test_workspaces.py`
|
||||
(19 tests dont 4 négatifs) · `README.md` · `.gitignore`
|
||||
|
||||
**Fichiers modifiés** :
|
||||
- `.gitea/workflows/ci.yml` : job `frontend-portails-tests` + ajout au `gate`.
|
||||
|
||||
**Anti-invention (cœur · #6)** : la source de vérité est le contrat RBAC, jamais
|
||||
la spec. Tout lien/raccourci vise un DocType présent dans les `permissions_cibles`
|
||||
du portail (droit prouvé) ; couverture exhaustive sans doublon ; flag `custom`
|
||||
issu du contrat ; aucun chiffre stocké (compteurs live du desk) ; tokens de marque
|
||||
(`#0a0a12`/`#f0b429`/Fraunces/Cormorant) repris verbatim de CLAUDE.md #4 avec source.
|
||||
|
||||
**Résultat** : 5 Workspaces (Ventes/Construction/Achat/Compta/Direction), 44 rôles
|
||||
restreints ; console technique `plateforme` exclue (roadmap = 5 portails métier).
|
||||
|
||||
**Vérifs** : 19/19 tests ; gate CI local vert (guard + JSON + docs + YAML) ;
|
||||
régression **260 tests verts** au total ; build déterministe.
|
||||
|
||||
**Hors périmètre worker (VPS · #8)** : fixer `Workspace.module` à l'import + créer
|
||||
les DocTypes custom (`CONFOTUR Application`, `Faisabilité`, `Publiciste Log`) +
|
||||
appliquer le thème desk → agents ERPNext Backend / Frontend Console.
|
||||
|
||||
**Détail complet** : voir
|
||||
[`05_deliverables_mvp/daily_reports/2026-07-30-session15.md`](../05_deliverables_mvp/daily_reports/2026-07-30-session15.md).
|
||||
|
||||
**Auto-score 4Big** : 96/100.
|
||||
|
||||
## Session `20260730_065711` (session 14)
|
||||
|
||||
**Tâche** : Sprint 4 · ERPNext Backend — Générateur de **configuration e-CF DGII
|
||||
|
||||
Reference in New Issue
Block a user