Reprise de données (import de signalements) - MTES-MCT/histologe GitHub Wiki
Reprise des signalements
Historique
Merci de prendre en compte le dernier sur les derniers signalements importés: 18, 48, 73, 38, 81
https://github.com/MTES-MCT/histologe/issues/761
Description
Une commande permet de faire un import d'une liste de signalement rempli saisie dans une feuille excel. Ces derniers seront tagués comme étant importés.
Données automatisées
Profil déclarant
En attendant d'autres colonnes qui permettraient d'être plus précis, voici la décision actuelle (PR https://github.com/MTES-MCT/histologe/pull/5067) :
- Si la colonne "Déclarant est l occupant?" est à "O", alors le profil déclarant est LOCATAIRE.
- Si la colonne "lien entre declarant et occupant" est "pro", alors le profil déclarant est TIERS_PRO.
- Sinon, le profil déclarant est TIERS PARTICULIER.
Pré-requis
Vérfier que le client aws S3 est bien installé
$ aws --version
aws-cli/1.25.61 Python/3.8.16 Linux/5.15.0-56-generic botocore/1.27.60
Documention installation AWS CLI
Définir la variable d'environnement du bucket de DEV afin de pouvoir exécuter le script shell
$ export BUCKET_URL=my-bucket-name
Il s'agit dans le projet de la variable d'environnement S3_BUCKET de .env.local
Lors l'import en production, mettre à jour la variable d'environnement
Étapes
1. Préparation et vérifications
Dans tous les cas
- Se rendre sur le drive afin d'exporter le google sheet en CSV
- Le fichier doit être avec des séparateurs
, - Le fichier ne doit pas contenir de sauts de ligne
- Vérifier le format des références, pour que ça ne créé pas de références bizarres en base (notamment pour l'année en cours)
- Lors de l'import, il y a parfois des colonnes trop longues par rapport à la BDD, il faudra les modifier un à un lors de l'étape suivante
Si il y a des images
- Placer le fichier csv dans le dossier
/data/images - Créer un dossier import_[code_territoire] avec tous les fichiers du drive dedans
- Exécuter la commande
./scripts/upload-s3.sh slugify-signalement [code_territoire] - Exécuter la commande
make console app="slugify-doc-signalement 67 0"
2. Envoi
- Créer un répertoire
data/signalement/
Si il y a des images
Dans le dossier /tmp
- Récupérer le fichier
signalement_slugged_[code_territoire].csv - Le copier dans
/data/signalement - Le renommer
signalement_[code_territoire].csv - Exécuter la commande
./scripts/upload-s3.sh image [code_territoire]
Sinon
- Déposer le fichier
signalement_[code_territoire].csvà l'intérieur de ce dossier
Dans tous les cas
- Exécuter la commande
./scripts/upload-s3.sh signalement [code_territoire]qui va permettre de pousser le fichier sur le bucket. - Vérifier que le fichier a bien été poussé
aws s3 ls [BUCKET_URL]/csv/
3. Exécution de la commande Symfony
En local
make console app="import-signalement 81"
Pour la pré-production et production
$ scalingo -a [nom-application] run php bin/console app:import-signalement [code_territoire]
4 Si il y a des images générations des miniatures et resize
make console app="create-signalement-photo-variants [code_territoire]"
Pour la pré-production et production
$ scalingo -a [nom-application] run php bin/console app:create-signalement-photo-variants [code_territoire]
Reprise des images dans fichier séparé
Historique
L'Isère est le premier territoire à fournir des images pour ses signalements historiques. Le territoire a fourni un lien drive afin de télécharger les documents (~10GB) et le fichier de mapping est sur le drive Histologe.
Ce fichier de correspondance permet de faire la relation entre les signalements déjà importés et les documents à rattacher.
Il faudra alors télécharger le fichier de correspondance et le renommer en mapping_doc_signalement-38.csv avant de le pousser sur le service de stockage en ligne.
Description
Voici un exemple de format du fichier fourni par le territoire 38 - ISERE
| id_EnregistrementAttachment | id_Enregistrement | sAttachFileName |
|---|---|---|
| 64868 | 14 | Courrier Mairie.docx |
| 64869 | 14 | Lettre Monsieur John.docx |
| 64872 | 12 | Fiche Madame Jane.pdf |
| 64873 | 12 | Courrier Prefecture.pdf |
Télécharger ce fichier d'exemple mapping_doc_signalement_01.csv et le déposer dans data/images/
Télécharger et décompresser ce dossier import_XX.zip afin de déposer les images dans data/images/import_01
- id_Enregistrement: Référence du signalement (sans l'année: ce qui être problématique s'ils existent des doublons)
- sAttachFileName: Nom du fichier
Il faudrait pour les prochains fichiers avoir une nouvelle colonne qui correspondrait à l'année du dépôt de signalement
Voici le format en sortie sur lequel va s'appuyer le rattachement des documents au signalement après avoir joué l'une des deux commandes.
| id_EnregistrementAttachment | id_Enregistrement | sAttachFileName |
|---|---|---|
| 64868 | 14 | 123-courrier-mairie.docx |
| 64869 | 14 | 456-ettre-Monsieur-john.docx |
| 64872 | 12 | 789-Fiche Madame Jane.pdf |
| 64873 | 12 | 101112-Courrier Prefecture.pdf |
Pré-requis
Vérfier que le client aws S3 est bien installé
$ aws --version
aws-cli/1.25.61 Python/3.8.16 Linux/5.15.0-56-generic botocore/1.27.60
Documention installation AWS CLI
Définir la variable d'environnement du bucket de DEV afin de pouvoir exécuter le script shell
$ export BUCKET_URL=my-bucket-name
Il s'agit dans le projet de la variable d'environnement S3_BUCKET de .env.local
Commandes utiles
Afficher la liste des fichiers du répertoire csv
$ aws s3 ls [BUCKET_URL]/csv
Etapes
1. Préparation (Ces étapes ne sont pas à faire en production)
- Créer un répertoire
data/images/import_[code_territoire]et déposer quelques images, mettre des références de signalement qui existent en base de donnée - Créer un fichier
data/images/mapping_doc_signalement_[code_territoire].csven suivant le format définit en description, vous devez avoir autant de lignes de CSV que d'images dans le répertoire.
2. Exécution des commandes en local
- Exécuter la commande
./scripts/upload-s3.sh mapping-doc [code_territoire]qui va permettre de pousser votre fichier de mapping sur le bucket. - Vérifier que le fichier a bien été poussé
aws s3 ls [BUCKET_URL]/csv/ - Exécuter la commande en local uniquement
app:slugify-doc-signalement'qui va vous créer un nouveau fichier csv avec des noms d'images slugifié et renommer les noms de fichiers de votre repertoiredata/images/import_[code_territoire]. - Exécuter la commande
./scripts/upload-s3.sh image [code_territoire]afin de pousser vos images slugifié sur le bucket
3. Exécution de la commande en production
- Le nouveau fichier est disponible sur le bucket, vous pouvez exécuter la commande
app:update-doc-signalementqui va mettre à jour les signalements. - Vérifier en base de données que les colonnes documents et photos ne sont pas vides pour les signalements qui vous intéresse.
- Afficher la page de signalement et vérifier que les images et documents s'affichent correctement.
La commande
make upload action=process-all zip="01"permet d'executer l'étape 2 et 3 pour l'environnement local
Pour la production
$ scalingo -a [nom-application] run php bin/console app:update-doc-signalement [code_territoire]