Checkpoint: Migration complète localStorage → BDD : useBudgetData, ParametresContext, Budget2027, DsiCapex, DsiOpex, ImportModal (indicateur inventaires + suppression double-écriture). Ajout procédures tRPC : inventaire.listMeta, inventaire.getStats, opex.initFromSource, opex.deleteAll, opex.cloneFromN1. 14 tests Vitest passants. 0 erreur TypeScript.
This commit is contained in:
26
todo.md
26
todo.md
@@ -10,33 +10,33 @@
|
||||
- [x] Routes tRPC : users.list, users.create, users.update, users.delete, users.importBulk
|
||||
- [x] Routes tRPC : etablissements.list, etablissements.upsert, etablissements.delete
|
||||
- [x] Routes tRPC : parametres.get, parametres.set, parametres.setBulk
|
||||
- [x] Routes tRPC : opex.getPostes, opex.upsertPoste, opex.getMontantsEtab, opex.setMontantEtab, opex.getValidated, opex.validate
|
||||
- [x] Routes tRPC : inventaire.get, inventaire.import
|
||||
- [x] Routes tRPC : opex.getPostes, opex.upsertPoste, opex.getMontantsEtab, opex.setMontantEtab, opex.getValidated, opex.validate, opex.initFromSource, opex.cloneFromN1
|
||||
- [x] Routes tRPC : inventaire.get, inventaire.import, inventaire.getStats, inventaire.listMeta
|
||||
- [x] Routes tRPC : capex.get, capex.save
|
||||
- [x] Page de connexion avec branding Itinova/Santinova
|
||||
- [x] Protection des routes (ProtectedRoute dans App.tsx)
|
||||
- [x] Protection des routes (ProtectedRoute dans App.tsx — useEffect)
|
||||
- [x] Hook useAuth branché sur tRPC (auth.me)
|
||||
- [x] Bouton déconnexion dans la sidebar
|
||||
- [x] Page Paramètres — onglet Établissements branché sur tRPC
|
||||
- [x] Page Paramètres — onglet Utilisateurs branché sur tRPC
|
||||
- [x] ImportModal — import inventaire sauvegardé en BDD via tRPC
|
||||
- [x] ImportModal — import inventaire sauvegardé en BDD via tRPC (sans double-écriture localStorage)
|
||||
- [x] ImportModal — import établissements sauvegardé en BDD via tRPC
|
||||
- [x] ImportModal — import utilisateurs sauvegardé en BDD via tRPC
|
||||
- [x] ImportModal — indicateur "État des inventaires par année" branché sur tRPC (inventaire.listMeta)
|
||||
- [x] Tests Vitest (14 tests passent) : auth.logout, auth.me, auth.login, etablissements.list, users.list, parametres.get
|
||||
|
||||
## Fonctionnalités existantes (localStorage — conservées)
|
||||
## Migration des pages d'affichage vers BDD
|
||||
|
||||
- [x] Page Renouvellement PC (Home.tsx) — données inventaire depuis localStorage
|
||||
- [x] Page Budget 2027 — données depuis localStorage
|
||||
- [x] Page DSI CAPEX — données depuis localStorage
|
||||
- [x] Page DSI OPEX — données depuis localStorage
|
||||
- [x] Pages Santinova, Soins Santé, St-Exupéry — données depuis localStorage
|
||||
- [x] Contexte Paramètres (seuils, coûts) — localStorage
|
||||
- [x] Contexte Année — localStorage
|
||||
- [x] useBudgetData — lit depuis tRPC (inventaire.getStats)
|
||||
- [x] ParametresContext — lit/écrit depuis tRPC (parametres.get, parametres.setBulk)
|
||||
- [x] Page Renouvellement PC (Home.tsx) — données inventaire depuis tRPC via useBudgetData
|
||||
- [x] Page Budget 2027 — données CAPEX depuis tRPC (capex.get, capex.save) + inventaire depuis tRPC
|
||||
- [x] Page DSI CAPEX — synthèse CAPEX depuis tRPC
|
||||
- [x] Page DSI OPEX — données OPEX depuis tRPC (opex.*)
|
||||
- [x] Pages Santinova, Soins Santé, St-Exupéry — pages "Coming Soon" (pas de données)
|
||||
|
||||
## Améliorations futures
|
||||
|
||||
- [ ] Migrer les pages Budget2027, DsiCapex, DsiOpex pour lire depuis la BDD via tRPC
|
||||
- [ ] Gestion des droits par établissement (userEtablissements)
|
||||
- [ ] Export PDF/Excel des budgets
|
||||
- [ ] Historique des modifications (audit log)
|
||||
|
||||
Reference in New Issue
Block a user