SCEE
SCEE copied to clipboard
Allow disabling country restrictions
Use case
While many municipalities in Germany decide to not add reference numbers to fire hydrants, some indeed do. The AddFireHydrantRef quest however is never shown in Germany and can't be enabled.
[!NOTE] As a workaround, the
AddGenericRefquest filter can be edited (which results in a "Specify refs" changeset comment).
Proposed Solution
- Add a global setting "Disable country restrictions". This may be too heavy-handed.
- Add a "Disable country restriction" quest setting to the
AddFireHydrantRefquest. - Add a "Disable country restriction" quest setting automatically to all country-restricted quests.
- Allow manually editing country restrictions in the
AddFireHydrantRefquest. - Allow manually editing country restrictions automatically in all country-restricted quests.
I'd favor option 3.
Previous discussions:
- https://github.com/Helium314/SCEE/issues/531#issuecomment-2039566642
- https://github.com/Helium314/SCEE/discussions/618
I don't think letting users override country restrictions is a good idea. Some restrictions do exist because SC(EE) tagging is not wanted by community, e.g. the housenumber quest in Italy.
Some restrictions do exist because SC(EE) tagging is not wanted by community
Okay, so options 1, 3 and 5 are ruled out. But would implementing this specifically for the AddFireHydrantRef quest (and maybe others by request) be considered fine? I.e. options 2 or 4?
Like the surface quest where you can enable generic answers.
But would implementing this specifically for the AddFireHydrantRef quest (and maybe others by request) be considered fine?
That quest in particular would seem fine to me to have override to be enabled in any country.
Also, this being EE, I might also like "generic country limit override" that can be enabled only if Expert mode is turned on, and even then only after showing big fat warning/confirmation screen warning like:
"There are good reasons why certain quests are disabled in certain countries! Before enabling this override, You MUST verify with local community where edits are being made whether it is OK to tag that data in a way that this quest does there; otherwise you risk mapping against established community consensus and have complaints filed against your edits!
Do not enable this override unless you are absolutely sure what you're doing!"
(and if expert mode is being disabled, that override should be turned off automatically too)
I think quest settings would be a simple and safe approach.
Do not enable this override unless you are absolutely sure what you're doing!"
Hmm, I don't trust all users to follow this. A generic override would also be a bit dangerous, e.g. if you want to enable the fire hydrant ref quest, you would also enable the housenumber quest in Italy.
So I would still prefer having this implemented per quest (though it's much more work than a simple on/off switch).
So I would still prefer having this implemented per quest (though it's much more work than a simple on/off switch).
Yes, that would be even better, I agree - but as you note: much more work.
I'd still prefer such per-quest country override to have limitations as outlined above (i.e. only be shown if Expert mode is also on, and to display a warning before overriding the quest country selection limit, etc.)
another quest where overriding country-ban might be useful is AddFireHydrantDiameter, as basically it is sometimes:
- "spammy" (not signed in all country, but only some regions), and sometimes
- "expert knowledge" (sign might differ across the country)
both of which are usually fine in SCEE (e.g. if it was completely new quest not present in SC, it would likely be accepted)
I don't know why I haven't thought about this earlier, but: how about option 1 or 3 (might be much more work though) with an additional per-quest parameter that defines whether country restriction override is allowed? Just requires going through all restricted quests once, that shouldn't take long.
Just requires going through all restricted quests once, that shouldn't take long.
So something like adding override val isCountryRestrictionOverrideEnabled = true to only those quests having enabledInCountries in which user should be able to override country restriction (e.g. because it was only country-disabled because of spamminess and/or expert knowledge requirements)?
That sounds good to me. Using it in combination with 1. Add a global setting "Disable (some) country restrictions" would be good enough for me, and sounds simple enough to implement. Perhaps I might even be able to implement (most of) it...
Using it with 3. Add a "Disable country restriction" quest setting automatically to all country-restricted quests. would definetly be even better (but beyond my coding abilities).
Would you @Helium314 like to do the superior 3. variant, or would you like me to try implementing variant with 1. ?
Implementing 3. would either be some sort of hard-to-discover clickable never shown in country text that opens a setting, or would require "more properly" implemented quest settings, which is much work.
So I think 1. is the way to go. It can still be upgraded later if it turns out to cause problems.
So something like adding override val isCountryRestrictionOverrideEnabled = true to only those quests having enabledInCountries
Or a simple override val enabledInCountries = if (prefs.getBoolean("that override setting", false)) AllCountries else <old code> to all those quests that should optionally be unrestricted.
If interested people (@rusty-snake, @FloEdelmann ...) could take a look at list of country-restricted quests in https://github.com/Helium314/SCEE/pull/786 and suggest which of them user should be able to override (i.e. which are country-blocked due to spamminess or expert knowledge requirements, and not due to community complaints), that would be very helpful.
Currently I'm working on AddFireHydrantDiameter and AddFireHydrantRef