action close commerce et listing

This commit is contained in:
Tykayn 2025-05-28 17:27:48 +02:00 committed by tykayn
parent 14f28ef405
commit 268ac799e4
6 changed files with 97 additions and 2 deletions

View file

@ -49,6 +49,16 @@ document.addEventListener('DOMContentLoaded', () => {
}
});
}
const btnClosedCommerce = document.querySelector('#closedCommerce');
if (btnClosedCommerce) {
btnClosedCommerce.addEventListener('click', () => {
if (!confirm('Êtes-vous sûr de vouloir signaler ce commerce comme fermé ?')) {
return;
}
window.location.href = '/closed_commerce/' + document.getElementById('app_public_closed_commerce').value;
});
}
});

View file

@ -347,4 +347,34 @@ class PublicController extends AbstractController
'commerce_id' => $osm_object_id,
]);
}
}
#route pour signaler que le commerce est fermé
#[Route('/closed_commerce/{osm_object_id}', name: 'app_public_closed_commerce')]
public function closed_commerce($osm_object_id): Response
{
$place = $this->entityManager->getRepository(Place::class)->findOneBy(['osm_id' => $osm_object_id]);
if (!$place) {
$this->addFlash('warning', 'Ce commerce n\'existe pas.');
return $this->redirectToRoute('app_public_index');
}
$place->setClosed(true);
$this->entityManager->flush();
return $this->render('public/closed_commerce.html.twig', [
'controller_name' => 'PublicController',
]);
}
#[Route('/closed_commerces', name: 'app_public_closed_commerces')]
public function closedCommerces(): Response
{
// Récupérer tous les commerces marqués comme fermés
$closedPlaces = $this->entityManager->getRepository(Place::class)->findBy(['dead' => true]);
return $this->render('public/closed_commerces.html.twig', [
'controller_name' => 'PublicController',
'closed_places' => $closedPlaces
]);
}
}

View file

@ -0,0 +1,48 @@
{% extends 'base.html.twig' %}
{% block title %}{{ 'display.title'|trans }} - accueil{% endblock %}
{% block stylesheets %}
{{ parent() }}
<link href='https://api.mapbox.com/mapbox-gl-js/v2.15.0/mapbox-gl.css' rel='stylesheet' />
<style>
.hidden {
display: none;
}
</style>
{% endblock %}
{% block body %}
<div class="container mt-4">
<h1>Commerces fermés</h1>
<p>Voici la liste des commerces fermés :</p>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Nom du commerce</th>
<th>Code postal</th>
</tr>
</thead>
<tbody>
{% for place in closed_places %}
<tr>
<td>
{{ place.name }}
</td>
<td>{{ place.zipCode }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% if closed_places|length == 0 %}
<p>Aucun commerce fermé trouvé.</p>
{% endif %}
</div>
</div>
{% endblock %}

View file

@ -184,7 +184,7 @@
container: 'map',
style: 'https://api.maptiler.com/maps/basic-v2/style.json?key={{ maptiler_token }}',
center: [{{ commerce_overpass['@attributes'].lon }}, {{ commerce_overpass['@attributes'].lat }}],
zoom: 14
zoom: 17
});
new mapboxgl.Marker()

View file

@ -20,6 +20,11 @@
<i class="bi bi-envelope-fill"></i>
{{ 'display.contact_humans'|trans }}</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ path('app_public_closed_commerces') }}">
<i class="bi bi-x-circle-fill"></i>
{{ 'display.closed_commerces'|trans }}</a>
</li>
</ul>
</div>
</div>

View file

@ -24,6 +24,8 @@ display:
opening_hours_description: "De bons horaires d'ouverture sont importants pour que les clients puissent vous trouver."
ask_angela_yes: "Oui"
ask_angela_no: "Non"
closed_commerces: "Commerces fermés"
values:
wheelchair:
yes: "le lieu est totalement praticable en fauteuil roulant"