-
Notifications
You must be signed in to change notification settings - Fork 0
Importer des données
Traduction anglaise: Importing data
Le module d'importation de données permet de créer des dizaines d'éléments (organisation, évènement, ...) de manière automatisée. C'est un outil efficace si vous avez, par exemple, un listing d'associations que vous souhaitez référencer dans Communecter.
Pour effectuer toutes ces actions il vous faudra le statut d'Admin Public. Demandez le sur le canal #co_dev_open du chat.
- Télécharger le fichier type
- Remplir et sauvegarder votre tableau
- Utilisez le convertisseur pour obtenir votre json
- Laissez vous guider
La première étape consiste à organiser les données en votre possession (par exemple la liste des associations de votre commune) pour qu'elles soient interprétables par le module d'import.
Pour cela, vous pouvez les mettres dans un tableau ou remplir un fichier json. Dans tous les cas on ne peut importer qu'un seul type d'élément à la fois (Organisations, Citoyens, Événements, ou Projets).
Pour les organisations il faudra au minima le nom, le type (par ex: entreprise), la ville, le code postal et le pays de chacune des organisations.
- Choisissez et téléchargez un de ces fichiers selon ce que vous souhaitez importer : organisation, citoyen, évènement, projet
- Remplissez le tableau : une ligne = un élément
- Sauvegarder
- Nous vous conseillons d'utiliser LibreOffice
- Sauvegardez toujours votre fichier en .csv
- Privilégier les points virgules et les guillemets comme séparateurs (Enregistrer sous / Éditer les paramètres du filtre)
- Vérifier bien que vous n'avez pas mis de saut de ligne dans les cellules (Ctrl-H / Autres options -> Expressions régulières / Rechercher
\n
et Remplacer par un espace / Tout remplacer)
- Choisissez et téléchargez un de ces fichiers selon ce que vous souhaitez importer : organisation, citoyen, évènement, projet
- Accédez à l'interface "Admin Public" de Communecter en haut à droite.
- Cliquez sur "Convertisseur"
- Choisissez le type d'élément que vous souhaitez importer
- Choisissez la source
-
URL
: lien vers un fichier JSON disponible en ligne -
FILE
: fichier CSV ou JSON présent sur votre ordinateur
- [OPTIONNEL] Choisissez le bon lien (le mapping) Utile si le fichier est déjà formaté convenablement avec les colonnes dans le bon ordre, correspondant aux types d'éléments présents dans le fichier.
- Cliquez sur "Étape suivante"
Pour les fichiers JSON, le champ "Path to Elements" indique où se trouve la données pertinentes.
Pour le code JSON suivant, la donnée pertinente se trouve dans le tableau "features". Dans ce cas de figure, il faut donc mettre "features" dans le champ "Path to Element".
{
"type":"FeatureCollection",
"features":[
{
"type":"Feature",
"geometry":{
"type":"Point",
"coordinates":[
55.433699,
-21.259772
]
},
"properties":{
"name":"Damien Grondin",
"username":"Femu",
"img":"http:\/\/127.0.0.1\/ph\/upload\/communecter\/citoyens\/5880b24a8fe7a1a65b8b456b\/1489667898_linkpkm.jpg"
}
}
]
}
Dans cette étape, on va réaliser ce qu'on appelle un mapping. C'est à dire renseigné à quel champ de l'onthologie PH correspond tel ou tel champ des données du fichier source.
- Dans la colonne de gauche (Source) : sélectionnez toutes les branches du fichier source.
- Dans la colonne de droite (Communecter) : sélectionnez le champ de l'onthologie PH auquel on veut associer la branche du fichier source de la colonne de gauche.
Avant de pouvoir passer à l'étape suivante, il est impératif de :
- faire au moins une assignation dans le mapping
- avoir renseigné la
key
dans le champ adéquat
key
permet d'identifier les éléments créé dans le contexte de cette importation. On peut renseignerkey
à la création d'une carte pour afficher tous les points que vous venez d'importer.
Organisations | Citoyens | Évènements | Projets |
---|---|---|---|
name | name | name | name |
type* | username | Code Postal | Code Postal |
Code Postal | birthdate | Ville | Ville |
Ville | Code Pays | Code Pays | |
Code Pays |
*NGO = Association , Group = groupe informel , LocalBusiness = Entreprise , GovernmentOrganization = Service public
- On ajoute une ligne simplement en cliquant sur la bouton "Ajouter" dans la troisième colonne.
- On supprime une ligne en cliquant sur la croix rouge qui apparaît dans la troisième colonne lors d'un ajout de ligne.
- On peut à tout moment sauvegarder le mapping actuel en cliquant sur le bouton "Save Mapping". (si lors de l'étape 1, on avait sélectionné un mapping enregistré, les boutons "Update Mapping" et "Delete Mapping" apparaissent. Bouton qui permettent respectivement de modifier ou de supprimer un mapping existant).
- Si on clique sur le bouton étape précédente, le mapping reste enregistré jusqu'au nouveau rafraîchissement de la page.
- La checkbox
Test
permet de tester la conversion et donc de visualiser les données qui sont bien converties ainsi que les données qui sont rejetée avec le message d'erreur qui décrit le pourquoi du rejet.
Le module d'import permet d'injecter par la suite ses données (préalablement convertie au format PH grâce aux convertisseur de données du module d'import) dans communecter. Seul le format JSON est autorisé.
- Une organisation ne doit apparaître qu'une seule fois dans le fichier
- Avant de mettre un organisme, vérifier qu'il n'existe pas sur communecter.org
- NE pas mettre formations/projets/ qui peuvent être regroupés dans une seule organisation.
- Pour les téléphones
- On peut en ajouter autant qu'on le souhaite
- Format recommandé : "+33 6 00 00 00 00"*
- Si plusieurs numéros, mettre un seul numéro par colonne
- Différents types de téléphone : Mobile, Fixe et Fax
- Pour les contacts
- Nom et Prénom du contact
- Rôle du contact au sein de l'organisme
- Téléphone du contact ( Si plusieurs numéros, mettre un seul numéro par colonne)
- Email du contact
Obligatoire | Optionnel |
---|---|
Nom de l'organisme | Téléphones |
Code Postal | URL |
Code Pays* | Description |
Ville | Numéro et nom de la voie |
Type** | |
Tags*** | |
Site Web | |
Latitude / Longitude | |
Contact |
* Exemples : FR, EN, RE. Liste complète ici.
** NGO, Group, LocalBusiness ou GovernmentOrganization (Voir l'annexe pour la concordance)
*** Si plusieurs tags, mettre un seul tags par colonne
- NGO = Association
- Group = Groupe informel
- LocalBusiness = Entreprise
- GovernmentOrganization = Service public
Pour une adresse en France, Communecter va vérifier l'existance de l'adresse dans l'ordre suivant : DataGouv, Nominatim, puis Googlemaps.
Si avec la combinaison rue+CP+Ville+Pays, l'adresse ne donne pas de résultat via les 3 géocodeur, on refait une recherche avec seulement CP+Ville+Pays, si toujours pas de résultat l'import remonte une erreur.
Dans le module Recherche de Communecter il y a des thématiques (ex : déchets, économie, citoyenneté, ...) regroupant tous les éléments ayant un tag parmi la liste de tags associé à la thématique en question. Par exemple quand on clique sur "Biodiversité" on y trouve les éléments ayant pour tag #biodiversite bien sûr, mais aussi #environnement ou #ecologie.
Cette liste est aujourd'hui définie par les développeurs.
{
"\_id" : ObjectId("STRING"),
"name" : "STRING",
"email" : "STRING",
"type" : "STRING",
"address" : {
"@type": "PostalAddress",
"postalCode" : "STRING",
"addressLocality" : "STRING",
"codeInsee" : "STRING",
"streetAddress" : "STRING",
"addressCountry" : "STRING",
"regionName": "STRING",
"depName": "STRING"
},
"addresses" : [
"address"
],
"geo" : {
"latitude" : "FLOAT",
"longitude" : "FLOAT",
"@type": "GeoCoordinates",
},
"geoPosition": {
"type": "Point",
"coordinates": [
"latitude -> FLOAT",
"longitude -> FLOAT"
]
},
"description" : "STRING",
"shortDescription" : "STRING",
"url" : "STRING",
"image" : "STRING",
"urlFacebook" : "STRING",
"urlTwitter" : "STRING",
"source" : {
"id" : "STRING",
"url" : "STRING",
"key" : "STRING",
"keys": [
"STRING"
],
"insertOrign": "STRING",
"update" : "DATETIME"
},
"tags" : [
"STRING"
],
"telephone" : {
"fixe" : [
"STRING"
],
"mobile" : [
"STRING"
],
"fax" : [
"STRING"
]
},
"contacts" : [
{
"name" : "STRING",
"role" : "STRING",
"telephone" : [
"STRING"
],
"email" : "STRING"
}
],
"preferences" : {
"isOpenData" : "BOOLEAN",
"isOpenEdition" : "BOOLEAN",
},
"state" : "STRING",
"profilImageUrl" : "STRING",
"profilThumbImageUrl" : "STRING",
"profilMarkerImageUrl" : "STRING",
"profilMediumImageUrl" : "STRING",
"modified" : "ISODate",
"updated" :"INT",
"links" : {
"members" : {
},
"events" : {
},
"projects" : {
},
"memberOf" : {
},
"needs" : {
},
"follows" : {
},
},
"modifiedByBatch" : [
{
"NameBatch" : "ISODate"
}
],
"creator" : "STRING",
"created" : "INT"
}
"001" => "L'entité n'a pas de nom",
// Partie concernant l'adresse
"100" => "L'entité n'a aucune informations l'adresse.",
"101" => "L'entité n'a pas de code postal.",
"102" => "L'entité n'a pas de code INSEE.",
"103" => "L'entité n'a pas de commune.",
"104" => "L'entité n'a pas de pays.",
"105" => "L'entité n'a pas de nom rue.",
"106" => "Ce code postal n'existe pas dans notre base de données.",
"110" => "Nous n'avons pas trouver la commune : Vérifier si le code postal et le nom de la commune soient bonnes",
"111" => "Nous n'avons pas réussi a récupérer le nom de la commune car l'INSEE et le code postal ne sont pas compatibles. Vérifier l'adresse.",
"112" => "Nous n'avons pas réussi récupérer le code INSEE. Vérifier l'adresse.",
// Partie concernant la géolocalisation
"150" => "L'entité n'a pas de géolocalisation.",
"151" => "L'entité n'a pas de latitude.",
"152" => "L'entité n'a pas de longitude.",
"153" => "L'entité n'a pu être géolocalisé précisément : Repositionner le.",
"154" => "Nous n'avons pas réussi à géolocaliser l'entité: Vérifier l'adresse et Repositionner le.",
// Partie concernant la géolocalisation et l'adresse.
"170" => "Incohérence entre la géolocalisation et le code postal. Vérifier l'adresse et la géolocalisation",
"171" => "L'INSEE du fichier et celui retourné par la géolocalisation n'est pas le même.",
"172" => "Le code postal du fichier et celui retourné par la géolocalisation n'est pas le même.",
"201" => "Le nom est obligatoire.",
"202" => "Le surnom est obligatoire.",
"203" => "L'email est obligatoire.",
"204" => "Le mot de passe est obligatoire.",
"205" => "L'email n'est pas bien formaté.",
"206" => "Une personne avec ce mail existe déjà sur la plateforme.",
"207" => "Une personne avec ce username existe déjà sur la plateforme.",
"208" => "Cette organisme n'a pas de type.",
"209" => "Vous devez remplir un email valide pour le contactPoint.",
"210" => "Cette personne n'a pas de username.",
"211" => "Cette username a été généré automatique à partir du nom de l'utilisateur.",
"212" => "Le Type \"Groupe\" a été attribué a cette organisation. Veuilliez changer le type de l'organisation s'il ne correspond pas à ce type.",
"250" => "L'entité a été mis a jour.",