dartrosa_collect 0.1.1 copy "dartrosa_collect: ^0.1.1" to clipboard
dartrosa_collect: ^0.1.1 copied to clipboard

ODK Collect form-filling services for DartRosa: audit log, fast external itemsets, last-saved instance and edited-submission finalization.

dartrosa_collect #

pub package pub points CI License: Apache-2.0

ODK Collect's form-filling services for DartRosa, ported from ODK Collect:

  • Audit log (meta/audit with odk:location-*, odk:track-changes, odk:identify-user, odk:track-changes-reasons): FormAudit, AuditEventLogger, AuditEventCsvWriter.
  • Fast external itemsets (itemsets.csv with a select's query attribute): FastExternalItemsetsPlugin.
  • Last-saved instance (jr://instance/last-saved): LastSaved over a LastSavedStore.
  • Edited submissions: EditedFormFinalizationProcessor and InstanceEdit move meta/instanceID to meta/deprecatedID.
  • collectFormConfig wires all of these into a DartRosaConfig the way Collect's FormLoaderTask does.

Storage and platform services are interfaces the app implements; in-memory implementations are included. Pure Dart (no dart:io).

Install #

dart pub add dartrosa_collect

Example #

import 'package:dartrosa/dartrosa.dart';
import 'package:dartrosa_collect/dartrosa_collect.dart';

Future<void> main() async {
  final lastSaved = LastSaved(InMemoryLastSavedStore(), 'visit-v1');
  final config = collectFormConfig(
    media: MapResourceResolver(const {}), // the form's media files
    lastSaved: lastSaved,
  );

  final session = (await FormDefinition.parse(
    xform,
    config: config,
  )).createSession();
  // ... answer questions ...
  final submission = (session.finalize() as FinalizeSuccess).submission;
  await lastSaved.instanceSaved(session); // pre-fills the next instance

  // Editing a finalized submission gives it a new instanceID.
  final edit = (await FormDefinition.parse(
    xform,
    config: config,
  )).createSession(existingInstance: submission.xml);
  const InstanceEdit(editOf: 1).markSession(edit);
  print((edit.finalize() as FinalizeSuccess).submission.xml); // deprecatedID
}

See example/example.dart for the complete program.

Documentation #

License #

Apache License 2.0 (see LICENSE). Ports classes of ODK Collect (Apache-2.0); see the licensing notes.

0
likes
160
points
384
downloads

Documentation

API reference

Publisher

verified publishersudhi.in

Weekly Downloads

ODK Collect form-filling services for DartRosa: audit log, fast external itemsets, last-saved instance and edited-submission finalization.

Homepage
Repository (GitHub)
View/report issues
Contributing

Topics

#odk #xforms #form #data-collection #audit

License

Apache-2.0 (license)

Dependencies

crypto, dartrosa

More

Packages that depend on dartrosa_collect