enrich exports lat et lon
This commit is contained in:
parent
46d3b21cf6
commit
b5b2880637
6 changed files with 606 additions and 53 deletions
124
docs/import-stats.md
Normal file
124
docs/import-stats.md
Normal file
|
@ -0,0 +1,124 @@
|
|||
# Import d'objets Stats
|
||||
|
||||
Cette fonctionnalité permet d'importer des objets Stats à partir d'un fichier JSON via l'interface d'administration.
|
||||
|
||||
## Accès
|
||||
|
||||
La page d'import est accessible via :
|
||||
- L'URL : `/admin/import-stats`
|
||||
- Le menu de navigation : "Import Stats"
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
### Sécurité
|
||||
- **Aucune modification** des objets Stats existants
|
||||
- Seuls les nouveaux objets sont créés
|
||||
- Vérification de l'existence par le code INSEE (`zone`)
|
||||
|
||||
### Validation
|
||||
- Vérification du format JSON
|
||||
- Validation des champs requis (`zone` et `name`)
|
||||
- Gestion des erreurs par ligne
|
||||
- Rapport détaillé des résultats
|
||||
|
||||
### Champs supportés
|
||||
|
||||
#### Champs requis
|
||||
- `zone` : Code INSEE de la zone (ex: "75056")
|
||||
- `name` : Nom de la ville/zone (ex: "Paris")
|
||||
|
||||
#### Champs optionnels
|
||||
- `population` : Population de la zone (nombre)
|
||||
- `budgetAnnuel` : Budget annuel de la collectivité (chaîne)
|
||||
- `siren` : Code SIREN (nombre)
|
||||
- `codeEpci` : Code EPCI (nombre)
|
||||
- `codesPostaux` : Codes postaux séparés par des points-virgules (ex: "75001;75002;75003")
|
||||
|
||||
#### Objet `decomptes` (optionnel)
|
||||
- `placesCount` : Nombre total de lieux
|
||||
- `avecHoraires` : Nombre de lieux avec horaires
|
||||
- `avecAdresse` : Nombre de lieux avec adresse
|
||||
- `avecSite` : Nombre de lieux avec site web
|
||||
- `avecAccessibilite` : Nombre de lieux avec accessibilité
|
||||
- `avecNote` : Nombre de lieux avec note
|
||||
- `completionPercent` : Pourcentage de complétion
|
||||
|
||||
## Format JSON attendu
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"zone": "75056",
|
||||
"name": "Paris",
|
||||
"population": 2161000,
|
||||
"budgetAnnuel": "8500000000",
|
||||
"siren": 200054781,
|
||||
"codeEpci": 200054781,
|
||||
"codesPostaux": "75001;75002;75003",
|
||||
"decomptes": {
|
||||
"placesCount": 1250,
|
||||
"avecHoraires": 980,
|
||||
"avecAdresse": 1200,
|
||||
"avecSite": 850,
|
||||
"avecAccessibilite": 450,
|
||||
"avecNote": 320,
|
||||
"completionPercent": 75
|
||||
}
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
## Utilisation
|
||||
|
||||
1. **Préparer le fichier JSON**
|
||||
- Créer un tableau d'objets Stats
|
||||
- Inclure au minimum les champs `zone` et `name`
|
||||
- Valider le format JSON
|
||||
|
||||
2. **Accéder à la page d'import**
|
||||
- Aller sur `/admin/import-stats`
|
||||
- Ou cliquer sur "Import Stats" dans le menu
|
||||
|
||||
3. **Importer le fichier**
|
||||
- Sélectionner le fichier JSON
|
||||
- Cliquer sur "Importer"
|
||||
- Vérifier les messages de résultat
|
||||
|
||||
4. **Vérifier les résultats**
|
||||
- Nombre d'objets créés
|
||||
- Nombre d'objets ignorés (déjà existants)
|
||||
- Liste des erreurs éventuelles
|
||||
|
||||
## Messages de retour
|
||||
|
||||
### Succès
|
||||
```
|
||||
Import terminé : X objet(s) créé(s), Y objet(s) ignoré(s) (déjà existants).
|
||||
```
|
||||
|
||||
### Erreurs possibles
|
||||
- "Aucun fichier JSON n'a été fourni."
|
||||
- "Le fichier doit être au format JSON."
|
||||
- "Erreur lors du décodage JSON: [message]"
|
||||
- "Le fichier JSON doit contenir un tableau d'objets Stats."
|
||||
- "Ligne X: Champs 'zone' et 'name' requis"
|
||||
- "Ligne X: [message d'erreur spécifique]"
|
||||
|
||||
## Logs
|
||||
|
||||
Toutes les actions d'import sont loggées via le service `ActionLogger` :
|
||||
- `admin/import_stats` : Accès à la page
|
||||
- `admin/import_stats_success` : Import réussi avec statistiques
|
||||
- `admin/import_stats_error` : Erreur lors de l'import
|
||||
|
||||
## Exemple de fichier de test
|
||||
|
||||
Un fichier `test_import_stats.json` est fourni avec des exemples pour Paris, Lyon et Marseille.
|
||||
|
||||
## Notes importantes
|
||||
|
||||
- Les objets existants ne sont jamais modifiés
|
||||
- Seuls les nouveaux objets sont créés
|
||||
- Les dates de création et modification sont automatiquement définies
|
||||
- Les erreurs sont affichées par ligne pour faciliter le débogage
|
||||
- Le système est conçu pour être sûr et non destructif
|
Loading…
Add table
Add a link
Reference in a new issue