Import: Structurer les opérations d’Import
Reprise de #49 (closed), de façon plus concrète.
-
Permettre de configurer les imports (!570 (merged)) - Tables
Import::Configuration
etImport::LayerConfiguration
- associées à une map et à un type de source
-
Import::Configuration
contient desImport::LayerConfiguration
- associé à un layer_id
- mapping colonne->attribut
- attribut d’identifiant pour réimport/jointure
- colonnes de géometrie (si source tabulaire)
- associé à un layer_id
- Utiliser
Import::Configuration
dans lesImporter
- à la place de
@mapping
et desoptions
- Tables
-
UI de configuration par layer de destination -
Garder trace des opérations d’import en base (!570 (merged)) - table
Import::Operation
en DB - associées à une configuration, listable.
- garde le fichier téléchargé
- font l’appel à Importer*#import
- broadcast dans import/show quand modifié.
- garde le Result.
- table
-
Autoconfigurer à partir de la source - Un nouvel
Import::AnalysisService
- qui reprend
ImportExport::default_field_mapping
etGeometryParsing::STRATEGIES
- qui reprend
- en entrée: source (fichier ou URL) et destination (Map ou Layer)
- en sortie: une
Import::Configuration
- le type d’
Importer
dépend de la source (le typeMIME
, ou par essais d’ouverture. Peut-être faut-il le spécifier dans certains cas.) - pour chaquer layer, le mapping proposé est une correspondance nom à nom, case insensitive
- tenter de deviner les colonnes de géométrie
- le type d’
- Gérer correctement la liste de types MIME autorisés à l’upload. Pour l’instant on ne gère que
{"text/csv" => :csv, "application/json" => :geojson}
. Pour le geojson, il faut au moins aussi l’extension.geojson
. Peut-être qu’en fait on veut autoriser tous les types de fichiers.
- Un nouvel
-
Faire les imports dans un job background (!571 (merged)) - configurer https://github.com/bensheldon/good_job
-
Import::Job
n’a sans doute pas besoin d’exister en base. Il prend en entrée une opération, et fait appel à l’Importer, et c’est tout. - Notification par email ?
Edited by Nicolas Bouilleaud