diff --git a/src/Controller/PublicController.php b/src/Controller/PublicController.php index 2ce7fdeb..c7d0d1ff 100644 --- a/src/Controller/PublicController.php +++ b/src/Controller/PublicController.php @@ -195,6 +195,7 @@ class PublicController extends AbstractController if ($stats_exist) { $stats = $stats_exist; } else { +// var_dump('création d\'objet stats '); $stats = new Stats(); $zipcode = (string)$demande->getInsee(); $stats->setZone($zipcode); @@ -387,6 +388,7 @@ class PublicController extends AbstractController 'name' => $name, 'commerce' => $place, 'zone' => $zipcode, + 'zipcode' => $zipcode, 'completion_percentage' => $place->getCompletionPercentage(), 'hide_filled_inputs' => $this->hide_filled_inputs, 'excluded_tags_to_render' => $this->motocultrice->excluded_tags_to_render, @@ -499,8 +501,8 @@ class PublicController extends AbstractController ]); } - #[Route('/modify/{osm_object_id}/{version}/{changesetID}', name: 'app_public_submit')] - public function submit($osm_object_id, $version, $changesetID): Response + #[Route('/modify/{osm_object_id}/{version}/{changesetID}/{insee_code}', name: 'app_public_submit')] + public function submit($osm_object_id, $version, $changesetID,$insee_code): Response { $this->actionLogger->log('submit_object', [ @@ -509,11 +511,15 @@ class PublicController extends AbstractController 'changesetID' => $changesetID ]); $place = $this->entityManager->getRepository(Place::class)->findOneBy(['osmId' => $osm_object_id]); + if (!$place) { $this->addFlash('warning', 'Ce commerce n\'existe pas.'); return $this->redirectToRoute('app_public_index'); } + $stats = $place->getStats(); + $stat_zone = $stats->getZone(); +// var_dump('stats object:', $stats->getZone()); // Récupérer les données POST $request = Request::createFromGlobals(); @@ -555,11 +561,6 @@ class PublicController extends AbstractController // Récupérer le token OSM depuis les variables d'environnement $osm_api_token = $_ENV['APP_OSM_BEARER']; - -// var_dump($tags_after_modif); -// die("tosssp"); - - try { $client = new Client(); @@ -661,27 +662,28 @@ class PublicController extends AbstractController $place->update_place_from_overpass_data($commerce_overpass); $this->entityManager->persist($place); - $this->entityManager->flush(); - $this->entityManager->clear(); +// $this->entityManager->flush(); +// $this->entityManager->clear(); $stats = $place->getStats(); - if (!$stats) { - $stats_exist = $this->entityManager->getRepository(Stats::class)->findOneBy(['zone' => $place->getZipCode()]); - if ($stats_exist) { - $stats = $stats_exist; - } else { - $stats = new Stats(); - $stats->setZone($place->getZipCode()); - $stats->setKind('user'); // Set the kind to 'user' as it's created from a user interaction - } - } +// if (!$stats) { +// // When modifying a Place, only use existing Stats objects, don't create new ones +// $stats_exist = $this->entityManager->getRepository(Stats::class)->findOneBy(['zone' => $insee_code]); +// if ($stats_exist) { +// $stats = $stats_exist; +// } else { +// // If no Stats object exists for this INSEE code, we can't proceed +// $this->addFlash('warning', 'Impossible de modifier ce commerce car aucune statistique n\'existe pour cette zone.'); +// return $this->redirectToRoute('app_public_index'); +// } +// } $stats->addPlace($place); - $place->setStats($stats); +// $place->setStats($stats); $place->setModifiedDate(new \DateTime()); $stats->computeCompletionPercent(); - $this->entityManager->persist($stats); +// $this->entityManager->persist($stats); $this->entityManager->persist($place); $this->entityManager->flush(); $this->entityManager->clear(); @@ -693,6 +695,8 @@ class PublicController extends AbstractController 'commerce_overpass' => $commerce_overpass, 'place' => $place, 'status' => $status, + 'insee_code' => $insee_code, + 'stat_zone' => $stat_zone, 'exception' => $exception, 'exception_message' => $exception_message, 'mapbox_token' => $_ENV['MAPBOX_TOKEN'], diff --git a/src/Entity/Place.php b/src/Entity/Place.php index 9d62c8c6..2ee94782 100644 --- a/src/Entity/Place.php +++ b/src/Entity/Place.php @@ -53,7 +53,7 @@ class Place #[ORM\OneToMany(targetEntity: History::class, mappedBy: 'place_id', orphanRemoval: true)] private Collection $histories; - #[ORM\ManyToOne(inversedBy: 'places', cascade: ['persist'])] + #[ORM\ManyToOne(inversedBy: 'places')] private ?Stats $stats = null; #[ORM\Column(type: Types::BIGINT)] diff --git a/templates/public/edit.html.twig b/templates/public/edit.html.twig index d9a37f99..dc6b8ceb 100644 --- a/templates/public/edit.html.twig +++ b/templates/public/edit.html.twig @@ -33,7 +33,11 @@ {% if commerce_overpass is not empty %} -