mirror of
https://github.com/siop-spelev/siop2.git
synced 2026-08-08 12:41:54 +00:00
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>
This commit is contained in:
@@ -5,13 +5,19 @@ import { Coquille } from '@/layout/coquille';
|
||||
import PageActivation from '@/pages/activation';
|
||||
import PageAscenseurs from '@/pages/ascenseurs';
|
||||
import PageCategories from '@/pages/categories';
|
||||
import PageCompteurs from '@/pages/compteurs';
|
||||
import PageConnexion from '@/pages/connexion';
|
||||
import PageDemandes from '@/pages/demandes';
|
||||
import PageDesign from '@/pages/design';
|
||||
import PageEtiquette from '@/pages/etiquette';
|
||||
import PageFicheAscenseur from '@/pages/fiche-ascenseur';
|
||||
import PageFicheOT from '@/pages/fiche-ot';
|
||||
import PageFicheSite from '@/pages/fiche-site';
|
||||
import PageNouvelAscenseur from '@/pages/nouvel-ascenseur';
|
||||
import PageNouvelOT from '@/pages/nouvel-ot';
|
||||
import PageOrdresTravail from '@/pages/ordres-travail';
|
||||
import PagePersonnes from '@/pages/personnes';
|
||||
import PagePreventif from '@/pages/preventif';
|
||||
import PageSites from '@/pages/sites';
|
||||
import PageTableauDeBord from '@/pages/tableau-de-bord';
|
||||
|
||||
@@ -36,8 +42,14 @@ export default function App() {
|
||||
<Route path="/ascenseurs/nouveau" element={dansCoquille(<PageNouvelAscenseur />)} />
|
||||
<Route path="/ascenseurs/:id" element={dansCoquille(<PageFicheAscenseur />)} />
|
||||
<Route path="/ascenseurs/:id/etiquette" element={dansCoquille(<PageEtiquette />)} />
|
||||
<Route path="/ascenseurs/:id/compteurs" element={dansCoquille(<PageCompteurs />)} />
|
||||
<Route path="/personnes" element={dansCoquille(<PagePersonnes />)} />
|
||||
<Route path="/categories" element={dansCoquille(<PageCategories />)} />
|
||||
<Route path="/ot" element={dansCoquille(<PageOrdresTravail />)} />
|
||||
<Route path="/ot/nouveau" element={dansCoquille(<PageNouvelOT />)} />
|
||||
<Route path="/ot/:id" element={dansCoquille(<PageFicheOT />)} />
|
||||
<Route path="/demandes" element={dansCoquille(<PageDemandes />)} />
|
||||
<Route path="/preventif" element={dansCoquille(<PagePreventif />)} />
|
||||
</Routes>
|
||||
</BrowserRouter>
|
||||
</QueryClientProvider>
|
||||
|
||||
Reference in New Issue
Block a user