M-Import - Importer une nuit d'enregistrement¶
Type : assistant d'import, ouvert par le bouton « Importer une nuit » d'un site (cf. M-Site-detail) ; il n'y a pas de carte d'import sur l'accueil, l'import part toujours d'un site déjà choisi. Persona principal : tous (Marie, Karim, Samuel). C'est l'écran le plus utilisé après la mise en route. Parcours couverts : P2 - Importer une nuit d'enregistrement.
C'est l'écran central de la chaîne de production. L'assistant est une page unique en sections (dossier source → inspection → rattachement → action), pas un wizard multi-étapes : l'utilisateur garde tout son contexte sous les yeux. Une carte de rattachement situe le site et le point choisis sur le carroyage.
Maquette principale - cas standard (dossier inspecté, fichiers sans préfixe)¶
Annotations¶
- Section 1 (Dossier source) : un dossier de carte SD, une copie disque, ou une archive .zip (décompressée d'abord). Le glisser-déposer d'un dossier ou d'un .zip n'importe où sur l'écran marche aussi.
- Section 2 (Inspection) : en lecture seule, l'application détecte le journal du capteur, le relevé climatique, les WAV et l'état du nommage. Rien n'est modifié.
- Section 3 (Rattachement) : site / point / année / n° de passage, pré-remplis depuis le dernier rattachement mémorisé pour cet enregistreur. La carte situe le carré et le point choisis (en indigo) ; un point sans GPS se place au centre de son carré (R26, R27). La section porte aussi une case « Participation opportuniste » (R34) : la nuit a bien eu lieu, mais hors protocole. C'est le bon endroit pour le déclarer, puisque c'est là qu'on désigne le carré. La case vaut pour toutes les nuits de l'import : une demande qui ne viserait qu'un carré, sur une carte multi-nuits, n'a pas de sens ici - elle se corrigerait passage par passage dans M-Passage.
- Aperçu du préfixe : montre le résultat exact appliqué aux fichiers (R6, R7), à vérifier avant de cliquer.
Interactions clés¶
| Élément | Action |
|---|---|
| Bouton 📂 Parcourir / 🗜 .zip / glisser-déposer | Choisit la source ; l'inspection se relance (lecture seule) |
| Combobox Site : « + Créer un site » | Crée un site à la volée sans quitter l'import |
| Modification du n° de passage / du point | Met à jour l'aperçu du préfixe et la carte |
| Bouton Annuler | Revient en arrière ; aucun fichier touché (R9) |
| Bouton 📥 Importer cette nuit | Lance copie vérifiée + renommage + transformation (variante « en cours » ci-dessous) |
Variante - carte SD contenant plusieurs nuits¶
Quand la carte SD (ou l'archive) contient plusieurs nuits enregistrées à la suite (le cas de Samuel, dont les enregistreurs tournent plusieurs nuits d'affilée), l'inspection les détecte et insère, sous la section « Dossier source », un tableau des nuits détectées : une ligne par nuit (date, plage horaire, nombre de fichiers, complétude), chacune cochable.
- Chaque nuit retenue devient un passage distinct (E2.S9) : le découpage suit la nuit soir J → matin J+1 (bascule à midi).
- Une nuit tronquée (cycle mal terminé, SD pleine) est signalée avec son motif, sans être exclue d'office ; une nuit déjà importée est signalée (doublon) et décochée par défaut.
- Le rattachement (site, point, n° de passage) est demandé par nuit ; le n° de passage s'incrémente d'une nuit à l'autre.
Le reste de l'assistant (copie protégée, renommage, transformation, progression) est identique, appliqué à chaque nuit retenue.
Variante - cas « fichiers déjà préfixés » (re-import ou dossier déjà nommé)¶
Quand l'inspection détecte que tous les fichiers portent déjà le préfixe CarXXXXXX-AAAA-PassN-YY-, le rattachement est extrait du préfixe et présélectionné. L'utilisateur valide tel quel (aucun re-renommage) ou modifie un champ.
Notes sur le cas « déjà préfixés »¶
- Les 4 champs sont en vert avec un badge « extrait du préfixe » ; l'utilisateur reste libre de modifier.
- L'aperçu du préfixe est remplacé par un encart « Aucun re-renommage à effectuer ».
- Si l'utilisateur modifie un champ, un dialog propose : « Réaligner les noms de fichiers sur la nouvelle saisie » ou « Restaurer les valeurs extraites ».
Variante - import en cours (copie + transformation)¶
Après le clic sur 📥 Importer cette nuit, l'écran passe en mode progression. Une barre déterminée (« X / N fichiers ») affiche un temps restant estimé, et un bouton Annuler est disponible (le formulaire est gelé).
Notes sur la progression¶
- Étapes : copie vérifiée → renommage → transformation. La barre est déterminée (« X / N ») avec temps restant estimé.
- Fermer la fenêtre : l'import continue en arrière-plan (le passage prendra le statut
Transformé) ; Annuler interrompt et la session précédente est restaurée (remplacement atomique, R29). - Import résilient (R29) : un fichier source illisible (en-tête corrompu, fréquence non divisible par 10) est rejeté individuellement et consigné dans un rapport (importés / rejetés / non pertinents) à la fin, sans interrompre les autres.
Avertissements d'inspection (non bloquants)¶
À l'inspection, l'application signale sans bloquer (R30) ; l'utilisateur décide de poursuivre :
- Mélange : le dossier contient des fichiers de plusieurs enregistreurs. Un bandeau l'indique ; l'import reste possible.
- Incohérence : le journal du capteur (n° de série, nuit) contredit les WAV (autre série / autre date). Bandeau rouge non bloquant.
- Nuit déjà importée : un passage existe déjà pour le même enregistreur et la même date. Réimporter crée simplement un nouveau passage (autre point / autre numéro), ce que l'utilisateur peut vouloir ou non.
Notes pour l'implémentation¶
- Threading : copie et transformation en arrière-plan, l'IHM ne gèle jamais ; la progression est mise à jour sur le fil JavaFX.
- Volumétrie : tenir 40 Go sans freeze (cas Samuel).
- Remplacement atomique (R29) : un import qui échoue (annulation, tous les WAV rejetés, erreur disque) restaure la session précédente ; rien n'est perdu.
- N° de passage : l'auto-incrément (max+1 pour ce point/année) est calculé à l'ouverture de l'écran.