diff --git a/VERSION b/VERSION index 8b37c8c..dfc8356 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1097 \ No newline at end of file +1098 \ No newline at end of file diff --git a/backend/routes/osm.py b/backend/routes/osm.py index f58fd4c..d130898 100644 --- a/backend/routes/osm.py +++ b/backend/routes/osm.py @@ -46,6 +46,7 @@ OSM_QUERIES = { 'drinking_water': '[out:json][timeout:20];node["amenity"="drinking_water"]({bbox});out;', 'tierarzt': '[out:json][timeout:25];(node["amenity"="veterinary"]({bbox});way["amenity"="veterinary"]({bbox}););out center;', 'shop': '[out:json][timeout:25];(node["shop"="pet"]({bbox});way["shop"="pet"]({bbox}););out center;', + 'hundesalon': '[out:json][timeout:25];(node["shop"="pet_grooming"]({bbox});way["shop"="pet_grooming"]({bbox});node["craft"="pet_grooming"]({bbox});way["craft"="pet_grooming"]({bbox}););out center;', 'restaurant': '[out:json][timeout:35];(node["amenity"~"restaurant|cafe"]["dog"~"yes|allowed"]({bbox});way["amenity"~"restaurant|cafe"]["dog"~"yes|allowed"]({bbox});node["amenity"="biergarten"]({bbox});way["amenity"="biergarten"]({bbox}););out center;', 'bank': '[out:json][timeout:20];node["amenity"="bench"]({bbox});out;', 'hotel': '[out:json][timeout:25];(node["tourism"~"hotel|guest_house|hostel"]["dog"~"yes|allowed"]({bbox});way["tourism"~"hotel|guest_house|hostel"]["dog"~"yes|allowed"]({bbox}););out center;', @@ -286,6 +287,7 @@ ALLOWED_TYPES = { 'restaurant', # Hundefreundliches Restaurant / Café 'shop', # Hundefreundlicher Shop 'tierarzt', # Tierarzt / Tierklinik + 'hundesalon', # Hundesalon / Hundefriseur / Groomer 'hundeschule', # Hundeschule / Trainer 'kotbeutel', # Kotbeutelspender 'bank', # Sitzbank diff --git a/backend/routes/places.py b/backend/routes/places.py index 6e5c082..c8ca526 100644 --- a/backend/routes/places.py +++ b/backend/routes/places.py @@ -9,7 +9,7 @@ from auth import get_current_user router = APIRouter() -TYPEN = {'restaurant', 'shop', 'freilauf', 'kotbeutel', 'tierarzt', 'hundeschule'} +TYPEN = {'restaurant', 'shop', 'freilauf', 'kotbeutel', 'tierarzt', 'hundesalon', 'hundeschule'} def _haversine(lat1: float, lon1: float, lat2: float, lon2: float) -> float: diff --git a/backend/static/index.html b/backend/static/index.html index 59e915d..8a6e432 100644 --- a/backend/static/index.html +++ b/backend/static/index.html @@ -101,9 +101,9 @@ - - - + + +
@@ -625,11 +625,11 @@ - - - - - + + + + + diff --git a/backend/static/js/app.js b/backend/static/js/app.js index 7106076..2cae07a 100644 --- a/backend/static/js/app.js +++ b/backend/static/js/app.js @@ -3,7 +3,7 @@ Router, State-Management, Navigation, Initialisierung. ============================================================ */ -const APP_VER = '1097'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '1098'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt window.APP_VER = APP_VER; // global verfügbar für andere Module (z.B. offline-indicator) window.APP_VERSION = APP_VERSION; diff --git a/backend/static/js/pages/map.js b/backend/static/js/pages/map.js index 36dbc46..13adfce 100644 --- a/backend/static/js/pages/map.js +++ b/backend/static/js/pages/map.js @@ -46,6 +46,7 @@ window.Page_map = (() => { shop: [], kotbeutel: [], tierarzt: [], + hundesalon: [], hundeschule: [], poison: [], muell: [], @@ -83,6 +84,7 @@ window.Page_map = (() => { shop: { icon: '', label: 'Shop', color: '#3B82F6', z: 15 }, kotbeutel: { icon: '', label: 'Kotbeutel', color: '#84A98C', z: 5 }, tierarzt: { icon: '', label: 'Tierarzt', color: '#EF4444', z: 40 }, + hundesalon: { icon: '', label: 'Hundesalon', color: '#EC4899', z: 25 }, hundeschule: { icon: '', label: 'Hundeschule', color: '#8B5CF6', z: 30 }, poison: { icon: '', label: 'Giftköder', color: '#DC2626', z: 100 }, muell: { icon: '', label: 'Mülleimer', color: '#6B7280', z: -20 }, @@ -104,6 +106,7 @@ window.Page_map = (() => { dog_park: 'dog_park', wasser: 'drinking_water', tierarzt: 'tierarzt', + hundesalon: 'hundesalon', shop: 'shop', restaurant: 'restaurant', bank: 'bank', @@ -1069,6 +1072,7 @@ window.Page_map = (() => { { type: 'restaurant', icon: '', label: 'Restaurant', color: '#F97316' }, { type: 'shop', icon: '', label: 'Shop', color: '#3B82F6' }, { type: 'tierarzt', icon: '', label: 'Tierarzt', color: '#EF4444' }, + { type: 'hundesalon', icon: '', label: 'Hundesalon', color: '#EC4899' }, { type: 'hundeschule', icon: '', label: 'Hundeschule', color: '#8B5CF6' }, { type: 'waste_basket', icon: '', label: 'Mülleimer', color: '#6B7280' }, { type: 'kotbeutel', icon: '', label: 'Kotbeutel', color: '#84A98C' }, diff --git a/backend/static/sw.js b/backend/static/sw.js index 5258065..ffa732a 100644 --- a/backend/static/sw.js +++ b/backend/static/sw.js @@ -4,7 +4,7 @@ ============================================================ */ // ← EINZIGE Stelle für die Version — STATIC_ASSETS und CACHE_VERSION leiten sich ab -const VER = '1097'; +const VER = '1098'; const CACHE_VERSION = `by-v${VER}`; const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten