ODK Collect is an Android app for filling out forms. It's been used to collect billions of data points in challenging environments around the world. Contribute and make the world a better place! ✨📋✨
Currently, a user can't fill in an entity form while forms are being updated. We should revise this so that the following rules are true:
Form entry is not blocked while downloading forms
Forms and entities are not perceivably updated during form entry
Form/entity updates can be downloaded during form entry - a user does not need to be online to then receive the update after form entry
A form should not be available for form entry without local entities
Manual downloads/updates can't happen at the same time as background ones
Notes
This would mean a fairly substantial shift in how form updates work. Implementation wise, one possibility would be to split what we now call "download" logic into two distinct parts: "download" and "process":
download: new forms and form updates (and their media files) are downloaded
process: downloaded forms are processed - local entities updated, databases/file system updated so that the forms are available
This approach could use a "holding" directory to store new forms/updates that are still to be processed, or it could even work like the automatic form import: forms could be downloaded to forms and then processing could scan for forms not in the DB.
Currently, a user can't fill in an entity form while forms are being updated. We should revise this so that the following rules are true:
Notes
This would mean a fairly substantial shift in how form updates work. Implementation wise, one possibility would be to split what we now call "download" logic into two distinct parts: "download" and "process":
This approach could use a "holding" directory to store new forms/updates that are still to be processed, or it could even work like the automatic form import: forms could be downloaded to
forms
and then processing could scan for forms not in the DB.