Moving across sections

Dear ODK Community,

we have been building an odk-x application and it is being tested now. The questionnaire is a bit complex and has a lot of sections. One problem we are facing is that moving across sections is creating a lot of confusion among testers and we expect this to cause a lot of trouble for surveyors too. Is there a way to move back from the start of a section to the last question of a previous section? Here is a scenario: let’s assume that we have 10 sections and they will be done sequentially from 1 to 10. Now, let’s say we reached the first question of section 5 and wanted to go back to the previous question. At this point, when BACK is pressed, we’ll be presented with a list of sections instead of the last question of section 4. So the question is, is there a way to go directly to the previous question rather than section? Thanks for the help!

Hi @MekAn!

So generally ODK-X Survey is path dependent. It should generally go back to the previous question (https://docs.odk-x.org/survey-using/?highlight=back#navigating-a-form), but it does depend quite a lot on how your form is structured. Are you able to share your form?

Looking at your form, I can see at least one likely issue. As documented in terms of user-defined sections:
https://docs.odk-x.org/xlsx-converter-using/#using-custom-section-worksheets
“after leaving a section, if the user swipes back, the survey will go to the row before the do section call. If the user then swipes forward at this point, the survey will go to the beginning of the section they just completed. It is often beneficial to the user to put a note before entering a section and before leaving a section.”
Looking at your structure, you have sections nested within sections (so not only does the survey sheet have do section XYZ, other spots do as well). That may be why when you go back you end up at the section rather than the previous section. I am not 100% sure this would solve the problem, but it would be easy to try moving all the do sections into the survey sheet so that you are less nested, and it may solve the problem.

1 Like

Thank you so much Caroline.

Nesting is done because a different sequence of key symptoms is needed based on the cause of death selected. When the entire logic is embedded within survey, going back from a section boundary will show all the various sequences of the 20 causes of death (20 causes of death * 18 key symptoms = 360 sections). But, I’ll accept the note recommendation.

Thanks again.

1 Like

How to navigate back has been a topic of lots of discussions and many different people have different opinions on how it should work. If you have logic that moves you to a section, there is no guarantee that the previous section in the form definition is the correct section to go back to. Therefore two approaches are provided 1) within a section you go back to the previous question list before 2) between sections the user navigates to the one they think is the next appropriate. “Goto” statements cannot cross sections. The differences allow for different forms of workflows. If you want a single linear transversal with back going to the previous question you have listed in the form we suggest not using sections.

We have done several studies of how “back” should work and various people have various opinions. Therefore two mechanisms that were popular as a compromise. More work probably needs to be done here. Allowing workflows to go in arbitrary directions creates differences of opinion of what “back” means.

2 Likes

Thank you @W_Brunette. Without sections, it will be very difficult to implement the logic required.

1 Like

The logic problem you are maybe talking about is why consensus has never been reached between various form designers on what is the proper behavior of back going between sections. Within a section there is consensus that it goes to the previous question.

If you have a proposal for future releases feel free to document them as maybe your idea will solve the many concerns than exist. Or maybe a part of the behavior we will find consensus on and it will make it easier for you in the future.

Thank you for being part of our community!

2 Likes

@W_Brunette I think with respect to this, the logic working within a section should be okay. One should expect from BACK 1) to move to the previous question or 2) to move to the last question of the previous section (if we were at the first question of a section). Besides, if one wants to reach into the list of sections, there already is a way (using the left-most button of the Header). Otherwise, giving control to a surveyor during an actual survey might not be a good idea.

**ODK-X is a very good platform, want it to be even better, will add more suggestions on another thread - here are few that came to my mind for now:

  1. When you go back and change the response of a question, all dependent values need to be cleared. Currently, the form retains even after the response to a parent question is changed.
  2. The required field should only take True/ False or Yes/ No only. If conditions upon which questions depend evaluates to FALSE or questions are skipped, values of required fields need to default to FALSE or skipped.
  3. If we have multiple forms, all of them will show up on Survey. This causes a problem when we want to have only one entry point. It will be great if there is an option to set on form parent and only that form shows up on Survey (I am using Tables to avoid the confusion).
  4. Synchronization has 4 options. I tried the “Upload Only” one and it doesn’t work as promised; I ended up downloading the content of the server.
2 Likes

Thanks @MekAn. I think those are very good suggestions - perhaps you could create them on the issue list in the ODK-X project on GitHub? Then they will be discussed and prioritized in our community calls and hopefully make it into a future release of ODK-X :grinning:

2 Likes

Thanks @Emil, issues created on GitHub now.

1 Like