Merge branch 'develop' of source.mapcomplete.org:MapComplete/MapComplete into develop

This commit is contained in:
Pieter Vander Vennet 2025-08-20 01:10:26 +02:00
commit c71036d6c6
10 changed files with 206 additions and 15 deletions

View file

@ -60,5 +60,10 @@
"type": "Gitea", "type": "Gitea",
"name": "MapComplete Forgejo" "name": "MapComplete Forgejo"
} }
] ],
"explorer.fileNesting.enabled": true,
"explorer.fileNesting.patterns": {
"*": "${capture}.license"
},
"explorer.fileNesting.expand": false
} }

View file

@ -692,4 +692,4 @@
} }
} }
] ]
} }

View file

@ -554,7 +554,24 @@
"osmTags": "kids_area!=no" "osmTags": "kids_area!=no"
} }
] ]
},
{
"id": "self_checkout",
"options": [
{
"question": {
"en": "Has self-checkout",
"nl": "Heeft zelfscan"
},
"osmTags": {
"or": [
"self_checkout=yes",
"self_checkout=only"
]
}
}
]
} }
], ],
"allowMove": false "allowMove": false
} }

View file

@ -3562,6 +3562,81 @@
"filter": [ "filter": [
"filters.kids_area" "filters.kids_area"
] ]
},
{
"id": "self_checkout",
"labels": [
"self_checkout_questions"
],
"question": {
"en": "Does this place offer self-checkout?",
"nl": "Biedt deze plaats zelfscannen aan?"
},
"questionHint": {
"en": "e.g. handheld scanners or a self-checkout kiosk",
"nl": "bijv. handscanners of een zelfscankassa"
},
"mappings": [
{
"if": "self_checkout=yes",
"then": {
"en": "This place offers self-checkout",
"nl": "Deze plaats biedt zelfscannen aan"
}
},
{
"if": "self_checkout=no",
"then": {
"en": "This place does not offer self-checkout",
"nl": "Deze plaats biedt geen zelfscannen aan"
}
},
{
"if": "self_checkout=only",
"then": {
"en": "This place <b>only</b> offers self-checkout",
"nl": "Deze plaats biedt <b>enkel</b> zelfscannen aan"
}
}
],
"filter": [
"filters.self_checkout"
]
},
{
"id": "self_checkout_type",
"labels": [
"self_checkout_questions"
],
"question": {
"en": "What kind of self-checkout does this place offer?",
"nl": "Wat voor soort zelfscannen biedt deze plaats aan?"
},
"mappings": [
{
"if": "self_checkout:handheld=yes",
"ifnot": "self_checkout:handheld=no",
"then": {
"en": "This place offers self-checkout using a handheld scanner",
"nl": "Deze plaats biedt zelfscannen met een handscanner aan"
}
},
{
"if": "self_checkout:self_scan=yes",
"ifnot": "self_checkout:self_scan=no",
"then": {
"en": "This place offers self-checkout using a self-checkout kiosk",
"nl": "Deze plaats biedt zelfscannen met een zelfscankassa aan"
}
}
],
"condition": {
"or": [
"self_checkout=yes",
"self_checkout=only"
]
},
"multiAnswer": true
} }
], ],
"allowMove": false, "allowMove": false,

View file

@ -1665,6 +1665,28 @@
} }
} }
}, },
{
"builtin": "self_checkout",
"override": {
"+mappings": [
{
"if": {
"and": [
"self_checkout=",
"shop!=supermarket",
"shop!=convenience",
"shop!=chemist"
]
},
"then": {
"en": "This shop (probably) does not offer self-checkout"
},
"hideInAnswer": true
}
]
}
},
"self_checkout_type",
"description", "description",
"toilet_at_amenity_lib.all" "toilet_at_amenity_lib.all"
], ],
@ -1738,4 +1760,4 @@
] ]
}, },
"allowMove": true "allowMove": true
} }

View file

@ -65,7 +65,10 @@
"parking_spaces", "parking_spaces",
"parking_ticket_machine", "parking_ticket_machine",
{ {
"builtin": "charging_station", "builtin": [
"charging_station",
"charge_point"
],
"override": { "override": {
"minzoom": 18 "minzoom": 18
} }

View file

@ -49,7 +49,7 @@
"render": { "render": {
"special": { "special": {
"type": "import_button", "type": "import_button",
"targetLayer": "transit_stops", "targetLayer": "all_transit_stops",
"tags": "_tags", "tags": "_tags",
"text": { "text": {
"en": "Add this stop" "en": "Add this stop"

View file

@ -5841,6 +5841,13 @@
} }
} }
}, },
"22": {
"options": {
"0": {
"question": "Has self-checkout"
}
}
},
"3": { "3": {
"options": { "options": {
"0": { "0": {
@ -9978,6 +9985,32 @@
}, },
"question": "What kind of seating does {title()} have?" "question": "What kind of seating does {title()} have?"
}, },
"self_checkout": {
"mappings": {
"0": {
"then": "This place offers self-checkout"
},
"1": {
"then": "This place does not offer self-checkout"
},
"2": {
"then": "This place <b>only</b> offers self-checkout"
}
},
"question": "Does this place offer self-checkout?",
"questionHint": "e.g. handheld scanners or a self-checkout kiosk"
},
"self_checkout_type": {
"mappings": {
"0": {
"then": "This place offers self-checkout using a handheld scanner"
},
"1": {
"then": "This place offers self-checkout using a self-checkout kiosk"
}
},
"question": "What kind of self-checkout does this place offer?"
},
"service:electricity": { "service:electricity": {
"mappings": { "mappings": {
"0": { "0": {

View file

@ -5519,6 +5519,13 @@
} }
} }
}, },
"22": {
"options": {
"0": {
"question": "Heeft zelfscan"
}
}
},
"5": { "5": {
"options": { "options": {
"0": { "0": {
@ -8655,6 +8662,32 @@
}, },
"question": "Wat voor zitplaatsen heeft {title()}?" "question": "Wat voor zitplaatsen heeft {title()}?"
}, },
"self_checkout": {
"mappings": {
"0": {
"then": "Deze plaats biedt zelfscannen aan"
},
"1": {
"then": "Deze plaats biedt geen zelfscannen aan"
},
"2": {
"then": "Deze plaats biedt <b>enkel</b> zelfscannen aan"
}
},
"question": "Biedt deze plaats zelfscannen aan?",
"questionHint": "bijv. handscanners of een zelfscankassa"
},
"self_checkout_type": {
"mappings": {
"0": {
"then": "Deze plaats biedt zelfscannen met een handscanner aan"
},
"1": {
"then": "Deze plaats biedt zelfscannen met een zelfscankassa aan"
}
},
"question": "Wat voor soort zelfscannen biedt deze plaats aan?"
},
"service:electricity": { "service:electricity": {
"mappings": { "mappings": {
"0": { "0": {

View file

@ -30,17 +30,20 @@
} }
const url = tag2linkData.find((item) => item.key === `Key:${key}`)?.url const url = tag2linkData.find((item) => item.key === `Key:${key}`)?.url
const values: string[] =
typeof $tags[key] === "string" ? $tags[key].split(";").map((v: string) => v.trim()) : []
</script> </script>
{#if url} {#if url && values.length > 0}
<a {#each values as value, index}
href={url.replace("$1", $tags[key])} <span class="tag-link">
target="_blank" {#if index > 0}; {/if}
rel="noopener noreferrer" <a href={url.replace("$1", value)} target="_blank" rel="noopener noreferrer" class="tag-link">
class="tag-link" {value}
> </a>
{$tags[key]} </span>
</a> {/each}
{:else} {:else}
{$tags[key]} {$tags[key]}
{/if} {/if}