pr-daaif
460ef4a80e
feat(r3.4): corrections de recette (8 écarts) + recherche globale ⌘K
...
Arbitrage du référent sur la revue pixel : tout corriger, activer la
recherche.
- Stock : filtre fournisseur, sous-seuil en tête, « Entrée de stock »
depuis la liste ; fiche pièce : fournisseur → lien Tiers.
- Statistiques : période 3/6/12 mois (paramètre months au contrat).
- Tiers : rattachements syndic→site (migration r3_recette_fixes,
Location.partnerId gardé CLIENT), éditable sur la fiche site, seedé.
- Bibliothèque : filtre « Rattaché à » + glisser-déposer (modale
préremplie, rattachement toujours requis).
- Recherche globale : GET /search (73 opérations) — familles OT/
ascenseurs/sites filtrées par la matrice, « voir autre » respecté ;
topbar ⌘K, debounce, résultats groupés, navigation clavier.
74 tests API (8 nouveaux sur le scoping de la recherche), 14/14
Playwright dont un parcours « recette corrigée », 18/18 contrôles en
navigateur réel, zéro erreur console.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-17 02:14:43 +01:00
pr-daaif
6a2dae1710
feat(r2.3): écrans web exploitation — OT, demandes, préventif, compteurs, urgence
...
- liste OT (filtres, strie rouge, « immédiat ») ; fiche OT : transitions
pilotées par allowedTransitions, clôture grisée avec la garde expliquée,
bilan codé (6 selects sur référentiels), checklist Fait→N-A→à faire,
activité + commentaires, assignation, annulation motivée
- nouvel OT : interrupteur « personne bloquée » qui force la priorité
- demandes : table + panneau d'approbation (priorité, assignation,
approuver → fiche OT), rejet en modale à motif obligatoire, signalement
interne ; statut « Résolue » dérivé de l'OT lié
- préventif : tuiles réelles, générer + résumé (« regénérer ne double
rien »), gabarits administrables ; compteurs : saisie + historique
- tableau de bord réel : bandeau urgence cliquable, KPIs, OT par statut,
interventions récentes ; accueil dédié aux rôles sans exploitation
- urgence traversante : chip topbar pulsante (60 s), badges de nav
- GET /assets/options (auth seule) : le Demandeur peut désigner l'appareil
qu'il signale — trou débusqué par l'e2e (49 opérations au contrat)
- génération préventive durcie : collision de référence RETENTÉE (plus de
saut silencieux), P2003 toléré ; 3 runs Jest complets consécutifs verts
- 9 tests Playwright (recette R2 officielle rejouée intégralement),
50 tests API (94,6 % / 78,9 %)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-16 17:13:20 +01:00
pr-daaif
9778629827
feat(r1.2): écrans web du référentiel — 7 écrans fidèles à maquette-r1
...
- Sites : liste + carte Leaflet/OSM réelle (pins maquette, positions
PostGIS), création en modale avec position posée au clic sur la carte
- Fiche site : arbre site→zones, appareils rattachés, ajout de zone
- Ascenseurs : table dense, filtres site/statut, strie rouge à l'arrêt ;
fiche appareil (organes ± ajout/retrait, statut, QR réel) ; création
identité → rattachement → organes ; étiquette A6 imprimable (objet
papier, window.print n'imprime qu'elle)
- Personnes & équipes : invitation → lien d'activation affiché à copier
(pas d'email en R1, décision explicite), renvoi de lien, équipes ;
page /activation (choix du mot de passe, connexion directe)
- Catégories : ajout, renommage inline, désactivation
- navigation et actions pilotées par la matrice (usePermissions) —
l'API re-vérifie chaque requête
- e2e Playwright : recette R1 officielle rejouée intégralement (site →
zone → appareil+organe → étiquette → invitation → activation) +
parcours « la matrice pilote l'UI » ; purge idempotente en globalSetup
- alias Vite @siop/shared → source TS (exports nommés CJS ↯ workspace lié)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-16 13:06:45 +01:00