Fix: fix sauna theme

This commit is contained in:
Pieter Vander Vennet 2025-07-03 01:47:22 +02:00
parent 01ac1d0944
commit ccbbba5628
3 changed files with 115 additions and 88 deletions

View file

@ -30,90 +30,79 @@
"images", "images",
"reviews", "reviews",
{ {
"builtin": "toilet_at_amenity.toilet-access", "id": "sauna_access",
"override": { "condition": "leisure!=water_park",
"condition": "leisure!=water_park", "question": {
"question": { "en": "Is this sauna publicly accessible?",
"en": "Is this sauna publicly accessible?", "de": "Ist die Sauna öffentlich zugänglich?"
"de": "Ist die Sauna öffentlich zugänglich?" },
}, "render": {
"render": { "en": "Access is {sauna:access}",
"en": "Access is {sauna:access}", "de": "Zugang ist {sauna:access}"
"de": "Zugang ist {sauna:access}", },
"fr": "{sauna:access}", "freeform": {
"nl": "{sauna:access}", "key": "sauna:access"
"it": "{sauna:access}", },
"es": "{sauna:access}", "mappings": [
"da": "{sauna:access}", {
"ca": "{sauna:access}", "if": "sauna:access=yes",
"cs": "{sauna:access}", "then": {
"sl": "{sauna:access}", "en": "Public access",
"uk": "{sauna:access}" "de": "Der Zugang ist öffentlich",
}, "fr": "Accès publique",
"freeform": { "nl": "Publiek toegankelijk",
"key": "sauna:access" "it": "Accesso pubblico",
}, "ru": "Свободный доступ",
"mappings": [ "es": "Acceso público",
{ "da": "Offentlig adgang",
"if": "sauna:access=yes", "ca": "Accés públic",
"then": { "cs": "Veřejný přístup",
"en": "Public access", "sl": "Javno dostopno"
"de": "Der Zugang ist öffentlich",
"fr": "Accès publique",
"nl": "Publiek toegankelijk",
"it": "Accesso pubblico",
"ru": "Свободный доступ",
"es": "Acceso público",
"da": "Offentlig adgang",
"ca": "Accés públic",
"cs": "Veřejný přístup",
"sl": "Javno dostopno"
}
},
{
"if": "sauna:access=customers",
"then": {
"en": "Only access to customers of the amenity",
"de": "Nur Zugang für Kunden der Einrichtung",
"nl": "Enkel toegankelijk voor klanten van de voorziening",
"fr": "Accessibles uniquement au clients du lieu",
"ca": "Només accessible a clients de l'instal·lació",
"cs": "Přístup pouze zákazníkům zařízení občanské vybavenosti",
"sl": "Samo za stranke lokala",
"es": "Solo acceso para clientes del servicio"
}
},
{
"if": "sauna:access=no",
"then": {
"en": "Not accessible, even for customers of the amenity",
"de": "Nicht zugänglich, auch nicht für Kunden der Einrichtung",
"nl": "Niet toegankelijk, ook niet voor klanten van de voorziening",
"fr": "Non accessibles, même pour les clients du lieu",
"ca": "No accessible, inclús per als clients de la instal·lació",
"cs": "Není přístupný, a to ani pro zákazníky občanské vybavenosti",
"sl": "Ni dostopno niti za stranke lokala",
"es": "Inaccesible, incluso para clientes del servicio"
}
},
{
"if": "sauna:access=public",
"then": {
"en": "Public access",
"de": "Öffentlicher Zugang",
"fr": "Accès publique",
"nl": "Publiek toegankelijk",
"it": "Accesso pubblico",
"ru": "Свободный доступ",
"es": "Acceso público",
"da": "Offentlig adgang",
"ca": "Accés públic",
"cs": "Veřejný přístup"
},
"hideInAnswer": true
} }
] },
} {
"if": "sauna:access=customers",
"then": {
"en": "Only access to customers of the amenity",
"de": "Nur Zugang für Kunden der Einrichtung",
"nl": "Enkel toegankelijk voor klanten van de voorziening",
"fr": "Accessibles uniquement au clients du lieu",
"ca": "Només accessible a clients de l'instal·lació",
"cs": "Přístup pouze zákazníkům zařízení občanské vybavenosti",
"sl": "Samo za stranke lokala",
"es": "Solo acceso para clientes del servicio"
}
},
{
"if": "sauna:access=no",
"then": {
"en": "Not accessible, even for customers of the amenity",
"de": "Nicht zugänglich, auch nicht für Kunden der Einrichtung",
"nl": "Niet toegankelijk, ook niet voor klanten van de voorziening",
"fr": "Non accessibles, même pour les clients du lieu",
"ca": "No accessible, inclús per als clients de la instal·lació",
"cs": "Není přístupný, a to ani pro zákazníky občanské vybavenosti",
"sl": "Ni dostopno niti za stranke lokala",
"es": "Inaccesible, incluso para clientes del servicio"
}
},
{
"if": "sauna:access=public",
"then": {
"en": "Public access",
"de": "Öffentlicher Zugang",
"fr": "Accès publique",
"nl": "Publiek toegankelijk",
"it": "Accesso pubblico",
"ru": "Свободный доступ",
"es": "Acceso público",
"da": "Offentlig adgang",
"ca": "Accés públic",
"cs": "Veřejný přístup"
},
"hideInAnswer": true
}
]
}, },
"contact", "contact",
"fixme" "fixme"

View file

@ -6,8 +6,8 @@
"en": "Sauna" "en": "Sauna"
}, },
"layers": [ "layers": [
"./assets/layers/sauna/sauna.json", "sauna",
"./assets/layers/sauna/sauna_at_leisure.json" "sauna_at_leisure"
], ],
"description": { "description": {
"en": "Sauna" "en": "Sauna"

View file

@ -6,6 +6,7 @@ import {
MappingConfigJson, MappingConfigJson,
QuestionableTagRenderingConfigJson, QuestionableTagRenderingConfigJson,
} from "../Json/QuestionableTagRenderingConfigJson" } from "../Json/QuestionableTagRenderingConfigJson"
import { Utils } from "../../../Utils"
export default class AddPrefixToTagRenderingConfig extends DesugaringStep<QuestionableTagRenderingConfigJson> { export default class AddPrefixToTagRenderingConfig extends DesugaringStep<QuestionableTagRenderingConfigJson> {
private readonly _prefix: string private readonly _prefix: string
@ -18,6 +19,40 @@ export default class AddPrefixToTagRenderingConfig extends DesugaringStep<Questi
this._prefix = prefix this._prefix = prefix
} }
/**
*
* new AddPrefixToTagRenderingConfig("PREFIX").rewriteArguments("Some argument with a {key}") // => "Some argument with a {PREFIX:key}"
*
* // Don't rewrite metatags
* new AddPrefixToTagRenderingConfig("PREFIX").rewriteArguments("Some argument with a {_calculated_key}") // => "Some argument with a {_calculated_key}"
*
*/
private rewriteArguments(txt: string) {
const regex = /(.*?){([^}]*)}(.*)/s
let match = txt.match(regex)
if (!match) {
return txt
}
let result = ""
while (match) {
const [_, normal, key, leftover] = match
if (key.startsWith("_")) {
result += normal + "{" + key + "}"
} else {
result += normal + "{" + this._prefix + ":" + key + "}"
}
match = leftover.match(regex)
if (!match) {
result += leftover
}
}
if(txt !== result){
console.log(">>> Rewritten", txt, "into", result)
}
return result
}
/** /**
* *
* const edit = new AddPrefixToTagRenderingConfig("PREFIX") * const edit = new AddPrefixToTagRenderingConfig("PREFIX")
@ -29,6 +64,9 @@ export default class AddPrefixToTagRenderingConfig extends DesugaringStep<Questi
* *
* // Should prefix the default key in a special visualisation * // Should prefix the default key in a special visualisation
* new AddPrefixToTagRenderingConfig("PREFIX").updateString("{opening_hours_table()}") // => "{opening_hours_table(PREFIX:opening_hours,,)}" * new AddPrefixToTagRenderingConfig("PREFIX").updateString("{opening_hours_table()}") // => "{opening_hours_table(PREFIX:opening_hours,,)}"
*
* // Should prefix links, e.g. for 'phone'
* new AddPrefixToTagRenderingConfig("PREFIX").updateString("{link({phone},tel:{phone},,,,)}") // => "{link({PREFIX:phone},tel:{PREFIX:phone},,,,)}"
*/ */
private updateString(str: string): string { private updateString(str: string): string {
const parsed = SpecialVisualizations.constructSpecification(str) const parsed = SpecialVisualizations.constructSpecification(str)
@ -45,7 +83,7 @@ export default class AddPrefixToTagRenderingConfig extends DesugaringStep<Questi
if (argDoc.type === "key") { if (argDoc.type === "key") {
newArgs.push(this._prefix + ":" + (argV ?? argDoc.defaultValue ?? "")) newArgs.push(this._prefix + ":" + (argV ?? argDoc.defaultValue ?? ""))
} else { } else {
newArgs.push(argV ?? "") newArgs.push(this.rewriteArguments(argV ?? ""))
} }
} }
fixedSpec.push("{" + spec.func.funcName + "(" + newArgs.join(",") + ")}") fixedSpec.push("{" + spec.func.funcName + "(" + newArgs.join(",") + ")}")