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",
"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"
}
]
},
{
"id": "self_checkout",
"options": [
{
"question": {
"en": "Has self-checkout",
"nl": "Heeft zelfscan"
},
"osmTags": {
"or": [
"self_checkout=yes",
"self_checkout=only"
]
}
}
]
}
],
"allowMove": false
}
}

View file

@ -3562,6 +3562,81 @@
"filter": [
"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,

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",
"toilet_at_amenity_lib.all"
],
@ -1738,4 +1760,4 @@
]
},
"allowMove": true
}
}

View file

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

View file

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

View file

@ -5841,6 +5841,13 @@
}
}
},
"22": {
"options": {
"0": {
"question": "Has self-checkout"
}
}
},
"3": {
"options": {
"0": {
@ -9978,6 +9985,32 @@
},
"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": {
"mappings": {
"0": {

View file

@ -5519,6 +5519,13 @@
}
}
},
"22": {
"options": {
"0": {
"question": "Heeft zelfscan"
}
}
},
"5": {
"options": {
"0": {
@ -8655,6 +8662,32 @@
},
"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": {
"mappings": {
"0": {

View file

@ -30,17 +30,20 @@
}
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>
{#if url}
<a
href={url.replace("$1", $tags[key])}
target="_blank"
rel="noopener noreferrer"
class="tag-link"
>
{$tags[key]}
</a>
{#if url && values.length > 0}
{#each values as value, index}
<span class="tag-link">
{#if index > 0}; {/if}
<a href={url.replace("$1", value)} target="_blank" rel="noopener noreferrer" class="tag-link">
{value}
</a>
</span>
{/each}
{:else}
{$tags[key]}
{/if}