diff --git a/src/Controller/AdminController.php b/src/Controller/AdminController.php index 91439bab..ab8fc7bb 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 5d98a8ed..3b89391c 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 75db5076..5f5ef7e0 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 05249095..3d74f876 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 00000000..6b8d8bec --- /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 ce849218..d384642b 100644 --- a/templates/public/nav.html.twig +++ b/templates/public/nav.html.twig @@ -31,6 +31,9 @@ {{ 'display.contact_humans'|trans }} +