Save a "draft" of a smart form to easily switch between forms while collecting field data

03-11-2022 09:16 AM
Status: Open
Labels (2)
New Contributor II

Field staff may sometimes be monitoring multiple features or feature types at the same time and, in their current paper-based workflow, have multiple forms on their clipboard that they’ll switch between. Currently within FieldMaps smart forms, you have to "submit" a form to leave it and then start editing again to come back, but this becomes an issue if there are required fields that haven't been filled out yet. It would be helpful to have a "save draft" button next to the "submit" button that essentially pauses data collection for that feature and allows you to either start editing on another feature within the same layer, collect information on a different layer, or switch between maps.

1 Comment

I was about to post this same idea and came across this post.

You are exactly right, now that we can easily add constraints to enforce that fields be completed, submitting a feature and coming back to it is not really an option... it always felt like a workaround anyway.

One way that this might be done, that doesn't modify the root level of the form UI would be to stick "Save Draft" button in the cancel/discard edits popup after hitting "Cancel"

Add "Save Draft" option hereAdd "Save Draft" option here

Also, save the draft to the device as JSON with three sections (attachments, fields/values, and geometry).  This then would work both offline and online.  Attachments section would store a list of paths to the files on the device (and perhaps what it was renamed to).  Any schema changes to the feature service fields would be ignored for missing fields and new fields would be null on import unless they are calculated values. The edit context when "collecting from draft" would be INSERT, but the feature templates would be ignored as the values would have already been picked up from when the draft was created.  Any attachment no longer found on the device would be ignored, geometry would be created from the stored string in the json.

Not sure what the best place would be to stick a "Collect from Draft" button.