What's the situation on ODK Collect timestamps beyond "start" and "end"?
I've tried various suggestions to get response timing such as a once(now()) calculation only being relevant when the response exists, but these approaches fail, apparently because now() is only evaluated once when filling out a form.
Lognaturel posted in December 2017 about a plan to implement lightweight timestamping -- will that be included in some Collect release in the near future, and perhaps made available in XLSform?
Is there any update on this? This would be a really useful feature - among other things for piloting modules' length, and assessing quality of data collection.
As of Aggregate 1.5, it's also possible to gather and receive a log of enumerator activity as a CSV attachment. See https://github.com/opendatakit/docs/pull/649 for a first pass at documentation. Comments and suggestions appreciated!
The sample form was exactly what was needed - I had tried combining conditional once(now()) before, but didn't get it to work. This is already a workable solution, though a native function would of course be easier to use.
I was hoping to get ISO8601 timestamps matching those generated by "start" and "end" , such as 2018-04-11T14:02:37.495+03
My calculation is therefore if(${name} = '', '', once(format-date-time(now(), "%Y-%m-%eT%H:%M:%S.%3")))
... but the timezone is still missing, however, and format-date-time doesn't recognize the escapes Z or z. This isn't a huge problem, but is there some easy solution?
If there is a need, I support adding %Z to produce '+HH:M0' or '-HH' (or 'Z' perhaps).
For GMT times, do we want to accept any of the (all correct) '+00:00', '-00:00', 'Z', '+00', '-00', or have a more predictable output?
However, in the specific format-date() example, I don't actually understand the issue with once(now()), as it should produce the same, right? (temporary link).