diff --git a/src/Controller/AdminController.php b/src/Controller/AdminController.php index 91439ba..ab8fc7b 100644 --- a/src/Controller/AdminController.php +++ b/src/Controller/AdminController.php @@ -25,6 +25,8 @@ final class AdminController extends AbstractController { private FollowUpService $followUpService; + // Flag pour activer/désactiver la suppression de ville + private $allowDeleteCity = false; public function __construct( private EntityManagerInterface $entityManager, @@ -2097,4 +2099,16 @@ final class AdminController extends AbstractController // ... autres variables nécessaires ... ]); } + + // Dans la méthode de suppression de ville (ex: deleteCity ou similaire) + public function deleteCityAction(Request $request, $id): Response + { + if (!$this->allowDeleteCity) { + $this->addFlash('danger', "La suppression de ville est désactivée par configuration."); + return $this->redirectToRoute('admin_dashboard'); + } + // ... logique de suppression existante ... + // Pour éviter l'erreur, on retourne une redirection par défaut si rien n'est fait + return $this->redirectToRoute('admin_dashboard'); + } } diff --git a/src/Controller/PublicController.php b/src/Controller/PublicController.php index 5d98a8e..3b89391 100644 --- a/src/Controller/PublicController.php +++ b/src/Controller/PublicController.php @@ -710,4 +710,10 @@ class PublicController extends AbstractController } } } + + #[Route('/faq', name: 'faq')] + public function faq(): Response + { + return $this->render('public/faq.html.twig'); + } } diff --git a/src/Service/Motocultrice.php b/src/Service/Motocultrice.php index 75db507..5f5ef7e 100644 --- a/src/Service/Motocultrice.php +++ b/src/Service/Motocultrice.php @@ -130,13 +130,11 @@ out meta;'; * @return void */ public function map_post_values($request_post) { - $has_ask_angela = false; $has_opening_hours = false; - $modified_request_post = []; - + foreach ($request_post as $key => $value) { if (strpos($key, 'custom__ask_angela') === 0 ) { if($value == 'ask_angela'){ @@ -146,6 +144,33 @@ out meta;'; if (strpos($key, 'custom__opening_hours') === 0 && $value != '') { $has_opening_hours = true; } + // Ajout gestion livraison/vente à emporter (takeaway) + if (strpos($key, 'custom__takeaway') === 0) { + if (in_array($value, ['yes', 'only', 'no'])) { + $modified_request_post['commerce_tag_value__takeaway'] = $value; + } + // Si vide ou autre, on ne met pas le champ + } + // Gestion spéciale pour le champ cuisine (multiple) + if (strpos($key, 'commerce_tag_value__cuisine') === 0) { + $newCuisines = $value; + if (!is_array($newCuisines)) { + $newCuisines = array_map('trim', explode(';', $newCuisines)); + } + // Récupérer la valeur existante si présente + $existing = isset($request_post['cuisine_existing']) ? $request_post['cuisine_existing'] : ''; + $existingCuisines = $existing ? array_map('trim', explode(';', $existing)) : []; + // Fusionner en gardant l'ordre de l'existant puis des nouveaux non déjà présents + $allCuisines = $existingCuisines; + foreach ($newCuisines as $c) { + if ($c !== '' && !in_array($c, $allCuisines)) { + $allCuisines[] = $c; + } + } + // Nettoyer les vides et assembler + $allCuisines = array_filter($allCuisines, fn($v) => $v !== ''); + $modified_request_post['commerce_tag_value__cuisine'] = implode(';', $allCuisines); + } $modified_request_post[$key] = $value; } diff --git a/templates/public/edit/restaurant.html.twig b/templates/public/edit/restaurant.html.twig index 0524909..3d74f87 100644 --- a/templates/public/edit/restaurant.html.twig +++ b/templates/public/edit/restaurant.html.twig @@ -50,7 +50,24 @@ - +
+ + +
+
+ + +
+
+ + + Décrivez brièvement le type de cuisine, les spécialités ou toute information utile sur la cuisine proposée. +
diff --git a/templates/public/faq.html.twig b/templates/public/faq.html.twig new file mode 100644 index 0000000..6b8d8be --- /dev/null +++ b/templates/public/faq.html.twig @@ -0,0 +1,29 @@ +{% extends 'base.html.twig' %} +{% block title %}FAQ / À propos - OSM Mon Commerce{% endblock %} +{% block body %} +
+

FAQ / À propos

+

Qu'est-ce que OSM Mon Commerce ?

+

OSM Mon Commerce est un projet citoyen pour améliorer la qualité des données OpenStreetMap sur les commerces et équipements publics. Il permet de visualiser, compléter et suivre la complétion des informations utiles sur les lieux de votre territoire en permettant aux commerçants et autres gérants de lieux de remplir les informations par eux-même suite à une suggestion par email trouvé dans OpenStreetMap.

+

Comment est calculée la complétion ?

+

Pour chaque thématique (commerce, école, défibrillateur, etc.), une liste de tags OSM attendus est définie. La complétion d'un objet est le pourcentage de ces tags effectivement renseignés (non vides). Un objet est « complet » si tous les tags attendus sont présents et non vides.

+ +

Auteur

+

Développé par Tykayn (contact : contact@cipherbliss.com).

+

Projets voisins et ressources

+ +

Liens utiles

+ +
+{% endblock %} \ No newline at end of file diff --git a/templates/public/nav.html.twig b/templates/public/nav.html.twig index ce84921..d384642 100644 --- a/templates/public/nav.html.twig +++ b/templates/public/nav.html.twig @@ -31,6 +31,9 @@ {{ 'display.contact_humans'|trans }} +