E5 - 🗂 Naviguer dans le volume multi-sites¶
← Retour au hub story mapping · Parcours principal : P5 - Naviguer dans plusieurs sites et passages · 🟠 SHOULD (MUST de fait pour Karim et Samuel)
Portée : permettre à l'utilisateur de se repérer rapidement dans un volume de plusieurs sites, points et passages, sans se perdre. C'est l'épopée qui transforme l'application d'un outil mono-site (où la sidebar de E1.S4 suffit) en un outil de production capable de tenir l'échelle de Karim (3 chantiers, 8 nuits par retour terrain) ou Samuel (24 enregistreurs × 40-50 nuits = plus de 1 000 passages par saison).
Persona principal : Karim et Samuel (Marie reste sur 1 site et n'a pas besoin de la majorité des stories de cette épopée).
Pré-requis : E0.S2, E0.S3, E1 (sites/points déclarés), E2 (passages importés).
E5.S1 - Vue arborescente des sites avec compteurs de passages par point¶
En tant que Karim
Je veux voir tous mes sites de suivi sous forme d'arbre où chaque site se déplie en points d'écoute, et chaque point affiche le nombre de passages cette saison + l'état du dernier passage
Afin de voir d'un coup d'œil où j'en suis sur chaque site et identifier les points qui n'ont pas encore été utilisés
Critères d'acceptation :
- La vue arborescente présente un nœud racine par site (libellé :
Carré XXXXXX - <nom convivial>). - Chaque site se déplie en ses points d'écoute (libellé :
<code point> - N passages cette saison). - Chaque point se déplie en ses passages (libellé :
Passage N (date)avec badge de statut workflow). - Au niveau site, un méta-libellé indique la date du dernier passage importé (« dernier passage il y a 2 jours »).
- Au niveau point, on voit le nombre de passages à vérifier (statut
Transformé, sans verdict) en évidence visuelle (badge orange). - Le clic sur un passage ouvre directement sa fiche détail.
- L'état déplié/replié de chaque nœud est mémorisé pour la session.
Parcours rattaché : P5, étape 1
Maquettes cibles : M-MultiSite (panneau gauche arborescent), M-Sites (vue d'entrée également)
Dépendances : E0.S2, E0.S3, E1.S4
Complexité : ★★★ (moyen — TreeView JavaFX avec rendu personnalisé et agrégation par niveau)
MoSCoW : 🟠 SHOULD (la vue plate de E1.S4 suffit pour le MVP strict mono-site)
E5.S2 - Vue tabulaire des passages avec tri et filtres par colonne¶
Je veux une vue alternative à l'arborescence qui liste tous mes passages sous forme de tableau triable et filtrable par chaque colonne
Afin de pouvoir balayer rapidement un grand volume et identifier les passages qui demandent mon attention (statut, verdict, date)
Critères d'acceptation :
- Un toggle permet de basculer entre la vue arborescente (E5.S1) et la vue tabulaire.
- La vue tabulaire affiche une ligne par passage avec colonnes : Site (n° carré + nom), Point, Année, N° passage, Date de capture, Statut workflow, Verdict, Date de dépôt.
- Toutes les colonnes sont triables (clic sur l'en-tête).
- Chaque colonne propose un filtre rapide :
- colonnes textuelles : input texte avec match partiel (Site, Point)
- colonnes énumérées : multi-sélection (Statut workflow, Verdict)
- colonnes dates : sélecteur de plage
- Le tableau reste réactif jusqu'à au moins 500 lignes (cf. O5) — pas de freeze IHM en tri/filtre.
- Le clic sur une ligne ouvre la fiche détail du passage.
- L'état des filtres et du tri est mémorisé en session (perdu au redémarrage, contrairement à la sélection d'écoute qui est persistée).
Parcours rattaché : P5, étape 2
Maquettes cibles : M-MultiSite (panneau principal en mode tableau)
Dépendances : E0.S3, E4.S4
Complexité : ★★★ (moyen — TableView JavaFX avec colonnes typées, tri, filtres, virtualisation pour la perf)
MoSCoW : 🟠 SHOULD (devient MUST de fait dès qu'on dépasse 3-4 sites)
E5.S3 - Filtres avancés multi-critères avec sauvegarde de vues¶
En tant que Samuel
Je veux pouvoir combiner plusieurs filtres simultanément (ex. « tous les passages au statut Transformé sur les sites 64XXXX, importés depuis le 1er juin ») et sauvegarder ces combinaisons comme « vues » réutilisables
Afin de ne pas reconstituer manuellement le même jeu de filtres chaque fois que je reprends ma routine de revue
Critères d'acceptation :
- Un bouton « Filtres avancés » ouvre un panneau de composition de filtres avec une logique ET entre les critères, OU à l'intérieur d'une même catégorie.
- Les critères disponibles couvrent : site (multi-select), point (multi-select), année, plage de n° de passage, plage de dates de capture, plage de dates de dépôt, statut workflow (multi-select), verdict (multi-select), enregistreur (par n° de série).
- Un compteur en bas de panneau indique « N passages correspondent à ces critères ».
- Bouton « Appliquer » : la vue tabulaire (E5.S2) se rafraîchit avec les résultats filtrés.
- Bouton « Sauvegarder cette vue » : permet de nommer le jeu de filtres et de le retrouver dans un menu de « Vues sauvegardées ».
- Les vues sauvegardées sont persistées en BD et restent disponibles après redémarrage.
- Possibilité de définir une vue comme « vue par défaut à l'ouverture ».
- Réactivité acceptable même avec 1 000+ passages (Samuel) — pagination ou virtualisation si nécessaire.
Parcours rattaché : P5, Notes pour Samuel
Maquettes cibles : M-MultiSite (panneau « Filtres avancés » dépliable + menu vues sauvegardées)
Dépendances : E0.S3, E5.S2
Complexité : ★★★★ (significatif — composition de critères, persistance des vues, optimisation perf grand volume)
MoSCoW : ⚪ COULD (vraiment utile uniquement pour Samuel et son volume hors normes)
E5.S4 - Actions de masse sur une sélection de passages¶
En tant que Samuel
Je veux pouvoir sélectionner plusieurs passages dans la vue tabulaire et leur appliquer une action commune (changer le verdict, supprimer, exporter)
Afin de ne pas être obligé d'ouvrir chaque passage individuellement quand je veux faire le même traitement sur un lot
Critères d'acceptation :
- La vue tabulaire (E5.S2) permet la sélection multiple (Ctrl+clic, Maj+clic pour plage, Ctrl+A pour tout).
- Une barre d'actions contextuelle apparaît dès qu'au moins 2 passages sont sélectionnés : « Actions sur 5 passages : [Verdict] [Exporter] [Supprimer] ».
- Action Verdict : applique le même verdict (OK / Douteux / À jeter) à tous les passages sélectionnés, avec confirmation explicite.
- Action Exporter : produit un récapitulatif CSV (1 ligne par passage avec ses métadonnées) téléchargeable.
- Action Supprimer : confirmation forte (modal expliquant que les fichiers sur disque seront aussi supprimés), avec saisie de « SUPPRIMER » pour valider. Action irréversible.
- Toute action de masse est tracée dans un journal d'opérations (pour audit en cas de bug ou de fausse manipulation).
- Si l'action échoue partiellement (ex. 3 passages traités, 2 en erreur), un récapitulatif post-action liste les succès et les échecs avec leur raison.
Parcours rattaché : P5, Notes pour Samuel
Maquettes cibles : M-MultiSite (barre d'actions contextuelle)
Dépendances : E0.S3, E5.S2
Complexité : ★★★ (moyen — sélection multi-row + batch DAO + confirmation forte + journal)
MoSCoW : ⚪ COULD (Samuel uniquement ; risqué côté UX pour Marie qui pourrait supprimer en masse par erreur)
E5.S5 - Import groupé de plusieurs dossiers SD à la suite¶
En tant que Karim (qui revient d'une semaine de terrain avec 5 cartes SD)
Je veux pouvoir lancer en une seule fois l'import de plusieurs dossiers SD et que l'application les traite en file d'attente
Afin de ne pas avoir à attendre la fin d'un import pour démarrer le suivant et pouvoir tout lancer puis aller faire autre chose
Critères d'acceptation :
- Une action « Importer plusieurs nuits » permet de sélectionner N dossiers source d'un coup (sélection multiple dans le file picker, ou drag-and-drop de N dossiers).
- Pour chaque dossier, l'inspection (E2.S1) et le rattachement (E2.S2 ou E2.S3) sont demandés successivement, avant que le traitement effectif (copie + transformation) ne commence.
- Une fois tous les rattachements validés, les imports sont mis en file d'attente et traités séquentiellement (pas en parallèle pour préserver les perfs).
- Un panneau « File d'attente d'import » visible affiche : import en cours (avec progression), imports en attente, imports terminés avec succès, imports en erreur.
- L'utilisateur peut annuler un import en attente (file d'attente) ou en cours (avec rollback de ce qui a été fait).
- La file d'attente est persistée en BD : si l'application est fermée pendant un import groupé, elle peut reprendre au démarrage suivant (E0.S6).
Parcours rattaché : P5, étape 3
Maquettes cibles : M-Import (variante multi-dossiers), M-MultiSite (panneau file d'attente)
Dépendances : E0.S6, E2.S1, E2.S2, E2.S4, E2.S6
Complexité : ★★★ (moyen — composition de l'import existant + file d'attente UI + reprise via E0.S6)
MoSCoW : ⚪ COULD (un import à la fois suffit fonctionnellement ; commodité pour Karim et Samuel)