stats de ville prendre position des objets en base
This commit is contained in:
parent
711fc277be
commit
d66bc5e40c
3 changed files with 157 additions and 914 deletions
|
@ -235,10 +235,12 @@ final class AdminController extends AbstractController
|
|||
public function calculer_stats(string $insee_code): Response
|
||||
{
|
||||
// Récupérer tous les commerces de la zone
|
||||
$commerces = $this->entityManager->getRepository(Place::class)->findBy(['zip_code' => $insee_code, 'dead' => false]);
|
||||
// $commerces = $this->entityManager->getRepository(Place::class)->findBy(['zip_code' => $insee_code, 'dead' => false]);
|
||||
|
||||
// Récupérer les stats existantes pour la zone
|
||||
$stats = $this->entityManager->getRepository(Stats::class)->findOneBy(['zone' => $insee_code]);
|
||||
$commerces = $stats->getPlaces();
|
||||
|
||||
if(!$stats) {
|
||||
// Si aucune stat n'existe, on en crée une vide pour éviter les erreurs, mais sans la sauvegarder
|
||||
$stats = new Stats();
|
||||
|
@ -254,31 +256,11 @@ final class AdminController extends AbstractController
|
|||
->orderBy('sh.id', 'DESC')
|
||||
->setMaxResults(365)
|
||||
->getQuery()
|
||||
->getResult();
|
||||
|
||||
/*
|
||||
// La page de statistiques ne doit pas modifier les données, seulement les afficher.
|
||||
// La mise à jour des statistiques se fait lors du labourage.
|
||||
|
||||
// Calculer les statistiques
|
||||
$calculatedStats = $this->motocultrice->calculateStats($commerces);
|
||||
|
||||
// Mettre à jour les stats pour la zone donnée
|
||||
$stats->setPlacesCount($calculatedStats['places_count']);
|
||||
// ... (plus de setters) ...
|
||||
$stats->setCompletionPercent($calculatedStats['completion_percent']);
|
||||
|
||||
// ... (boucle foreach sur commerces) ...
|
||||
|
||||
$stats->computeCompletionPercent();
|
||||
|
||||
$this->entityManager->persist($stats);
|
||||
$this->entityManager->flush();
|
||||
*/
|
||||
->getResult();
|
||||
|
||||
// Données pour le graphique des modifications par trimestre
|
||||
$modificationsByQuarter = [];
|
||||
foreach ($stats->getPlaces() as $commerce) {
|
||||
foreach ($commerces as $commerce) {
|
||||
if ($commerce->getOsmDataDate()) {
|
||||
$date = $commerce->getOsmDataDate();
|
||||
$year = $date->format('Y');
|
||||
|
@ -292,16 +274,36 @@ final class AdminController extends AbstractController
|
|||
}
|
||||
ksort($modificationsByQuarter); // Trier par clé (année-trimestre)
|
||||
|
||||
$overpass_query = $this->motocultrice->get_query_places($insee_code);
|
||||
$overpass_query_url = "https://overpass-turbo.eu/?Q=" . urlencode($overpass_query);
|
||||
$geojson = [
|
||||
'type' => 'FeatureCollection',
|
||||
'features' => []
|
||||
];
|
||||
|
||||
foreach ($commerces as $commerce) {
|
||||
if ($commerce->getLat() && $commerce->getLon()) {
|
||||
$geojson['features'][] = [
|
||||
'type' => 'Feature',
|
||||
'geometry' => [
|
||||
'type' => 'Point',
|
||||
'coordinates' => [$commerce->getLon(), $commerce->getLat()]
|
||||
],
|
||||
'properties' => [
|
||||
'id' => $commerce->getOsmId(),
|
||||
'name' => $commerce->getName(),
|
||||
'main_tag' => $commerce->getMainTag(),
|
||||
'address' => $commerce->getStreet() . ' ' . $commerce->getHousenumber(),
|
||||
'note' => $commerce->getNoteContent(),
|
||||
'osm_url' => 'https://www.openstreetmap.org/' . $commerce->getOsmKind() . '/' . $commerce->getOsmId()
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return $this->render('admin/stats.html.twig', [
|
||||
'stats' => $stats,
|
||||
'commerces' => $commerces,
|
||||
'urls' => $urls,
|
||||
'query_places' => $overpass_query,
|
||||
'overpass_query' => $overpass_query,
|
||||
'overpass_query_url' => $overpass_query_url,
|
||||
'geojson' => json_encode($geojson),
|
||||
'modificationsByQuarter' => json_encode($modificationsByQuarter),
|
||||
'maptiler_token' => $_ENV['MAPTILER_TOKEN'],
|
||||
'statsHistory' => $statsHistory,
|
||||
|
|
|
@ -85,7 +85,7 @@ class Place
|
|||
#[ORM\Column(nullable: true)]
|
||||
private ?\DateTime $displayed_date = null;
|
||||
|
||||
#[ORM\Column(nullable: true)]
|
||||
#[ORM\Column(nullable: true, type: Types::FLOAT)]
|
||||
private ?float $lat = null;
|
||||
|
||||
#[ORM\Column(nullable: true, type: Types::FLOAT)]
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue