Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a "Can't say"/"More answer options" option to every question #279

Open
wielandb opened this issue Jul 11, 2024 · 3 comments
Open

Add a "Can't say"/"More answer options" option to every question #279

wielandb opened this issue Jul 11, 2024 · 3 comments
Labels
feature request New feature request

Comments

@wielandb
Copy link
Contributor

wielandb commented Jul 11, 2024

Idea

Similar to StreetComplete, add a button that is omnipresent to every question form that allows the user to

  • Leave a note
  • Skip the question permanently
  • Give more obscure answer options

The concrete use case for the last option would be for elevator shapes. Most of the elevators of this world are rectangular, but if the user encounters a circular elevator, asking for width/length will produce confusion/wrong results. So the questions for width and length could have "More options" > "It's acually circular", which then would set shape=circular. This way we could avoid tagging 99% of elevators with shape=rectangular.

This would also fix #277

Bug Relation

No response

Implementation

No response

Additional Info

No response

@wielandb wielandb added the feature request New feature request label Jul 11, 2024
@Robbendebiene
Copy link
Member

Robbendebiene commented Jul 11, 2024

Just attaching things from some internal discussions.


Quick idea: Sometimes a different kind of answer applies to a question. This could be done with a 3 dots menu where an alternative answer/action can be selected.

ruff example:

   {
      "question": {...},
      "answer": {
         "type": "Bool",
         "input": [
            {
               "osm_tags": {
                  "wheelchair": "yes"
               }
            },
            {
               "osm_tags": {
                  "wheelchair": "no"
               }
            }
         ]
      },
      "alt_answers": [
        {
           "name": "Elevator has a circular shape",
           "type": "Bool",
           "input": [
              {
                 "osm_tags": {
                    "wheelchair": "yes"
                 }
              },
              {
                 "osm_tags": {
                    "wheelchair": "no"
                 }
              }
           ]
        },
        {
           "name": "No elevator exists anymore",
           "type": "Unanswer/Action",
           "constructor": null,
        }
      ],
      "conditions": [...]
   },

We could also change "answer" to "answers" and expect an array. The first answer would be the main answer displayed to the user.

use cases:

  • question that asks for a name of an element, could have an additional answer to declare an element as nameless by tagging noname=yes
  • sometimes a question cannot be answered (i.a. a tag cannot be set but may be expected) then an additional answer could allow leaving a note by using the note tag as a prefix (e.g. note:name)

@wielandb
Copy link
Contributor Author

wielandb commented Jul 11, 2024

That seems doable, but addresses only the thrid concern.

How big of an implementation effort would Leaving a note (and blocking questions from appearing on an object where a note is present) and skipping a question permanently be/would it be worth it?

@Robbendebiene
Copy link
Member

So when you talk about blocking you want to block a certain question for a certain element right? I'm asking because #277 seems to be about excluding certain questions entirely.

blocking questions from appearing on an object where a note is present

I first thought this this cannot work, but then I realized that one can use note as a sub tag. So if it is allowed to tag note:mytag=* without tagging maytag=* then this would be a nice solution which can even be achieved with the new structure I sketched above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request New feature request
Projects
None yet
Development

No branches or pull requests

2 participants