79 lines
No EOL
3.7 KiB
Markdown
79 lines
No EOL
3.7 KiB
Markdown
# Création des objets Stats manquants à partir du CSV des communes
|
|
|
|
Cette documentation explique comment utiliser la nouvelle fonctionnalité pour créer des objets Stats manquants à partir du fichier CSV des communes françaises.
|
|
|
|
## Fonctionnalité
|
|
|
|
La route `/admin/create-missing-stats-from-csv` permet d'examiner le fichier CSV des communes françaises (`communes_france.csv`) et de créer des objets Stats pour les communes qui n'en ont pas encore dans la base de données. Les objets Stats sont d'abord créés avec les informations du CSV, puis complétés avec des données supplémentaires (coordonnées, budget, etc.) lors de la sauvegarde par paquet de 100, sans effectuer de "labourage" (traitement complet des données OSM).
|
|
|
|
Les objets Stats sont sauvegardés par paquets de 100 pour optimiser les performances et éviter les problèmes de mémoire.
|
|
|
|
## Prérequis
|
|
|
|
1. Le fichier `communes_france.csv` doit exister à la racine du projet
|
|
2. Le fichier doit contenir au minimum les colonnes suivantes :
|
|
- `code` : Le code INSEE de la commune
|
|
- `nom` : Le nom de la commune
|
|
|
|
Si le fichier n'existe pas, vous pouvez le générer en exécutant le script `fetch_communes.py` :
|
|
|
|
```bash
|
|
python fetch_communes.py
|
|
```
|
|
|
|
## Utilisation
|
|
|
|
1. Accédez à la route `/admin/create-missing-stats-from-csv` dans votre navigateur
|
|
2. Le processus s'exécute automatiquement et affiche un message de succès une fois terminé
|
|
3. Vous serez redirigé vers la page d'administration principale
|
|
|
|
## Données importées
|
|
|
|
Les données suivantes sont importées du CSV pour chaque commune :
|
|
|
|
- `code` → `zone` (code INSEE)
|
|
- `nom` → `name` (nom de la commune)
|
|
- `population` → `population` (nombre d'habitants)
|
|
- `codesPostaux` → `codesPostaux` (codes postaux, séparés par des virgules)
|
|
- `siren` → `siren` (numéro SIREN)
|
|
- `codeEpci` → `codeEpci` (code EPCI)
|
|
|
|
Les données suivantes sont récupérées automatiquement lors de la sauvegarde par paquet de 100 :
|
|
|
|
- `lat` et `lon` : Coordonnées géographiques (récupérées via l'API geo.api.gouv.fr)
|
|
- `budget_annuel` : Budget annuel de la commune (récupéré via le service BudgetService)
|
|
- `completion_percent` : Pourcentage de complétion (calculé automatiquement)
|
|
|
|
Les objets Stats créés ont également les propriétés suivantes :
|
|
- `date_created` : Date de création (date actuelle)
|
|
- `date_modified` : Date de modification (date actuelle)
|
|
- `kind` : 'command' (indique que l'objet a été créé par une commande)
|
|
|
|
## Vérification
|
|
|
|
Après avoir exécuté la fonctionnalité, un message de succès s'affiche avec les informations suivantes :
|
|
- Nombre de communes ajoutées
|
|
- Nombre de communes déjà existantes (ignorées)
|
|
- Nombre d'erreurs rencontrées
|
|
|
|
Vous pouvez également vérifier dans la base de données que les objets Stats ont bien été créés pour les communes manquantes.
|
|
|
|
## Journalisation
|
|
|
|
Les actions et erreurs sont journalisées via le service `ActionLogger` :
|
|
- `admin/create_missing_stats_from_csv` : Journalise le début de l'action
|
|
- `error_create_missing_stats_from_csv` : Journalise les erreurs rencontrées lors de la création des objets Stats
|
|
- `error_complete_stats_data` : Journalise les erreurs rencontrées lors de la récupération des données supplémentaires (coordonnées, budget, etc.)
|
|
|
|
## Différence avec importStatsFromCsv
|
|
|
|
Cette fonctionnalité est similaire à `importStatsFromCsv`, mais avec quelques différences importantes :
|
|
- Elle est spécifiquement conçue pour créer des objets Stats manquants
|
|
- Elle utilise 'command' comme valeur pour le champ `kind` (au lieu de 'request')
|
|
- Elle journalise les erreurs de manière plus détaillée
|
|
|
|
## Exemple de message de succès
|
|
|
|
```
|
|
Création des Stats manquantes terminée : 123 communes ajoutées, 456 déjà existantes, 0 erreurs.
|
|
``` |