M-Import - Importer une nuit d'enregistrement¶
Type : assistant d'import (carte « Importer une nuit » de l'accueil). 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).
- 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 - 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.