This commit is contained in:
Tykayn 2025-05-29 16:50:25 +02:00 committed by tykayn
parent 9ae7c0d3e4
commit a1c5647b43
9 changed files with 172 additions and 83 deletions

View file

@ -173,6 +173,13 @@ class PublicController extends AbstractController
#[Route('/modify/{osm_object_id}/{version}/{changesetID}', name: 'app_public_submit')]
public function submit($osm_object_id, $version, $changesetID): Response
{
$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');
}
// Récupérer les données POST
$request = Request::createFromGlobals();
@ -227,7 +234,7 @@ class PublicController extends AbstractController
$tag = $changeset->addChild('tag');
$tag->addAttribute('k', 'comment');
$tag->addAttribute('v', 'Modification des tags via l\'interface web #MonCommerceOSM');
$tag->addAttribute('v', 'Modification dans #MonCommerceOSM');
$changesetResponse = $client->put('https://api.openstreetmap.org/api/0.6/changeset/create', [
'body' => $changesetXml->asXML(),
@ -305,7 +312,28 @@ class PublicController extends AbstractController
// après envoi on récupère les données
$commerce = $this->motocultrice->get_osm_object_data($osm_kind, $osm_object_id);
$place->update_place_from_overpass_data($commerce);
$this->entityManager->persist($place);
$this->entityManager->flush();
$stats = $place->getStats();
if(!$stats) {
$stats = $this->entityManager->getRepository(Stats::class)->findOneBy(['zip_code' => $place->getZipCode()]);
}
if(!$stats) {
$stats = new Stats();
$stats->setZipCode($place->getZipCode());
}
$stats->addPlace($place);
$place->setStats($stats);
$stats->computeCompletionPercent();
$this->entityManager->persist($stats);
$this->entityManager->persist($place);
$this->entityManager->flush();
return $this->render('public/view.html.twig', [
'controller_name' => 'PublicController',