115 lines
No EOL
5.1 KiB
Twig
115 lines
No EOL
5.1 KiB
Twig
{% extends 'base.html.twig' %}
|
|
|
|
{% block title %}Import d'objets Stats{% endblock %}
|
|
|
|
{% block body %}
|
|
<div class="container mt-4">
|
|
<div class="row">
|
|
<div class="col-md-8 offset-md-2">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h1><i class="bi bi-upload"></i> Import d'objets Stats</h1>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="alert alert-info">
|
|
<h5><i class="bi bi-info-circle"></i> Instructions</h5>
|
|
<p>Cette page permet d'importer des objets Stats à partir d'un fichier JSON.</p>
|
|
<ul>
|
|
<li>Seuls les objets Stats qui n'existent pas encore seront créés</li>
|
|
<li>Les objets existants (même code INSEE) seront ignorés</li>
|
|
<li>Le fichier JSON doit contenir un tableau d'objets avec les champs requis</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<form method="POST" enctype="multipart/form-data">
|
|
<div class="mb-3">
|
|
<label for="json_file" class="form-label">Fichier JSON</label>
|
|
<input type="file"
|
|
class="form-control"
|
|
id="json_file"
|
|
name="json_file"
|
|
accept=".json,application/json"
|
|
required>
|
|
<div class="form-text">
|
|
Sélectionnez un fichier JSON contenant un tableau d'objets Stats.
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<button type="submit" class="btn btn-primary">
|
|
<i class="bi bi-upload"></i> Importer
|
|
</button>
|
|
<a href="{{ path('app_admin') }}" class="btn btn-secondary">
|
|
<i class="bi bi-arrow-left"></i> Retour
|
|
</a>
|
|
</div>
|
|
</form>
|
|
|
|
<hr>
|
|
|
|
<h5><i class="bi bi-file-text"></i> Format attendu</h5>
|
|
<p>Le fichier JSON doit contenir un tableau d'objets avec la structure suivante :</p>
|
|
|
|
<div class="bg-light p-3 rounded">
|
|
<pre><code>[
|
|
{
|
|
"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
|
|
}
|
|
}
|
|
]</code></pre>
|
|
</div>
|
|
|
|
<h6 class="mt-3">Champs requis :</h6>
|
|
<ul>
|
|
<li><strong>zone</strong> : Code INSEE de la zone</li>
|
|
<li><strong>name</strong> : Nom de la ville/zone</li>
|
|
</ul>
|
|
|
|
<h6>Champs optionnels :</h6>
|
|
<ul>
|
|
<li><strong>population</strong> : Population de la zone</li>
|
|
<li><strong>budgetAnnuel</strong> : Budget annuel de la collectivité</li>
|
|
<li><strong>siren</strong> : Code SIREN</li>
|
|
<li><strong>codeEpci</strong> : Code EPCI</li>
|
|
<li><strong>codesPostaux</strong> : Codes postaux (séparés par des points-virgules)</li>
|
|
<li><strong>decomptes</strong> : Objet contenant les statistiques
|
|
<ul>
|
|
<li>placesCount : Nombre de lieux</li>
|
|
<li>avecHoraires : Lieux avec horaires</li>
|
|
<li>avecAdresse : Lieux avec adresse</li>
|
|
<li>avecSite : Lieux avec site web</li>
|
|
<li>avecAccessibilite : Lieux avec accessibilité</li>
|
|
<li>avecNote : Lieux avec note</li>
|
|
<li>completionPercent : Pourcentage de complétion</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<div class="alert alert-warning mt-3">
|
|
<h6><i class="bi bi-exclamation-triangle"></i> Important</h6>
|
|
<ul class="mb-0">
|
|
<li>Les objets Stats existants ne seront pas modifiés</li>
|
|
<li>Seuls les nouveaux objets seront créés</li>
|
|
<li>Assurez-vous que le fichier JSON est valide avant l'import</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %} |