Skip to content

ODK X Tool Suite Release Notes

wbrunette edited this page Jan 16, 2022 · 23 revisions

Introduction

The ODK-X tools share common libraries. This attempts to describe all the changes, by revision, across the various tools.

Change Log

2.1.10

Revision: 246
Full Release Date: January 9, 2022

Changes

  • Downgrade handlebars library previous upgrade (v4.7.7 -> v4.2.2) to fix select_one and other possible issues

2.1.9

Revision: 244
Full Release Date: December 16, 2021
Preview Release Date: October 19, 2021

NOTE: Make sure you use Services 2.1.9 with Sync-Endpoint 2.1.9 as the protocol was updated with fixes.

Changes

  • Remove dependency on OI File Manager
  • Drop support for Android 4.4.4. Minimum Android version is 5.0
  • Upgrade JavaScript libraries
  • Upgrade Android java dependency libraries and remove multi-dex support
  • Add new Calendar Date Prompts for Survey (GSoC)
  • Revised Suitcase User-Interface (GSoC)
  • Fix sync protocol so it detects if server has a new table (after a server reset) to prevent old data and new data syncing
  • Sync speed improvements

Fixes

2.1.8

Revision: 242
Full Release Date: April 27, 2021
Preview Release Date: April 11, 2021

Changes

  • Android apps updated to target API 29 to avoid file scoped permission issues
  • Upgraded dependency libraries to incorporate security and bug fixes
  • UI Improvements for Suitcase
  • Improve Services Android Lifecycle issues

Fixes

2.1.7

Revision: 240
Release Date: December 29, 2020

Changes

  • Add new date types ‘birth_date’ and ‘date_no_time’ prompt types that do NOT automatically adjust to the time zones. NOTE: All other datetime types adjust to time zones.
  • Improved Sync-Endpoint script to make setup simpler
  • Add ability to customize LDAP administrator password during Sync-Endpoint setup
  • Android apps updated to target API 30
  • Upgraded libraries to incorporate security and bug fixes
  • Switch from Fabric.io Crashlytics libraries to Firebase Crashlytics libraries
  • Reformat some of the existing datetime formats to: “YYYY/MM/DD”

2.1.6

Revision: 238
Release Date: December 20, 2019

Changes

  • Update Spanish translations in all tools
  • Update build libraries and plugins
  • Update node.js dependencies in Application-Designer
  • Remove current date as the default for the birthdate prompt in Application-Designer

Fixes

  • #60 Auto load user defined home screen in tables after sync

2.1.5

Revision: 236
Release Date: October 7, 2019

Changes

  • ALPHA release of Notify (Desktop Application and Mobile Application)
  • Upgrade to Gradle 5.4.1 and Android Plugin 3.5.1
  • Upgraded AndroidX libraries
  • Improve Android 9 compatibility
  • Fix logging in Survey
  • Fix dialog manager
  • Update NGINX version for sync-endpoint-default-setup

Fixes

  • #103 app-designer tabs are not viewable if window width is too small
  • #113 select_one_integer does not re-render when the value has been modified
  • #114 Failure to Authenticate in Services 2.1.4

2.1.4

Revision: 234
Release Date: August 5, 2019

Changes

  • Upgraded Android tools to use Gradle 5
  • Switched from AppCompat to AndroidX libraries
  • Set useCleartextTraffic to true in Android tools
  • Updated Spanish translations in Android tools
  • Updated Handlebars, Backbone, RequireJS, and jQuery libraries and removed Chai library in App-Designer
  • Added birthday prompt to App-Designer
  • Fixed Next and Back button style in App-Designer
  • Updated js-xlsx library to 0.14.1 in App-Designer
  • Added functionality to allow user to specify which port to use for App-Designer

Fixes

  • #64 Unable to save as complete if _savepoint_timestamp is in the future.
  • #98 Provide an Application Designer zip package without example tables/forms and other non-essential files.

2.1.3

Revision: 232
Release Date: May 31, 2019

Changes

  • Alpha release of Submit
    • Including improved user interactions for WiFi Direct data syncing
  • Added swipe to Survey
  • Added QR Code Generator to App-Designer
  • Added support for selecting images with content URIs
  • Changed tool names from ODK to ODK-X

Fixes

  • #61 Tables crashes when deleting a row from Spreadsheet view
  • #100 Replace "quota message" with errors number

2.1.2

Revision: 230
Release Date: March 22, 2019

Changes

  • Fix uri parsing of files for Tables CSV import functionality
  • Fix acknowledge prompt type text
  • Convert to 2 character language codes
  • Fix text overflow in select prompt type
  • Upgrade Android Gradle plugin and various libraries

2.1.1

Revision: 228
Release Date: January 14, 2019

Changes

  • Upgraded Android Gradle plugin and various support libraries
  • Updated Spanish translations
  • Fixed Sensors framework and Zebra Printer Driver
  • Fixed Tables MapListViewFragment to update the list when a marker is clicked on the map
  • Disable scrolling of ODK Survey navbar
  • Fix text overflow in ODK Survey select prompts

Fixes

  • #1410 Survey form name overflow

2.1.0

Revision: 226
Release Date: Sept 6, 2018

BREAKING CHANGES!!

  • Fragments, Activities, Dialogs, and Preferences have been converted to use support libraries
  • Added support in for Submit and renamed all RPCs to follow Android naming convention

Changes

  • Updated target and compile SDK to 26 and 28 respectively
  • Upgraded Android Gradle plugin and various support libraries
  • Added in Spanish translations for all tools
  • Added in notification channels for Services
  • Prevented security exception regarding attachment path by using a FileProvider

Fixes

  • #1405 grunt adbpush fails on Android 8 devices

2.0.5

Revision: 224
Release Date: May 17, 2018

Changes

  • Upgraded Android Gradle plugin and various support libraries
  • Major refactor to enforce types for data rows (creation of TypedRow class)
  • Replaced writer for CSV output in Suitcase

Fixes

  • #1393 Survey Acknowledge type can cause database inconsistencies @wbrunette

2.0.4

Revision: 222
Release Date: April 2, 2018

Changes

  • Upgraded Android Gradle plugin to 3.1.0 and Gradle wrapper to 4.4
  • #1370 Add sorting feature for available form list @SatyamBansal
  • #1372 Launch server settings if first launch @lakshyagupta21
  • #1373 Configure Services's Server Setting with a Barcode @laddha-adi
  • #1374 Increased text size of "Select the form to open" from 14sp to 21sp @laddha-adi
  • #1377 Options for Tables table ordering @himanshusagar

Fixes

  • Stability improvements for Progress and Alert Dialogs
  • #1376 Stop menu items from overflowing and becoming hidden @lakshyagupta21
  • #1384 Crash fix for opening browser when no browser is installed @lakshyagupta21
Closed Issues
  • #1370 Add sorting feature for available form list @SatyamBansal
  • #1372 Launch server settings if first launch @lakshyagupta21
  • #1373 Configure Services's Server Setting with a Barcode @laddha-adi
  • #1374 Increased text size of "Select the form to open" from 14sp to 21sp @laddha-adi
  • #1376 Stop menu items from overflowing and becoming hidden @lakshyagupta21
  • #1377 Options for Tables table ordering @himanshusagar
  • #1384 Crash fix for opening browser when no browser is installed @lakshyagupta21

2.0.3 rev220 (February 2018)

Changes

  • Re-architect the Progress and Alert Dialogs
  • Improve Survey load speed for dropdowns
  • Allow Digest Auth in Sync Client
  • Display row permission filter in Sync Endpoint Web UI
  • Various UI and other improvements

Fixes Issues

  • #1381 Export CSV in Tables crashes when there is no table
  • #1368 Master branch in 218 doesn't compile without local libraries
  • #1367 app-designer pushing to incorrect folder
  • #1364 ODK Survey forms not appearing when pushed from App Designer via USB
  • #1363 Months in datetime combo picker are English only
  • #1351 Sync notification doesn't launch Services
  • #1329 Services no longer supports gmail account using Aggregate 1.4.15
  • #1327 Sync sometimes backs you out when finishing or failing its sync process

2.0.2 rev219 (December 2017)

  • PATCH: Fixed issue with Survey webkit not being reloaded properly after coming back from an intent caused by latest Android webkit update
  • Requires ODK Sync Endpoints or ODK Aggregate 1.4.15 (with reduced functionality)

2.0.2 rev218 (December 2017)

  • Requires ODK Sync Endpoints or ODK Aggregate 1.4.15 (with reduced functionality)
  • Upgraded all projects to use latest gradle plugin and to compile with Oreo
  • Reduced tool initialization time by only running initialization common to all tools when necessary
  • Fixed Scan crash related to file system permission
  • Other bug fixes

2.0.1 rev216 (November 2017)

  • Requires ODK Sync Endpoints or ODK Aggregate 1.4.15 (with reduced functionality)
  • Navigate widget added into Tables
  • Local tables functionality added into JavaScript API
  • Bug fixes

2.0.0 rev214 (September 2017)

  • Requires ODK Sync Endpoints or ODK Aggregate 1.4.15 (with reduced functionality)
  • Arbitrary query options have been added alongside the structured queries for most of the odkTables.js APIs.
  • Suitcase will now fill in the savepoint_* and _locale columns on upload if you leave them blank.
  • Suitcase no longer requires a specific column order.
  • Expanded the sync-endpoints default max file upload size from 1MB to 32MB.
  • The ODK Sync Endpoint Web UI reduced its footprint by switching to the jre-slim base image.
  • Public preview of an early experimental alpha version of ODK Deploy (an Application Designer replacement)

rev 212RC2 (September 2017)

  • Requires ODK Aggregate 1.4.15 or Sync-endpoint.
  • Sync-endpoint configuration has been moved from UI to a file.
  • Benetech Hamsterball UI has been ported to the Sync-endpoint.
  • Android runtime permissions have been updated to support 6.0 and higher.
  • Fixed bug in split screen functionality.
  • Removed deprecated portions of App-Designer.
  • Added crash tracking and analytics.
  • Fixed bug with FormProvider not showing the correct forms after Sync.

rev 210RC1 (July 2017)

  • Requires ODK Aggregate 1.4.15 or Sync-endpoint
  • Added split screen functionality into Tables to allow users to see a detail and a list view on the same screen.
  • Improved Survey speed while entering data on a form.
  • Updated data filtering model to be more user friendly (user viewing permissions on the Android device).
  • Support for groups added to allow higher level of granularity for data filtering.
  • Sync-endpoint replaces ODK Aggregate as the server.
  • New datetime widget added to Survey.
  • User defined translations support added into Survey and Tables.
  • Status from intents can be retrieved within the Tables JavaScript.

rev 208a (October 2016)

Alpha

  • Requires ODK Aggregate 1.4.12.
  • rework database service internals to minimize garbage and improve performance.
  • rework sync service internals to load and process smaller portions of data tables during the sync interactions (to improve performance and reduce memory usage).
  • move server-row-change logic into database service from sync service. Add database API tests for this functionality.
  • add caching for table metadata to improve performance.
  • create a new "permanent" top-level directory that is not touched by ODK tools but can hold content that is vended by the webserver.
  • signature widget has been ported from the ODK Collect codebase.
  • fix Mac address gives bogus device identifier on Android 6.
  • fix webserver behavior that caused webkit to intermittently show a white screen.
  • many packages and APIs renamed and refactored across projects.

rev 206 (August 2016)

Alpha

  • Requires ODK Aggregate 1.4.12.
  • fix select-multiple and complex data types did not always enforce required setting
  • fix support geopoint capture in web pages (vs. via ODK 2.0 widgets).
  • fix subtle bugs affecting workflows involving pushes of new configuration to the device and resetting of the app server from the device.
  • ODK Survey: only update fields that have changed; not simply those that have been touched.
  • row-creation and row-level access filters. This is not secure in that all data rows are sent to the device. The filters do control visibility and modifiability using our tools, but do not prevent malicious users from tampering with data.
  • rework database service AIDL to unify query mechanisms (pushing distinctions to client-side stub layer) and add limit and offset support on queries.
  • propagate exceptions across database service AIDL.
  • bind args is now an Object array, fixing a subtle casting-to-string error in where clauses.
  • clean up app-designer example forms and fix numerous subtle errors in them.
  • fix bugs and add numerous tests for elementType syntax.
  • fix mismatch between Java-generated data table models and those produced by XLSXConverter.
  • plumb new access filter functionality through the JS layer. Provide a rowlevelaccessdemo in app-designer demonstrating that functionality.
  • fix issues that had prevented automated ODK Tables UI tests from running (build system).
  • update Gradle and Android Studio build environment

Upgrade Steps

  • the Javascript query APIs have two additional arguments for limit and offset. Pass null to these to retain current behavior.

rev 204 (June 2016)

Alpha

  • KNOWN BUG: media files for table-specific configuration files under the config/assets/csv folder are not sync'd up/down from the server. This requires a code change in ODK Aggregate.
  • KNOWN BUG: Syncing rows that contain more than one media file attachment can cause database corruption (most likely) on App Engine systems. The failure rate is < 1% for these records. This requires a code change in ODK Aggregate. In our test data set of ~450 rows with 30-60 attachments on each row, we have seen ~6 rows with data corruption.
  • KNOWN BUG: Occasionally, if ODK Survey has not yet been started, and needs to run the initialization logic, it can forget what form it was attempting to open and instead display the "default form" with a message about specifying a form_path in the URL. The work-around is to back out of ODK Survey and re-launch it.
  • KNOWN BUG: If the anonymousUser has Synchronize Tables permissions, you cannot Reset App Server using an appropriately-privileged username or Google account. You must revoke Synchronize Tables permissions from the anonymousUser prior to the reset (and then restore them afterward).
  • SCHEMA CHANGE: The data tables in the various example apps within the tablesdemo have had schema changes. These data tables now have ODK Survey forms defined on them so you can now, for example, create your own Tea house or add a Tea type.
  • Rewrite the UI and the internals of ODK Services synchronization logic to improve error reporting and to provide progress and outcome dialogs during a sync.
  • Fix bug that caused file manifests to always be requested during sync, rather than optimizing those fetch requests.
  • Fix bug that prevented deletes of data records from taking effect on the server.
  • Fix bug causing the table-level sync status to be updated after it had already been placed into a failure state.
  • Fix bug that caused row-level file attachments to sometimes not be sync'd if alternative sync settings (Upload Attachments Only, Download Attachments Only, Do Not Sync Attachments) were used - in particular, when switching among these and the default Fully Sync Attachments setting.
  • Fix bug affecting database service connection establishment / loss detection, and the notification of all such changes to the currently-active Activity and View.
  • Fix bug affecting ODK Survey sub-forms. These now properly refresh the parent form when returning from the sub-form.
  • Fix font size scaling issue that caused HTML text to be tiny on higher-resolution tablets. This affected both ODK Tables and ODK Survey (scaling of text on non-HTML Menus and Dialogs has not yet been implemented).
  • ODK Survey now acts similarly to ODK Tables when Settings / Reset Configuration is chosen.
  • Fix ODK Survey Contents-menu bug.
  • General update of icons and clean-up of drawable resources included in APKs.
  • Add test documentation and working UI Tests to ODK Tables.
  • Integrate ODK Scan form designer into the App Designer (preliminary to first Alpha release of ODK Scan).

rev 202 (May 2016)

Alpha

  • Known Issue: ODK Survey when returning from sub-form (e.g., linked table), has a problem restoring to the parent form. The work-around is to check the keep-only-one-activity checkbox under the system settings' developer options.
  • Known Issue: when uploading data records with large numbers of attachments on each data row (e.g., ODK Scan datasets), there is a < 1% chance of data corruption of the attachment manifest on the server. This is an issue with ODK Aggregate 1.4.10. When 1.4.11 is released, please upgrade to that version.
  • all tools: fix 1MB database fetch limitation that prevented large datasets from being manipulated.
  • all tools: consolidate server and device settings into common settings dialogs
  • all tools: implement "reset configuration" action on settings screen to trigger tools to re-initialize (not yet fully implemented across all tools)
  • Sync: support ODK Aggregate username / password for authentication in addition to Google accounts.
  • Sync: rework UI: if you close then return to the Sync UI, it will re-discover the already-running sync and provide detailed reporting of its progress.
  • Sync: rework implementation to use adapted Apache 4.5.2 HttpClient and eliminate dependency on deprecated built-in Apache libraries and previously-used Wink library.
  • Survey: remove legacy ODK 1.x form download and form upload functionality.

rev 200 (March 2016)

Reset to Alpha

  • Known Issue: ODK Survey when returning from sub-form (e.g., linked table), has a problem restoring to the parent form. The work-around is to check the keep-only-one-activity checkbox under the system settings' developer options.
  • all tools: new ODK Services APK handles all database access, hosts content providers, and serves web pages to our webkits.
  • all tools: instance file attachments are now instance-relative ("rowPath") paths; they were app-relative.
  • all tools: restructure directories into config, data, output, system.
    • config is sync'd / shared config.
    • data holds database and instance file attachments. sync'd into data and instance-attachment tables.
    • output holds logging archives and csv and copies of attachments when exporting to CSV.
    • system is maintained by the individual APKs and holds non-user-modifiable files.
  • all tools: use 'default' for the application name (/sdcard/opendatakit/default) vs. the older tool-specific names.
  • all tools: update Google Play Services to a version circa Android 4.1
  • Services: use custom SQLite database implementation.
  • Survey/Tables: restructure to use the odkCommon and odkData injected objects in Javascript layers. Restructure to share a common Android View and to process database requests with a common abstraction.
  • Tables: database interactions are now asynchronous (were synchronous; blocking UI).
  • Tables: remove graph view functionality. This is now considered a special case of list views. I.e., create a list view HTML page and create your graphs directly with a Javascript graph library (e.g., d3). The now-removed graph view functionality provided a heavy-handed, cumbersome, mechanism for creating limited-capability graphs of datasets, with the graph parameters stored in the properties.csv file. Directly using d3 yields a much more flexible, more powerful, simpler, presentation of information.
  • Tables: remove add-point-on-map functionality (pending bug fix).
  • Tables: remove the functionality to launch ODK Collect from ODK Tables.
  • Tables: limit color rule functionality (the ability to define color rules will reappear in app designer)
  • Tables: fix csv export/import bug that was preventing handling of commas within text fields.
  • Sync: bulk-upload of attachments (requires ODK Aggregate 1.4.9 or higher)
  • deprecate APK: the old ODK Sync functionality is now embedded within ODK Services. ODK Sync APK no longer exists.
  • all tools: migrate to Github and restructure for Android Studio

rev 128 (May 2015)

Sync Alpha-2 ONLY

  • fix for incorrectly handling gzip data

rev 127 (April 2015)

Sync Alpha-2 ONLY

  • corrections to conflict resolution activity "take server changes"

rev 126 (February 2015)

Survey Beta-4

Tables Alpha-4

Sync Alpha-2

ApplicationDesigner Alpha-3

(AndroidCommon)

  • change to new sync protocol using hacked-down wink client
  • move ElementType and ElementDataType into REST API jar
  • add functionality to assist in mock unit testing (StaticStateManipulator)

(Survey)

  • misc. bug fixes.
  • updated javascript libraries
  • updates for rowpath

(Tables)

  • updated javascript libraries
  • use WebLogger instead of standard logger
  • updates for rowpath
  • add functionality to assist in mocked unit testing

(Sync)

  • requires ODK Aggregate 1.4.5
  • use wink client libraries
  • use rowpath for file attachments and optimize sync protocol.
  • optimize for efficient compressed protocol with NOT_MODIFIED returns

(ApplicationDesigner / SurveyJS )

  • changes to support rowpath
  • writes definition.csv and properties.csv when formId equals tableId
  • eliminate need for Mac JS execution environment (use node instead)
  • updates to numerous demos
  • prototype SMS integration (needs APKs that are not yet public)

rev 124 (October post release)

(AndroidCommon)

  • unified database layer

(Survey)

  • updated javascript libraries

(Tables)

  • unified database layer
  • remove many files (moved into androidCommon)

(Sync)

  • requires ODK Aggregate 1.4.4
  • only works when syncing to AppEngine (not local Tomcat server)
  • update sync protocol
  • move some database functionality into common database layer.

(ApplicationDesigner / SurveyJS )

  • fixes for incorrect SQL filter conditions
  • updates to agriculture demo form
  • misc. display bug fixes

rev 122 (August 2014)

Survey Beta-3

Tables Alpha-3

Sync Alpha-1

ApplicationDesigner Alpha-2

(AndroidCommon)

  • add androidcommontest project (push directories down)
  • add sync AIDL (and wire it up)
  • support for 4.4.2 media provider changes
  • remove directory change watchers
  • remove Sherlock dependency
  • add About... menu (and licensing info display)

(Survey)

  • extract framework and assets files from embedded zip
  • use dbShim for all database interactions
  • legacy "form download" operates at the tableId level, not formId
  • change to publish to a tableId
  • change to support multiple revisions to the same instanceId when publishing to legacy pathway

(Tables)

  • add tablestest project (push directories down)
  • update 3rd party jar versions
  • restructure to isolate sync and database classes into their own package trees
  • remove SMS and Submit functionality
  • remove Java-layer graphing and calendering activites
  • revise CSV import to use standard one from ODK Aggregate REST api
  • extract framework and assets from embedded zip
  • numerous UI display changes
  • sync is now done by Sync APK

(Sync)

  • first release
  • requires ODK Aggregate 1.4.4

(ApplicationDesigner / SurveyJS )

  • add "Save to FileSystem" button in XLSXConverter
  • restore graph javascript (Tables)
  • fix various demo files
  • add color treatments to prompt types
  • add Ajax data queries
  • change to use database shim (dbShim) and eliminate W3Sql use in WebKit
  • zero-length strings are treated as nulls
  • adding ODK Scan demo files
  • adding Jane Goodall Institute Chimp-tracking "user-as-sensor" Tables app.

rev 120 (March 2014)

Survey Beta-2

Tables Alpha-2

ApplicationDesigner Alpha-1

(AndroidCommon)

  • switch to use /sdcard/opendatakit
  • add local webserver (moving away from using a file content provider)
  • update sync protocol.

(Survey)

  • change to use local webserver (moving away from using a file content provider to vend WebKit content)
  • change to use survey.properties to store General and Admin settings

(Tables)

  • split conflict resolution activity into list- and row- levels
  • add edit/add via Collect/Survey to Control (from Tables) Javascript API
  • significant restructuring of data-model-related classes.

(ApplicationDesigner / SurveyJS )

  • rework to use grunt and node for ApplicationDesigner environment

rev 116 (December 2013)

Survey Beta-1

  • initial release
  • new XLSX syntax
  • new device directory structure ( now under .../opendatakit/survey )
  • linked tables (subforms)
  • selects from linked tables, external csv files and web queries

Usage

After downloading and installing, choose the 'down arrow' icon to access the Form Download screen. On that screen, select the following forms to download:

  • Common Javascript Framework
  • whatever other forms you want to try out

After downloading the forms, return to the form chooser screen by choosing the 'open folder' icon. On that screen, select the form to open.

The Common Javascript Framework form does not appear on this list because it is the underlying set of HTML, CSS and javascript libraries that process and render the form definitions. It appears as a form for downloading because it is separately upgradable from the Java code and because of the way the ODK Aggregate legacy integration works.

The application has been tested on Android 4.1 and higher devices. While it does work on 4.0 and earlier devices, not all features may function on those devices. On the original 2.2.3 Droid, the first load of the form will leave you with a white screen while the system reads and interprets the javascript framework files. This can take minutes.

rev 105

  • fix bugs causing downloads of forms to fail.

rev 103

  • you will need to delete the /odk/js directory and all forms.
  • this monitors and scans all folders under /odk for changes to the /odk/xxx/forms and /odk/xxx/framework directories. These are considered to be potential locations for ODK Survey apps.
  • ODK Survey can launch with different app names. These are directories under /odk/. Once named, and app cannot be renamed to a different app (data collection breaks).
  • database structures have changed.
  • various bug fixes, including back button retention on orientation changes.
  • forms on opendatakit-2 must be re-pulled (they have changed).

rev 100

  • initial release.

ODK Survey Basics

You must download forms from the ODK Aggregate server ( https://opendatakit-2.appspot.com ).

The Default form must always be present on the phone. If you delete it, no forms will render. The Default form contains the extensive set of Javascript for rendering the form screens. This Javascript is based upon jQuery, jQueryMobile, Handlebars templates and Backbone.

The other downloaded forms include:

  • Example Form -- a form with many examples of data entry widgets
  • Custom Appearance Form -- a form demonstrating how the look and feel of the questionnaire can change by using custom CSS styles.
  • Initial refrigerator information -- together with Refrigerator information update form, this form demonstrates that ODK Survey can have two different form definitions that edit the same data values. This functionality is incompatible with the 1.x data pipeline, but these two forms show what will be possible with ODK Survey and the 2.0 data pipeline.
  • Refrigerator information update form -- see description for Initial refrigerator information above.

See XLSConverter 2.0 documentation for how to develop your own form definitions.

Backward-compatible operations with ODK Aggregate

Once you have produced a form definition file (formDef.json) from the new XLSConverter 2.0 form definition, you can use the backward-compatibility function of ODK Survey to publish submissions into an existing ODK Aggregate 1.x server.

To do this,

  1. from a Windows PC...
  2. create a forms directory on your system and
  3. within this directory, create a sub-directory with a name like example-media where example would be a brief identifier for your form name. example should not contain any dashes (-). The name of this sub-directory must end with -media.
  4. within that sub-directory, place the formDef.json file produced by the XLSConverter 2.0 process.
  5. if you have any additional files, such as custom css files or images, etc., copy them into this directory.
  6. if you have any nested directories of images or css files, create a zip of each such directory, leave that in this sub-directory, and remove the nested directories. For example, the Default form on the https://opendatakit-2.appspot.com site has many zip files holding the various Javascript libraries and resources it uses. ODK Survey will in-place-unzip any .zip files after downloading them.
  7. Download (and save to a local file) http://collect2.opendatakit.googlecode.com/hg/form-files/convertToLegacy.hta This is a scripting app that will only run on Windows systems.
  8. Double-click the convertToLegacy.hta app to launch it.
  9. Paste the full directory path to the forms directory into the Forms Directory: field and click Generate.
  10. The script will scan for sub-directories ending in -media and parse any formDef.json files contained within them, producing an ODK Aggregate 1.x-compatible XForms form definition file (.xml). These will be placed in the forms directory. So if you had example-media, an example.xml file would be generated in the forms directory.
  11. Now, run the ODK FormUploader 1.x tool available here to upload the form definition files (and their -media folders) to your ODK Aggregate 1.x instance.
  12. You can now run ODK Survey, download these forms from ODK Aggregate 1.x and submit data into ODK Aggregate 1.x from ODK Survey.

NOTE: The converter script produces an XForms definition file (.xml) that is unusable by ODK Collect 1.x. It only contains enough information to support publishing of data into ODK Aggregate

rev 006 (December 2012)

Tables Alpha-1

  • initial release