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

ODK entities for DartRosa: entity forms, entity lists as secondary instances, offline entity updates and storage. A port of Collect's entities module.

dartrosa_entities #

pub package pub points CI License: Apache-2.0

ODK entities for DartRosa: a port of ODK Collect's entities module.

  • Entity forms: entities:create, update and upsert, entities:saveto, entity labels and ids (EntityFormParseProcessor, EntityFormFinalizationProcessor).
  • Local entity lists as secondary instances (jr://file-csv/<list>.csv) with fast predicate filtering (LocalEntitiesInstanceProvider, LocalEntitiesFilterStrategy) and pulldata() over them.
  • Offline entity updates and server reconciliation (LocalEntityUseCases) over an EntitiesRepository you implement on your storage (InMemEntitiesRepository included).
  • withEntities wires everything into a DartRosaConfig; with dartrosa_external_data's ExternalDataPlugin in the config, entity lists answer pulldata() before CSV media, as in Collect.

Install #

dart pub add dartrosa_entities

Example #

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

Future<void> main() async {
  final repository = InMemEntitiesRepository()
    ..save('people', [
      NewEntity('a1', 'Shiv', properties: const [('full_name', 'Shiv Roy')]),
    ]);
  final config = withEntities(
    const DartRosaConfig(),
    entitiesRepository: () => repository,
  );

  final definition = await FormDefinition.parse(entityFormXml, config: config);
  final session = definition.createSession();
  // ... answer questions ...
  if (session.finalize() is FinalizeSuccess) {
    print(formEntities(session)!.entities.map((e) => e.label));
    saveFormEntities(session, repository); // the new person joins 'people'
  }
}

See example/example.dart for the complete program with its form.

Documentation #

License #

Apache License 2.0 (see LICENSE). Ports ODK Collect's entities module (Apache-2.0); see the licensing notes.

0
likes
160
points
385
downloads

Documentation

API reference

Publisher

verified publishersudhi.in

Weekly Downloads

ODK entities for DartRosa: entity forms, entity lists as secondary instances, offline entity updates and storage. A port of Collect's entities module.

Homepage
Repository (GitHub)
View/report issues
Contributing

Topics

#odk #xforms #form #data-collection #offline

License

Apache-2.0 (license)

Dependencies

collection, dartrosa, dartrosa_external_data, meta

More

Packages that depend on dartrosa_entities