mirror of
https://forge.chapril.org/tykayn/osm-commerces
synced 2025-10-04 17:04:53 +02:00
gestion cuisine, page faq
This commit is contained in:
parent
2bcec59281
commit
cd6c14c378
6 changed files with 98 additions and 4 deletions
|
@ -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');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -710,4 +710,10 @@ class PublicController extends AbstractController
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[Route('/faq', name: 'faq')]
|
||||
public function faq(): Response
|
||||
{
|
||||
return $this->render('public/faq.html.twig');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,24 @@
|
|||
<input class="form-check-input col-2" type="checkbox" name="cuisine_type" id="cuisine_turque" value="turkish" {% if commerce.tags_converted.cuisine is defined and 'turkish' in commerce.tags_converted.cuisine %}checked{% endif %}>
|
||||
<label class="form-check-label col-12" for="cuisine_turque">Turque</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<input class="form-check-input col-2" type="checkbox" name="cuisine_type" id="cuisine_pizza" value="pizza" {% if commerce.tags_converted.cuisine is defined and 'pizza' in commerce.tags_converted.cuisine %}checked{% endif %}>
|
||||
<label class="form-check-label col-12" for="cuisine_pizza">Pizza</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input col-2" type="checkbox" name="cuisine_type" id="cuisine_kebab" value="kebab" {% if commerce.tags_converted.cuisine is defined and 'kebab' in commerce.tags_converted.cuisine %}checked{% endif %}>
|
||||
<label class="form-check-label col-12" for="cuisine_kebab">Kebab</label>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="commerce_tag_value__description_cuisine" class="form-label">Description de la cuisine</label>
|
||||
<textarea
|
||||
class="form-control"
|
||||
id="commerce_tag_value__description_cuisine"
|
||||
name="commerce_tag_value__description:cuisine"
|
||||
rows="2"
|
||||
placeholder="Exemple : Spécialités maison, plats végétariens, ambiance, etc.">{% if commerce.tags_converted['description:cuisine'] is defined %}{{ commerce.tags_converted['description:cuisine'] }}{% endif %}</textarea>
|
||||
<small class="form-text text-muted">Décrivez brièvement le type de cuisine, les spécialités ou toute information utile sur la cuisine proposée.</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
|
29
templates/public/faq.html.twig
Normal file
29
templates/public/faq.html.twig
Normal file
|
@ -0,0 +1,29 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
{% block title %}FAQ / À propos - OSM Mon Commerce{% endblock %}
|
||||
{% block body %}
|
||||
<div class="container my-5">
|
||||
<h1 class="mb-4">FAQ / À propos</h1>
|
||||
<h2>Qu'est-ce que OSM Mon Commerce ?</h2>
|
||||
<p>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.</p>
|
||||
<h2>Comment est calculée la complétion ?</h2>
|
||||
<p>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.</p>
|
||||
<ul>
|
||||
<li>Exemple : pour un commerce, on attend <code>name</code>, <code>address</code>, <code>opening_hours</code>, <code>website</code>, <code>phone</code>, <code>wheelchair</code>, <code>siret</code>…</li>
|
||||
<li>Si 4 tags sur 6 sont remplis, la complétion est de 66 %.</li>
|
||||
</ul>
|
||||
<h2>Auteur</h2>
|
||||
<p>Développé par <a href="https://tykayn.fr" target="_blank">Tykayn</a> (contact : <a href="mailto:contact@cipherbliss.com">contact@cipherbliss.com</a>).</p>
|
||||
<h2>Projets voisins et ressources</h2>
|
||||
<ul>
|
||||
<li><a href="https://forum.openstreetmap.fr/" target="_blank">Forum OpenStreetMap France</a></li>
|
||||
<li><a href="https://completesvoscommerces.fr/" target="_blank">Complète tes commerces</a></li>
|
||||
<li><a href="https://mapcomplete.org/" target="_blank">MapComplete</a> : éditeur thématique OSM simple d'accès</li>
|
||||
<li><a href="https://panoramax.fr/" target="_blank">Panoramax</a> : streetview libre et ouvert</li>
|
||||
</ul>
|
||||
<h2>Liens utiles</h2>
|
||||
<ul>
|
||||
<li><a href="https://wiki.openstreetmap.org/wiki/FR:Accueil" target="_blank">Wiki OpenStreetMap (fr)</a></li>
|
||||
<li><a href="https://www.openstreetmap.org/" target="_blank">openstreetmap.org</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -31,6 +31,9 @@
|
|||
{{ 'display.contact_humans'|trans }}
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ path('faq') }}">FAQ / À propos</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="adminDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<i class="bi bi-gear"></i> Admin
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue