Skip to content

Latest commit

 

History

History
378 lines (268 loc) · 14.6 KB

collect-settings.rst

File metadata and controls

378 lines (268 loc) · 14.6 KB

Collect Menus, Settings and Security

Main Menu

ODK Collect's main menu contains the following options:

Main menu of ODK Collect

General Settings

General Settings are accessible from the :guilabel:`⋮` menu on the top-right corner.

General settings

It allows us to configure the following:

Server Settings

Server settings

:menuselection:`Server` settings manage the connection to an ODK Aggregate server or Google Drive account for form management.

See :ref:`connecting-to-server` for more details.

User Interface Settings

User Interface settings

:menuselection:`User Interface` settings allow us to customize the way our app looks and behaves. It includes settings for:

:menuselection:`User Interface` settings page also consists of the Mapping Settings.

Mapping

Map settings are included on the :menuselection:`User Interface` settings page.

Form Management Settings

Form Management settings

Form Management settings

:menuselection:`Form Management` settings handle default behavior when editing, finalizing, and importing forms.

Form submission

  • :guilabel:`Auto send` When enabled, forms are sent immediately when finalized if the device can connect to the internet. You can specify whether to send over WiFi, cellular data, or both.
  • :guilabel:`Delete after send` When checked, form instances are deleted once they are sent.

Form filling

Form import

User and Device Identity Settings

User and Device Identity Settings

Form Metadata Settings

:menuselection:`User and Device Identity -> Form Metadata` sets identity values which are added to the metadata of forms completed on the device.

Form Metadata Settings

User-defined

You can edit the following:

  • Username
  • Phone number
  • Email address

Note

  • If no username is set in Form metadata settings, server username in :ref:`Server settings <server-settings>` is used by default in the form.
  • If username is defined in Form metadata settings as well as in Server settings, username from Form metadata would be visible in form.
  • If you want to ensure that form metadata username can't be changed, you can use the :ref:`admin settings <admin-settings>`.

Device-defined

You cannot edit these:

  • Device ID
  • Subscriber ID
  • SIM serial number

Usage data

When enabled, ODK Collect sends usage and error data back to the ODK development team, which helps us improve the application.

Usage data is anonymized.

Admin Settings

Note

Admin settings can be password protected. If you set an :guilabel:`Admin Password` in the Admin settings screen, you will need to re-enter that password to access Admin settings in the future.

Admin settings menu

Admin Security

Admin settings allow you to :ref:`restrict which General Settings are seen by users <user-access-control-settings>`. To access those settings as an Admin (and see all of them), :gesture:`tap` :guilabel:`General Settings` from the Admin settings page.

Import/Export settings

When you click on the :guilabel:`Import/Export Settings`, you see a QR Code and a few options.

Import/export settings menu of ODK Collect

QR Code

QR Code or the Quick Response Code is a two dimensional barcode. QR codes can be used to configure Collect on many devices. The QR image presented contains all of your current General and Admin settings, including admin and server passwords. When this QR code is scanned from the ODK Collect app on another device, these settings are imported.

Sharing QR code

You can click on the Share icon for sharing the QR code. icon to share the QR code as an image. When you click on it, it displays a list of applications and services like whatsapp, facebook, hangouts, bluetooth, MMS to name a few, which can be used to share the QR code. This is useful when there are several different data collection sites and all devices have to be configured in the same way, in which case the QR code can be shared from one reference device.

Warning

Since the QR code may contain the admin and server passwords without encryption, you should be careful about how you share it. It is advised to not send it through an external application but through bluetooth, MMS or any other such service that doesn't allow the third party to access the data.

Saving QR code locally

You can go to :menuselection:`⋮ --> Save settings to disk` to save the QR code.

Importing settings from a QR saved on your device

You can import settings from a QR code saved on your device by clicking on :guilabel:`Select Code from SD Card` option.

Making your own QR code

QR code is a JSON object with a structure as shown below:

{
  "general": {
    "protocol": "google_sheets",
    "constraint_behavior": "on_finalize"
  },
  "admin": {
    "edit_saved": false
  }
}

The JSON object isn't encrypted but is compressed using zlib before encoding into QRCode. Therefore the creation process can be summarized as follows:

  1. Write a JSON object containing the changed settings with a structure as shown above.
  2. Compress it using zlib.
  3. Encode into QR code.

After you finish generating the QR code, you can transfer it to your device and then import it by clicking on :guilabel:`Select Code from SD Card` option.

List of keys for all settings

Following is the list of keys for all settings and the set of values they can take:

{
  "admin" : {

    // Stores the admin password
    "admin_password": Boolean,
    "admin_pw": String,

    // User access control to the main menu. The default value is true.
    "edit_saved": Boolean,
    "send_finalized": Boolean,
    "view_sent": Boolean,
    "get_blank": Boolean,
    "delete_saved": Boolean,

    // User access control to form entry
    "save_mid": Boolean,
    "jump_to": Boolean,
    "change_language": Boolean,
    "access_settings": Boolean,
    "save_as": Boolean,
    "mark_as_finalized": Boolean,

    // User access control settings for General settings
    "change_autosend": Boolean,
    "change_navigation": Boolean,
    "change_constraint_behavior": Boolean,
    "change_font_size": Boolean,
    "change_app_language": Boolean,
    "instance_form_sync": Boolean,
    "default_to_finalized": Boolean,
    "delete_after_send": Boolean,
    "high_resolution": Boolean,
    "image_size": Boolean,
    "show_splash_screen": Boolean,
    "show_map_sdk": Boolean,
    "show_map_basemap": Boolean,
    "analytics" : Boolean,
    "change_form_metadata": Boolean,
    "change_server": Boolean,

    // Server
    "import_settings": Boolean,
    "change_server": Boolean,
    "change_protocol_settings": Boolean,

    },

  "general" : {

    // Server settings
    "protocol": {"odk_default", "google_sheets", "other"},
    // Aggregate specific key
    "server_url": String,
    // Google sheets specific keys
    "selected_google_account": String,
    "google_sheets_url": String,
    "username": String,
    "password": String,
    // Other specific keys
    "formlist_url": String,
    "submission_url": String,

    // User interface
    "app_language": { "en", "af", "am", "ar", "bn", "ca", "cs", "de", "es", "km",
         "et", "fa", "fi", "fr", "ha", "hi", "hu", "in", "it", "ja", "ka", "zu",
         "lt", "mg", "mr", "my", "ml", "nb", "nl", "no", "pl", "ps", "pt", "ro",
         "ru", "so","sq", "sw", "ta", "ti", "tl", "tr", "uk", "ur", "vi", "zh"
         },
    "font_size": {13, 17, 21, 25, 29},
    "navigation": {"swipe" ,"buttons" ,"swipe_buttons"},
    "showSplash": Boolean,
    "splashPath": String, // If showSplash is true, then you specify the path of image here.
    "map_sdk_behavior": {"google_maps", "osmdroid"},
    // if map_sdk_behavior is google_maps, then map_basemap_behavior can take the following values:
    "map_basemap_behavior": {"streets", "satellite", "terrain", "hybrid"},
    // if map_sdk_behavior is osmdroid, then map_basemap_behavior can take the following values:
    "map_basemap_behavior": { "openmap_streets", "openmap_usgs_topo",
                              "openmap_usgs_sat", "openmap_stamen_terrain",
                              "openmap_cartodb_positron", "openmap_cartodb_darkmatter"
                          },

    // Form submission
    "delete_send": Boolean,
    "autosend": Boolean,
    "autosend_wifi": Boolean,
    "autosend_network": Boolean,

    // Form filling
    "constraint_behavior": {"on_swipe", "on_finalize"},
    "default_to_finalized": Boolean,
    "high_resolution": Boolean,
    "image_size": {"original", "small", "very_small", "medium", "large"},

    // Form import
    "instance_sync": Boolean,

    // User and Device identity
    "form_metadata": String,
    "metadata_migrated": Boolean,
    "metadata_username": String,
    "metadata_phonenumber": String,
    "metadata_email": String,
    "analytics": Boolean, // Anonymous usage data

  },

}

Note

The subkeys in the general key can be a part of the admin key too.

Note

QR code only contains settings whose values are not the default values because of the constraints on the amount of data a QR code can hold.

Warning

The QR code used for settings-import contains the admin and server passwords in plain text. To remove them from the code, :gesture:`tap` the warning on the QR code screen.

User Access Control Settings

This section allows the admin to hide menu items and settings from the user. It contains the following options: