mirror of
https://forge.chapril.org/tykayn/osm-commerces
synced 2025-10-04 17:04:53 +02:00
124 lines
No EOL
3.5 KiB
Markdown
124 lines
No EOL
3.5 KiB
Markdown
# 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 |