akvo / akvo-flow

A data collection and monitoring tool that works anywhere.
http://akvo.org/products/akvoflow/
GNU Affero General Public License v3.0
65 stars 31 forks source link

Enhance skip logic #2861

Closed janagombitova closed 4 years ago

janagombitova commented 6 years ago

Below is a copy of this issue: https://github.com/akvo/akvo-product-design/issues/275 that was focused on expanding the current skip logic to be also based on numerical questions.

Context

Currently when creating your Flow form the user can decide to show a question only if an option (or multiple options) to an option question was selected. We call this making a question dependent on another question. If the option was not selected by the user, the question will not show to her to answer

This type of built in logic is a powerful tool for Salim defining a survey as he can create a long survey with many questions, but target them based on the answers of the respondent. Thus decreasing the amount of asked questions and making sure the questions one must answer are definitely shown to her.

However, adding the rules for showing a question in Flow only based on option questions is not enough. Users want to also only show a question based on other question types, or on multiple conditions. With this initiative, the idea is to expands the current limited Flow's skip logic and add the condition to show/hide questions based on answers to number questions.

In the future, we would like to make it possible to show/hide a question based on multiple conditions. Show/hide an entire group of questions based on answers to one question or based on multiple conditions.

Who

Salim and Petra creating the survey forms. They do not want to overwhelm respondents with too many questions and make sure certain questions are answered. The survey design is quite the process so it needs to be simple for them to understand which question creates what condition, what conditions are possible and how to add them to the survey form.

Why

Problem or idea

Skip logic

Salim decides to add a condition where a question will only show if the following conditions apply. Salim sees the list of questions from which he can define the conditions (option question - currently supported, and number questions - newly added). He selects a question (number) and sees the possible criteria/rules/conditions he can choose from and then defines the number.

Example: Only show question B if answer to question A is larger than 5.

The possible conditions (and commonly used conditions in data collection) are:

Next step

In the implementation on the technical side we should keep in mind that eventually in the future we want our users to be able to combine more than one criteria for the skip logic, show or not show an entire question group based on an answer to a question or to multiple previous questions. For multiple conditions we want to allow to state is all conditions need to be met or if any of the conditions is enough. To conclude we want to eventually grow this functionality but we should do it in a way that it does not become a burden.

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.