From 3d767ffaaea93084b3847569379e9fa2b291e32c Mon Sep 17 00:00:00 2001 From: Tykayn Date: Mon, 14 Jul 2025 19:27:07 +0200 Subject: [PATCH] ajout page speed limit --- src/Controller/AdminController.php | 19 ++++ templates/admin/speed_limit.html.twig | 136 ++++++++++++++++++++++++++ templates/admin/stats.html.twig | 3 + 3 files changed, 158 insertions(+) create mode 100644 templates/admin/speed_limit.html.twig diff --git a/src/Controller/AdminController.php b/src/Controller/AdminController.php index dd484892..c48d59ca 100644 --- a/src/Controller/AdminController.php +++ b/src/Controller/AdminController.php @@ -1813,4 +1813,23 @@ final class AdminController extends AbstractController 'insee_code' => $insee_code, ]); } + + #[Route('/admin/speed-limit/{insee_code}', name: 'admin_speed_limit', requirements: ['insee_code' => '\d+'])] + public function speedLimit(string $insee_code): Response + { + $stats = $this->entityManager->getRepository(Stats::class)->findOneBy(['zone' => $insee_code]); + if (!$stats) { + $this->addFlash('error', 'Aucune stats trouvée pour ce code INSEE. Veuillez d\'abord ajouter la ville.'); + return $this->redirectToRoute('app_admin_import_stats'); + } + // Tags attendus pour la complétion + $expected_tags = ['maxspeed', 'highway']; + // On transmet le code INSEE et le nom de la ville au template + return $this->render('admin/speed_limit.html.twig', [ + 'stats' => $stats, + 'insee_code' => $insee_code, + 'expected_tags' => $expected_tags, + 'maptiler_token' => $_ENV['MAPTILER_TOKEN'] ?? null, + ]); + } } diff --git a/templates/admin/speed_limit.html.twig b/templates/admin/speed_limit.html.twig new file mode 100644 index 00000000..f8eafbe7 --- /dev/null +++ b/templates/admin/speed_limit.html.twig @@ -0,0 +1,136 @@ +{% extends 'base.html.twig' %} + +{% block title %}Limites de vitesse - {{ stats.name }}{% endblock %} + +{% block body %} +
+

Limites de vitesse à {{ stats.name }} ({{ stats.zone }})

+

Complétion des limitations de vitesse sur le réseau routier OSM.
+ Tags attendus : + {% for tag in expected_tags %}{{ tag }}{% if not loop.last %}, {% endif %}{% endfor %} +

+
+
+
+
Carte des routes (coloration selon maxspeed)
+
+
+
+
+
+
+
Panneaux routiers & feux de circulation
+
+
+
+
+
+
+
+
Informations
+
+
    +
  • Rouge : route sans maxspeed
  • +
  • Vert : route avec maxspeed
  • +
  • Bleu : panneau routier (traffic_sign)
  • +
  • Orange : feu de circulation (traffic_signals)
  • +
+

Cliquer sur un objet pour ouvrir dans OSM, iD ou JOSM.

+
+
+
+
+
+{% endblock %} + +{% block javascripts %} +{{ parent() }} + + +{% endblock %} \ No newline at end of file diff --git a/templates/admin/stats.html.twig b/templates/admin/stats.html.twig index 2e710c62..82ddcd53 100644 --- a/templates/admin/stats.html.twig +++ b/templates/admin/stats.html.twig @@ -139,6 +139,9 @@ Complétion des rues + + Limites de vitesse + {% if stats.population %}