Optional dynamic default

Adding the last-saved/previous value is of great help for many situations but I think it may be even more useful if it was optional.
I see it realised having something like a checkbox on the side of the question that acts like a trigger: if you tick it, it updates using the last-saved/previous value (according to what you defined in the form).

In my experience as a forester, this would allow to select the same species as the one before but letting the user to decide for it. In the logic provided from the dynamic default in repeats , first the field is filled and then the operator keeps or changes it. But unfortunately this may be prone to errors (even more in the late working day) related to the fact that you're prompted to look at the next question and not checking that much the "species" field. On the contrary, using a chekbox, the field is still empty so [if constrained to mandatory, as it should be] the operator is forced to keep attention high recalling or selecting a value.
I simply see it as a safer approach to the same goal reported here.

I'm not a dev so I don't know how to help more than this. I guess an "easy" way for implementation would be to keep the actual logic, adding the "recall checkbox" through something like recall(${field}) under the appearance or parameters column.
Hope this helps and keep up the good work!

1 Like

You could possibly use the "acknowledge" question type that needs to be checked by the user and only appears when the data in the main "species" question remains unchanged from the previous entry.

a relevancy to check for an unchanged answer might look like this:
position(current()/..) - 1]/species = position(current()/..)]/species

please note that i didnt test that relevancy so it might require an intermediate calculate field or some other small adjustment rather than being directly used in a relevancy

This form shows two approaches to meet the desired goal: https://docs.google.com/spreadsheets/d/1eNRsrNdRHG6ckUSQCQjH1FSx7lHrCzYFJN-GeeirxP8/edit#gid=0

The first one is @noel's approach. The second approach flips things around and first asks whether the value matches the last captured one.

Please note that any of these approaches may have unexpected behavior if data collectors go back and change prior values. Make sure to thoroughly verify that this works for your needs before using it for real!

1 Like

great: this clarifies much more. Thanks both for the help!

1 Like