list notes

This commit is contained in:
Tykayn 2025-06-01 23:35:15 +02:00 committed by tykayn
parent 0f5ff6ed45
commit cb90be8ff2
10 changed files with 119 additions and 36 deletions

View file

@ -78,6 +78,19 @@ final class AdminController extends AbstractController
]);
}
#[Route('/admin/placeType/{osm_kind}/{osm_id}', name: 'app_admin_by_osm_id')]
public function placeType(string $osm_kind, string $osm_id): Response
{
$place = $this->entityManager->getRepository(Place::class)->findOneBy(['osm_kind' => $osm_kind, 'osmId' => $osm_id]);
if($place) {
return $this->redirectToRoute('app_admin_commerce', ['id' => $place->getId()]);
} else {
$this->addFlash('error', 'Le lieu n\'existe pas.');
return $this->redirectToRoute('app_public_index');
}
}
#[Route('/admin/commerce/{id}', name: 'app_admin_commerce')]
public function commerce(int $id): Response
{
@ -221,7 +234,8 @@ final class AdminController extends AbstractController
->setHasAddress(($result['tags'] && isset($result['tags']['address']) || $result['tags'] && isset($result['tags']['contact:address'])) ? isset($result['tags']['address']) : null)
->setHasWebsite($result['tags'] && isset($result['tags']['website']) ? $result['tags']['website'] : null)
->setHasWheelchair($result['tags'] && isset($result['tags']['wheelchair']) ? $result['tags']['wheelchair'] : null)
->setHasNote($result['tags'] && isset($result['tags']['note']) ? $result['tags']['note'] : null)
->setHasNote($result['tags'] && isset($result['tags']['note']) ? $result['tags']['note'] : null)
->setNoteContent($result['tags'] && isset($result['tags']['note']) ? $result['tags']['note'] : null)
;
$this->entityManager->persist($commerce);
}

View file

@ -152,6 +152,7 @@ class PublicController extends AbstractController
'commerce_overpass' => $commerce_overpass,
'name' => $name,
'commerce' => $place,
'zone' => $zipcode,
'completion_percentage' => $place->getCompletionPercentage(),
'hide_filled_inputs' => $this->hide_filled_inputs,
'excluded_tags_to_render' => $this->motocultrice->excluded_tags_to_render,
@ -416,7 +417,8 @@ class PublicController extends AbstractController
#[Route('/places_with_note', name: 'app_public_places_with_note')]
public function places_with_note(): Response
{
$places = $this->entityManager->getRepository(Place::class)->findBy(['note' => '']);
// Récupérer tous les commerces ayant une note
$places = $this->entityManager->getRepository(Place::class)->findBy(['has_note' => true]);
return $this->render('public/places_with_note.html.twig', [
'controller_name' => 'PublicController',
'places' => $places

View file

@ -49,7 +49,7 @@ class HistoryFixtures extends Fixture
// Créer des statistiques de test
for ($i = 0; $i < 3; $i++) {
$stat = new Stats();
$stat->setZone($faker->city . ' (mock)')
$stat->setZone($faker->numberBetween(10000, 99999) )
->setCompletionPercent($faker->numberBetween(0, 100))
->addPlace( $faker->randomElement($places_list))
->addPlace( $faker->randomElement($places_list))

View file

@ -79,6 +79,9 @@ class Place
#[ORM\Column(nullable: true)]
private ?string $main_tag = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $note_content = null;
public function getMainTag(): ?string
{
return $this->main_tag;
@ -416,4 +419,16 @@ class Place
return $this;
}
public function getNoteContent(): ?string
{
return $this->note_content;
}
public function setNoteContent(?string $note_content): static
{
$this->note_content = $note_content;
return $this;
}
}

View file

@ -128,17 +128,17 @@ class Motocultrice
area["postal_code"="{$zone}"]->.searchArea;
(
// Recherche des commerces et services avec email
nw["amenity"]["contact:email"](area.searchArea);
nw["amenity"]["email"](area.searchArea);
nw["shop"]["contact:email"](area.searchArea);
nw["shop"]["email"](area.searchArea);
nw["office"]["contact:email"](area.searchArea);
nw["office"]["email"](area.searchArea);
nw["amenity"]["contact:email"][name](area.searchArea);
nw["amenity"]["email"][name](area.searchArea);
nw["shop"]["contact:email"][name](area.searchArea);
nw["shop"]["email"][name](area.searchArea);
nw["office"]["contact:email"][name](area.searchArea);
nw["office"]["email"][name](area.searchArea);
// Recherche des commerces et services sans email pour référence
nw["amenity"](area.searchArea);
nw["shop"](area.searchArea);
nw["office"](area.searchArea);
nw["amenity"][name](area.searchArea);
nw["shop"][name](area.searchArea);
nw["office"][name](area.searchArea);
);
out body;
>;