112 lines
6.2 KiB
Markdown
112 lines
6.2 KiB
Markdown
# SONUM - Todo
|
|
|
|
## Base de données & Backend
|
|
- [x] Schéma DB : tables établissements, solutions, éditeurs, blocs fonctionnels, logiciels_etablissements
|
|
- [x] Schéma DB : tables demandes_contact, consultations (traçabilité), cgu_acceptances
|
|
- [x] Données de référence : régions, types d'activité, blocs fonctionnels, états déploiement, modes hébergement
|
|
- [x] Procédures tRPC : CRUD solutions et éditeurs
|
|
- [x] Procédures tRPC : CRUD établissements et rattachement logiciels
|
|
- [x] Procédures tRPC : moteur de recherche multicritères
|
|
- [x] Procédures tRPC : fiche logiciels + compteur consultation
|
|
- [x] Procédures tRPC : prise de contact (email + notification)
|
|
- [x] Procédures tRPC : demandes de contact (liste, réponse)
|
|
- [x] Procédures tRPC : CGU (vérification + acceptation)
|
|
- [x] Procédures tRPC : gestion des rôles (admin/user)
|
|
|
|
## Interface & Design
|
|
- [x] Design system : couleurs FEHAP, typographie, tokens CSS
|
|
- [x] Layout principal avec navigation (sidebar + header)
|
|
- [x] Page de connexion / landing
|
|
- [x] Modale Charte CGU (1ère connexion)
|
|
- [x] Page d'accueil : moteur de recherche multicritères
|
|
- [x] Page résultats de recherche (tableau triable)
|
|
- [x] Page "Mes Établissements" (accordéons)
|
|
- [x] Formulaire de saisie guidé en étapes (rattacher une solution)
|
|
- [x] Mode édition complète inline des tableaux
|
|
- [x] Page fiche logiciels d'un établissement
|
|
- [x] Modale prise de contact
|
|
- [x] Page "Mes Demandes de Contact"
|
|
- [x] Interface gestionnaire SONUM (accès admin)
|
|
- [x] Lien retour espace adhérent FEHAP
|
|
|
|
## Tests
|
|
- [x] Tests unitaires procédures tRPC (14 tests passés)
|
|
|
|
## Évolution v2 — Profil Adhérent FEHAP & Auth locale
|
|
|
|
### Base de données
|
|
- [x] Étendre enum sonumRole : ajouter "adherent"
|
|
- [x] Table local_users : id, userId (FK), passwordHash, createdAt
|
|
- [x] Vérifier que la table users supporte les comptes créés manuellement (sans openId OAuth)
|
|
|
|
### Backend tRPC
|
|
- [x] Procédure admin.createUser : créer un utilisateur manuellement (nom, email, rôle, mot de passe)
|
|
- [x] Procédure admin.listUsers : liste complète des utilisateurs avec rôle et établissements
|
|
- [x] Procédure admin.updateUser : modifier nom, email, rôle d'un utilisateur
|
|
- [x] Procédure admin.deleteUser : supprimer un utilisateur
|
|
- [x] Procédure admin.setAffectations : affecter un ou plusieurs établissements à un adhérent
|
|
- [x] Procédure admin.removeEtablissement : retirer un établissement d'un adhérent (inclus dans setAffectations)
|
|
- [x] Procédure auth.loginLocal : authentification par email + mot de passe (JWT session)
|
|
- [x] Middleware : les adhérents FEHAP voient uniquement leurs établissements affectés
|
|
|
|
### Interface
|
|
- [x] Page de choix de connexion : OAuth FEHAP vs Connexion locale
|
|
- [x] Formulaire de connexion locale (email + mot de passe)
|
|
- [x] Page admin : onglet "Gestion des utilisateurs" avec tableau et actions CRUD
|
|
- [x] Page admin : affectations établissements inline dans le tableau utilisateurs
|
|
- [x] Badge "Adhérent FEHAP" dans le header et la sidebar
|
|
- [x] Vue "Mes Établissements" filtrée pour les adhérents (uniquement les établissements affectés)
|
|
|
|
## Évolution v3 — Gestion des établissements par utilisateur
|
|
- [x] Étendre admin.setAffectations pour accepter tous les rôles (référent + adhérent)
|
|
- [x] Interface Admin : panneau dédié "Établissements" par utilisateur avec liste complète, barre de recherche et cases à cocher
|
|
- [x] Afficher le nombre d'établissements affectés dans le tableau utilisateurs
|
|
|
|
## Évolution v4
|
|
|
|
- [x] CGU : afficher à chaque connexion (réinitialiser à chaque login, pas seulement à la fermeture du navigateur)
|
|
- [x] Moteur de recherche : corriger les filtres multicritères qui ne fonctionnent pas
|
|
- [x] Page "Mes Solutions Numériques" : liste de toutes mes solutions avec les établissements les utilisant (accordéon)
|
|
- [x] Page "Solutions Logicielles" : liste globale des solutions avec établissements équipés (accordéon), accessible depuis la sidebar
|
|
- [x] Admin : onglet import établissements (CSV/Excel)
|
|
- [x] Admin : onglet import contacts (CSV/Excel)
|
|
|
|
## Évolution v5
|
|
|
|
- [x] Solutions Logicielles : toggle vue accordéon / vue liste à plat (solutions + établissements visibles sans clic)
|
|
|
|
## Évolution v6
|
|
|
|
- [x] Admin : onglet "Éditeurs" — CRUD éditeurs (ajouter, modifier, supprimer)
|
|
- [x] Admin : onglet "Blocs fonctionnels" — CRUD blocs fonctionnels (ajouter, modifier, supprimer)
|
|
- [x] Backend : procédures tRPC CRUD éditeurs (createEditeur, updateEditeur, deleteEditeur)
|
|
- [x] Backend : procédures tRPC CRUD blocs fonctionnels (createBlocFonctionnel, updateBlocFonctionnel, deleteBlocFonctionnel)
|
|
- [x] Backend : procédure statistiques (stats par bloc fonctionnel, par région, taux de remplissage)
|
|
- [x] Page "Tableau de bord" : graphiques recharts (barres, camembert, indicateurs clés)
|
|
- [x] Lien "Tableau de bord" dans la sidebar (visible uniquement gestionnaires)
|
|
|
|
## Évolution v7
|
|
|
|
- [x] Vue liste Solutions Logicielles : alternance de couleurs de fond (blanc / bleu clair) à chaque changement de solution pour améliorer la lisibilité
|
|
|
|
## Évolution v8 — Skill itinova-user-management
|
|
|
|
- [x] Schéma DB : ajout champs firstName, lastName, login, isActive dans table users
|
|
- [x] Schéma DB : migration enum role (admin/standard/readonly)
|
|
- [x] db.ts : createLocalUser étendu (firstName, lastName, login, role, isActive)
|
|
- [x] db.ts : authenticateLocalUser accepte login ou email
|
|
- [x] db.ts : updateUser étendu avec nouveaux champs
|
|
- [x] routers.ts : loginLocal accepte login ou email (pas seulement email)
|
|
- [x] routers.ts : middleware writeProcedure pour bloquer mutations readonly
|
|
- [x] routers.ts : updateUser étendu avec firstName, lastName, login, role, isActive
|
|
- [x] Admin.tsx : formulaire création/édition avec firstName, lastName, login, role, isActive
|
|
- [x] Login.tsx : page de choix avec logo FEHAP
|
|
- [x] LoginLocal.tsx : formulaire connexion locale avec logo FEHAP (haut) et Santinova (bas)
|
|
- [x] Seed admin : compte admin@sonum.fr / Admin2024! créé
|
|
|
|
## Correction v8b — Seed admin conforme au skill
|
|
|
|
- [x] seed-admin.mjs : créer le compte adminItinova / Itinova69! (login=adminItinova, email=adminItinova@santinova-soft.org, rôle=admin)
|
|
- [x] Nettoyage de l'ancien compte mal créé (id=180019)
|
|
- [x] Redéploiement Gitea avec seed corrigé
|