Aller au contenu

E5 - 🗂 Naviguer dans le volume multi-sites

← Retour au sommaire story mapping · Parcours principal : P5 - Naviguer dans plusieurs sites et passages (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 barre latérale 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

Non livré (cible)

L'application n'a pas de vue arborescente (aucun TreeView dans le code) : le volume multi-sites se parcourt par la vue tabulaire (E5.S2), livrée. Les critères ci-dessous décrivent la cible.

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 d'avancement).
  • 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


E5.S2 - Vue tabulaire des passages avec tri et filtres par colonne

En tant que Karim ou Samuel

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 :

Livré, mais autrement que décrit ici

Le tableau est livré. Ses colonnes réelles sont Carré, Nom du carré, Commune, Point, Année, N° passage, Date, Statut, Verdict, Analyse et Campagne : trois de plus qu'annoncé (Commune, Campagne, Analyse), et une colonne Date là où le critère en demandait deux (session d'enregistrement et dépôt).

Deux écarts de dispositif, tenus par un autre moyen : il n'y a pas de bascule vers une vue arborescente, puisque E5.S1 n'est pas construite ; et le filtre n'est pas par colonne mais par puces ajoutées à la demande (#3092), sept critères qui se cumulent en ET. La réconciliation est faite (#3330) : les cases ci-dessous portent désormais l'état réel. Voir aussi la note de E5.S3, qui enregistre déjà le même écart pour les filtres avancés.

  • Une bascule 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 session d'enregistrement, Statut d'avancement, Verdict. La date de dépôt manque (une seule colonne Date), et trois colonnes non prévues s'y ajoutent : Commune, Campagne, Analyse.
  • Toutes les colonnes sont triables (clic sur l'en-tête).
  • Filtrage livré, autrement : une barre à puces (#3092) plutôt qu'un filtre par colonne. Sept critères cumulés en ET, dont site, point, année, statut et verdict. Le libellé d'origine :
    • colonnes textuelles : input texte avec match partiel (Site, Point)
    • colonnes énumérées : multi-sélection (Statut d'avancement, 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. (non verifiable depuis le code)
  • 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


E5.S3 - Filtres avancés multi-critères avec sauvegarde de vues

Partiellement livré

Les vues sauvegardées (onglets « à la Notion », persistées en BD) et un compteur de correspondances sont livrés. Mais les filtres passent par une barre à puces (bouton « + Filtre »), pas par le panneau « Filtres avancés » décrit : pas de multi-sélection (statut / verdict / site en mono), pas de plages de dates ou de n°, pas de filtre enregistreur, et l'utilisateur ne peut pas épingler une vue par défaut.

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.
  • Critères couverts : site et point (par la puce Lieu), année, statut, verdict - plus deux que ce critère n'annonçait pas, campagne et état d'analyse. En mono-sélection, non multi. Manquent vraiment : les plages de dates (enregistrement, dépôt), la plage de n° de passage (seule l'égalité existe) et l'enregistreur par n° de série. Ces quatre-là restent des cibles, ni livrées ni abandonnées.
  • Un compteur en bas de panneau indique « N passages correspondent à ces critères ».
  • Rafraîchissement livré sans bouton : les puces s'appliquent à la volée. Un bouton « Appliquer » supposait un panneau de composition, que la barre à puces remplace.
  • 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. (non verifiable depuis le code)

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


E5.S4 - Actions de masse sur une sélection de passages

Livré autrement que décrit (#2357)

La sélection multiple et les actions groupées existent, mais elles portent sur la chaîne de production (préparer le dépôt, téléverser, importer les résultats, déclencher le calcul), pas sur le verdict ni la suppression. Ce n'est pas un demi-parcours : c'est le besoin réel, relu après coup. Ce qui coûte à Samuel n'est pas de reposer vingt verdicts, c'est de refaire vingt fois la même suite de gestes.

Le verdict et la suppression restent volontairement unitaires : le premier est un jugement porté après écoute, la seconde détruit des fichiers du disque. Le journal d'opérations persistant n'existe pas non plus : le journal du lot est vivant pendant l'exécution, et le compte rendu final en garde la trace, mais rien n'est archivé pour audit.

En tant que Samuel

Je veux pouvoir sélectionner plusieurs passages dans la vue tabulaire et leur appliquer une action commune

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).
  • Les actions groupées sont proposées par le menu , chaque entrée disant combien de lignes sont cochées et, si elle est grisée, ce qui lui manque. (Pas de barre d'actions contextuelle : le menu principal (☰) est déjà l'endroit où l'on cherche les actions de cet écran, et une barre qui apparaît décale le tableau au moment où l'on vient d'y cliquer.)
  • Quatre actions de la chaîne de production : préparer le dépôt, téléverser, importer les résultats, déclencher le calcul.
  • Une annonce préalable dit combien de passages seront traités et nomme les écartés avec leur motif ; on peut renoncer.
  • Si l'action échoue partiellement, un récapitulatif post-action liste chaque passage avec son sort et sa raison.
  • Une interruption laisse chaque passage soit avant, soit après, jamais entre les deux ; le lot est reprenable.
  • Les mêmes actions en ligne de commande (traiter-passages), mêmes règles et même compte rendu.
  • Action Verdict en série. (Écartée : un verdict se forme en écoutant une nuit.)
  • Action Supprimer en série. (Écartée : destruction de fichiers, confirmation nuit par nuit.)
  • Journal d'opérations persisté pour audit. (Reste à faire.)

Parcours rattaché : P5, Notes pour Samuel
Maquettes cibles : M-MultiSite (actions groupées du menu principal (☰))
Dépendances : E0.S3, E5.S2


E5.S5 - Import groupé de plusieurs dossiers SD à la suite

Non livré (cible)

Pas de file d'attente d'import persistée ni de panneau « File d'attente ». Ce qui existe : une reprise idempotente fichier par fichier au relancement manuel (#231), sans mise en file ni notification au démarrage. Dépend de E0.S6, également non livrée.

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 sélecteur de fichiers, ou glisser-déposer 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


E5.S6 - Rechercher globalement depuis n'importe quel écran

En tant que Karim

Je veux un champ de recherche accessible partout qui retrouve un site, un point, un passage ou une espèce

Afin de sauter directement au bon endroit sans naviguer d'écran en écran

Critères d'acceptation :

  • Un champ de recherche dans le bandeau (chrome) est accessible depuis tout écran.
  • La recherche agrège sites, points, passages et espèces observées ; la correspondance est insensible à la casse et aux accents.
  • Les résultats sont plafonnés par type (au plus 8) pour rester lisibles ; le surplus est omis.
  • La navigation se fait au clavier (flèche pour entrer dans la liste, Entrée pour ouvrir, Échap pour fermer) et un résultat est annoncé pour l'accessibilité.

Parcours rattaché : P8 (transverse)
Maquettes cibles : champ de recherche du bandeau non maquetté (cf. #2382)
Dépendances : E5.S2