osm-labo/docs/create_missing_stats.md

3.7 KiB

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 :

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 :

  • codezone (code INSEE)
  • nomname (nom de la commune)
  • populationpopulation (nombre d'habitants)
  • codesPostauxcodesPostaux (codes postaux, séparés par des virgules)
  • sirensiren (numéro SIREN)
  • codeEpcicodeEpci (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.