From 2238380e805ada1a6ae3f585c7e2a5b7029a62ac Mon Sep 17 00:00:00 2001 From: Tykayn Date: Fri, 10 Oct 2025 17:56:50 +0200 Subject: [PATCH] up demo by what --- frontend/src/app/pages/home/home.ts | 23 ++++++++++++++----- oedb/resources/demo.py | 2 +- oedb/resources/demo/templates/by_what.html | 14 ++++++++++- .../demo/templates/event_details.html | 11 +++++++-- .../demo/templates/map_by_what_type.html | 2 +- .../resources/demo/templates/view_events.html | 2 +- oedb/resources/quality_assurance.py | 2 +- 7 files changed, 43 insertions(+), 13 deletions(-) diff --git a/frontend/src/app/pages/home/home.ts b/frontend/src/app/pages/home/home.ts index 5da75c5..0af7996 100644 --- a/frontend/src/app/pages/home/home.ts +++ b/frontend/src/app/pages/home/home.ts @@ -61,13 +61,13 @@ export class Home implements OnInit, OnDestroy { // Propriétés pour les filtres searchText = ''; - selectedWhatFilter = 'culture'; + selectedWhatFilter = ''; availableWhatTypes: string[] = []; theme = signal(null); subthemes: Array<{ key: string, label: string, emoji: string }> = []; activeSubtheme = signal(null); // Option bbox - useBboxFilter = false; + useBboxFilter = true; currentBbox: { minLng: number, minLat: number, maxLng: number, maxLat: number } | null = null; // Debounce pour la recherche private searchDebounceTimer: any = null; @@ -130,7 +130,7 @@ export class Home implements OnInit, OnDestroy { }; if (overrides.what) { params.what = overrides.what; - } else if (this.selectedWhatFilter) { + } else if (this.selectedWhatFilter && this.selectedWhatFilter !== '') { params.what = this.selectedWhatFilter; } @@ -207,6 +207,11 @@ export class Home implements OnInit, OnDestroy { this.theme.set(t || null); this.buildSubthemes(); }); + + // Ajouter les catégories principales + whatTypes.add('culture'); + whatTypes.add('traffic'); + this.availableWhatTypes = Array.from(whatTypes).sort(); } @@ -244,9 +249,15 @@ export class Home implements OnInit, OnDestroy { // Filtre par type d'événement if (this.selectedWhatFilter) { - filtered = filtered.filter(feature => - feature?.properties?.what === this.selectedWhatFilter - ); + filtered = filtered.filter(feature => { + const what = feature?.properties?.what || ''; + // Si c'est une catégorie (culture, traffic), filtrer par préfixe + if (this.selectedWhatFilter === 'culture' || this.selectedWhatFilter === 'traffic') { + return what.startsWith(this.selectedWhatFilter + '.'); + } + // Sinon, correspondance exacte + return what === this.selectedWhatFilter; + }); } this.filteredFeatures = filtered; diff --git a/oedb/resources/demo.py b/oedb/resources/demo.py index bce150a..a9280b0 100644 --- a/oedb/resources/demo.py +++ b/oedb/resources/demo.py @@ -126,7 +126,7 @@ class DemoResource: # Fetch events from the API try: - response = requests.get('/event?limit=1000') + response = requests.get('/event?limit=5000') if response.status_code == 200 and response.text: events_data = response.json() else: diff --git a/oedb/resources/demo/templates/by_what.html b/oedb/resources/demo/templates/by_what.html index 420acfc..99f220b 100644 --- a/oedb/resources/demo/templates/by_what.html +++ b/oedb/resources/demo/templates/by_what.html @@ -10,6 +10,11 @@ color: #666; font-size: 0.9em; } + .event-details { + color: #888; + font-style: italic; + margin-left: 5px; + } {% endblock %} @@ -39,7 +44,14 @@
    {% for event in events_by_what[what_type]|sort(attribute='label') %}
  • - {{ event.label or 'Unnamed Event' }} + {% set event_name = event.name or event.title or event.short_description or event.label or 'Unnamed Event' %} + {{ event_name }} + {% if event.label and event.label != event_name %} + ({{ event.label }}) + {% endif %} + {% if event.short_description and event.short_description != event_name and event.short_description != event.label %} + - {{ event.short_description }} + {% endif %} [map] diff --git a/oedb/resources/demo/templates/event_details.html b/oedb/resources/demo/templates/event_details.html index 58157d9..8f2b60f 100644 --- a/oedb/resources/demo/templates/event_details.html +++ b/oedb/resources/demo/templates/event_details.html @@ -1,6 +1,6 @@ {% extends "layout.html" %} -{% block title %}Événement {{ properties.label|default(id) }} - OpenEventDatabase{% endblock %} +{% block title %}Événement {{ properties.name or properties.title or properties.short_description or properties.label or id }} - OpenEventDatabase{% endblock %} {% block css %}