add history on stats

This commit is contained in:
Tykayn 2025-06-17 19:38:44 +02:00 committed by tykayn
parent 7fb0c9c8c2
commit b61fa6a287
11 changed files with 502 additions and 37 deletions

View file

@ -8,6 +8,7 @@ use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use App\Entity\Place;
use App\Entity\Stats;
use App\Entity\StatsHistory;
use App\Service\Motocultrice;
use Doctrine\ORM\EntityManagerInterface;
use function uuid_create;
@ -146,6 +147,8 @@ final class AdminController extends AbstractController
$city = $this->motocultrice->get_city_osm_from_zip_code($insee_code);
if (!$stats) {
$stats = new Stats();
$stats->setDateCreated(new \DateTime());
$stats->setDateModified(new \DateTime());
$stats->setZone($insee_code)
->setPlacesCount(0)
->setAvecHoraires(0)
@ -234,15 +237,30 @@ final class AdminController extends AbstractController
// Mettre à jour les statistiques finales
$stats->computeCompletionPercent();
if($stats->getDateCreated() == null) {
$stats->setDateCreated(new \DateTime());
}
$stats->setDateModified(new \DateTime());
// Créer un historique des statistiques
$statsHistory = new StatsHistory();
$statsHistory->setDate(new \DateTime())
->setStats($stats);
$statsHistory->setPlacesCount($stats->getPlaces()->count())
->setOpeningHoursCount($stats->getAvecHoraires())
->setAddressCount($stats->getAvecAdresse())
->setWebsiteCount($stats->getAvecSite())
->setSiretCount($stats->getAvecSiret())
// ->setAccessibiliteCount($stats->getAvecAccessibilite())
// ->setNoteCount($stats->getAvecNote())
->setCompletionPercent($stats->getCompletionPercent())
->setStats($stats);
$this->entityManager->persist($statsHistory);
$this->entityManager->persist($stats);
$this->entityManager->flush();
@ -253,10 +271,11 @@ final class AdminController extends AbstractController
$this->addFlash('success', $message);
} catch (\Exception $e) {
$this->addFlash('error', 'Erreur lors du labourage : ' . $e->getMessage());
die(var_dump($e));
}
return $this->redirectToRoute('app_public_dashboard');
// return $this->redirectToRoute('app_admin_stats', ['insee_code' => $insee_code]);
// return $this->redirectToRoute('app_public_dashboard');
return $this->redirectToRoute('app_admin_stats', ['insee_code' => $insee_code]);
}
#[Route('/admin/delete/{id}', name: 'app_admin_delete')]