It sounds like the underlying need is to have the same enumerator identifier entered for several submissions in a row and then to change it when a new enumerator swaps in, right?
It further sounds like the identifier is important from an informational standpoint but that there's no risk of one of these volunteers deliberately wanting to impersonate another, is that right? I ask because one of the nice things about using the username setting is that it can be set and then locked down with an admin password. But this doesn't sound relevant to your scenario.
If I've gotten all that right, it sounds like just the kind of situation that the "last saved" feature was designed for. The idea is that you could start your form with a username question and set it to default to whatever the last saved form's value was. The first enumerator will see a blank value, then s/he will put in their name, and then next time they open a blank form, that name will be populated. Once they hand the device over to someone else, that person will open a blank form, see the previous enumerator's name, change it to their name, and then every subsequent form they open will start with their name.
Does that sound like what you'd like?
This feature was contributed by an ecosystem member who does not use XLSForm so unfortunately XLSForm support is specified but still pending. You can use it by modifying the XML of your form definition to add the following after </instance>
:
<instance id="last-saved" src="jr://instance/last-saved" />
<setvalue event="odk-instance-first-load" ref="<your question path>" value="instance('last-saved')<your question path>" type="string"/>
For example, if the question's name in XLSForm is username
, find that in the XML and copy the whole value of the ref
to where I put <your question path>
. It will look something like /my-form/username
.
If that doesn't work for you, it would be helpful to understand what about your scenario makes that undesirable.
If you'd rather wait for the XLSForm support, another option would be to have a question that shows the username from settings and asks the current user to confirm whether that is their name. If they say no, it could give them instructions for setting their name in the settings.