diff --git a/assets/layers/campsite/campsite.json b/assets/layers/campsite/campsite.json index d29e848c4..8453d4580 100644 --- a/assets/layers/campsite/campsite.json +++ b/assets/layers/campsite/campsite.json @@ -242,7 +242,12 @@ }, "condition": { "and": [ - "charge!~^(.*;|)[^;/]*/day(|[^/].*)$", + { + "or": [ + "charge=", + "charge~.*/person/day.*" + ] + }, "fee!=no" ] } @@ -275,6 +280,41 @@ }, "condition": { "and": [ + { + "or": [ + "charge=", + "charge~^(.*;|)[^;/]*/day(|[^/].*)$" + ] + }, + "fee!=no" + ] + } + }, + { + "id": "charge", + "question": { + "en": "What is the charge?", + "cs": "Jaký je poplatek?", + "de": "Was ist die Gebühr?" + }, + "render": { + "en": "Charge: {charge}", + "cs": "Poplatek: {charge}", + "de": "Gebühr: {charge}" + }, + "icon": "./assets/layers/questions/cash.svg", + "freeform": { + "key": "charge", + "type": "currency", + "inline": true, + "postfixDistinguished": "day", + "addExtraTags": [ + "fee=yes" + ] + }, + "condition": { + "and": [ + "charge!~^(.*;|)[^;/]*/day(|[^/].*)$", "charge!~.*/person/day.*", "fee!=no" ] @@ -290,109 +330,16 @@ "id": "capacity_persons_filter", "options": [ { + "osmTags": "capacity:persons>={search}", + "fields": [ + { + "name": "search", + "type": "pnat" + } + ], "question": { - "en": "All capacities", - "ca": "Totes les capacitats", - "cs": "Všechny kapacity", - "de": "Alle Kapazitäten", - "it": "Tutte le capacità" + "en": "Capacity of {search} persons" } - }, - { - "question": { - "en": "Capacity between 1 and 20 persons", - "ca": "Capacitat entre 1 i 20 persones", - "cs": "Kapacita mezi 1 a 20 osobami", - "de": "Kapazität zwischen 1 und 20 Personen", - "it": "Capacità tra 1 e 20 persone" - }, - "osmTags": { - "and": [ - "capacity:persons>=1", - "capacity:persons<=20" - ] - } - }, - { - "question": { - "en": "Capacity between 21 and 50 persons", - "ca": "Capacitat entre 21 i 50 persones", - "cs": "Kapacita mezi 21 a 50 osobami", - "de": "Kapazität zwischen 21 und 50 Personen", - "it": "Capacità tra 21 e 50 persone" - }, - "osmTags": { - "and": [ - "capacity:persons>=21", - "capacity:persons<=50" - ] - } - }, - { - "question": { - "en": "Capacity between 51 and 100 persons", - "ca": "Capacitat entre 51 i 100 persones", - "cs": "Kapacita mezi 51 a 100 osobami", - "de": "Kapazität zwischen 51 und 100 Personen", - "it": "Capacità tra 51 e 100 persone" - }, - "osmTags": { - "and": [ - "capacity:persons>=51", - "capacity:persons<=100" - ] - } - }, - { - "question": { - "en": "Capacity between 101 and 200 persons", - "ca": "Capacitat entre 101 i 200 persones", - "cs": "Kapacita mezi 101 a 200 osobami", - "de": "Kapazität zwischen 101 und 200 Personen", - "it": "Capacità tra 101 e 200 persone" - }, - "osmTags": { - "and": [ - "capacity:persons>=101", - "capacity:persons<=200" - ] - } - }, - { - "question": { - "en": "Capacity between 201 and 500 persons", - "ca": "Capacitat entre 201 i 500 persones", - "cs": "Kapacita mezi 201 a 500 osobami", - "de": "Kapazität zwischen 201 und 500 Personen", - "it": "Capacità tra 201 e 500 persone" - }, - "osmTags": { - "and": [ - "capacity:persons>=201", - "capacity:persons<=500" - ] - } - }, - { - "question": { - "en": "Capacity over 500 persons", - "ca": "Capacitat per a més de 500 persones", - "cs": "Kapacita více než 500 osob", - "de": "Kapazität über 500 Personen", - "it": "Capacità oltre 500 persone" - }, - "osmTags": "capacity:persons>=501" - }, - { - "question": { - "en": "?", - "ca": "?", - "cs": "?", - "cy": "?", - "de": "?", - "it": "?" - }, - "osmTags": "capacity:persons=" } ] }, diff --git a/assets/themes/scouting/scouting.json b/assets/themes/scouting/scouting.json index fc3772d68..1a23d2c04 100644 --- a/assets/themes/scouting/scouting.json +++ b/assets/themes/scouting/scouting.json @@ -75,7 +75,9 @@ "override": { "id": "group_hostel", "minzoom": 7, - "=filter": null, + "=filter": [ + "campsite.capacity_persons_filter" + ], "name": { "en": "Hostels for groups and scouts", "cs": "Ubytovny pro skupiny a skauty", @@ -116,6 +118,51 @@ "group_only=yes" ] } + ], + "tagRenderings+": [ + "campsite.capacity_persons", + { + "id": "fee", + "question": { + "en": "Is there a fee?", + "cs": "Platí se tu poplatek?", + "da": "Skal der betales et gebyr?", + "de": "Gibt es hier eine Gebühr?", + "it": "C'è un costo?" + }, + "icon": "./assets/layers/questions/cash.svg", + "mappings": [ + { + "if": "fee=no", + "addExtraTags": [ + "charge=" + ], + "then": { + "en": "The group hostel is free of charge" + }, + "icon": "./assets/layers/questions/cash.svg" + }, + { + "if": "fee=yes", + "then": { + "en": "There is a fee.", + "cs": "Platí se tu poplatek.", + "da": "Det koster et gebyr.", + "de": "Es gibt eine Gebühr.", + "it": "C'è un costo." + }, + "icon": "./assets/layers/questions/cash.svg" + } + ], + "condition": { + "and": [ + "charge=" + ] + } + }, + "campsite.charge_person_day", + "campsite.charge_day", + "campsite.charge" ] } },