Skip to content

riboh/onadata

 
 

Repository files navigation

Ona Platform

Collect, Analyze and Share Data!

image

About

Ona is derived from the excellent formhub platform developed by the Sustainable Engineering Lab at Columbia University.

Installation

See install.md.

Contributing

If you would like to contribute code please read Contributing Code to Ona Data.

Edit top level requirements in the file requirements/base.in. Use

pip-compile to update requirements/base.pip. You will need to update requirements.pip and set lxml==3.6.0, for some unknown reason pip-compile seems to pick a lower version of lxml when openpyxl requires lxml>=3.3.4.

$ pip-compile --output-file requirements/base.pip requirements/base.in

Code Structure

  • api - This app provides the API functionality mostly made up of viewsets
  • logger - This app serves XForms to and receives submissions from ODK Collect and Enketo.
  • viewer - This app provides a csv and xls export of the data stored in logger. This app uses a data dictionary as produced by pyxform. It also provides a map and single survey view.
  • main - This app is the glue that brings logger and viewer together.

Localization

To generate a locale from scratch (ex. Spanish)

$ django-admin.py makemessages -l es -e py,html,email,txt ;
$ for app in {main,viewer} ; do cd onadata/apps/${app} && django-admin.py makemessages -d djangojs -l es && cd - ; done

To update PO files

$ django-admin.py makemessages -a ;
$ for app in {main,viewer} ; do cd onadata/apps/${app} && django-admin.py makemessages -d djangojs -a && cd - ; done

To compile MO files and update live translations

$ django-admin.py compilemessages ;
$ for app in {main,viewer} ; do cd onadata/apps/${app} && django-admin.py compilemessages && cd - ; done

Api Documentation

$ cd docs
$ make html
$ python manage.py collectstatic

Django Debug Toolbar

  • $ pip install django-debug-toolbar
  • Use/see onadata/settings/debug_toolbar_settings/py
  • Access api endpoint on the browser and use .debug as the format extension e.g /api/v1/projects.debug

Upgrading existing installation to django 1.9+

Requirements

  • Postgres 9.4 or higher
  • xcode-select version 2343 or higher

Upgrading from a pervious Ona setup Ensure you upgrade all your pip requirements using the following command:

pip install -r requirements/base.pip

Fake initial migration of guardian, django_digest, registration. Migrate contenttypes app first.

$ python manage.py migrate contenttypes
$ python manage.py migrate --fake-initial django_digest
$ python manage.py migrate --fake-initial guardian
$ python manage.py migrate --fake-initial registration
$ python manage.py migrate

Major django changes affecting Ona * The DATABASES settings key depricates the use of the autocommit setting in the OPTIONS dictionary.

About

Collect, Analyze and Share

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 66.3%
  • JavaScript 24.7%
  • HTML 6.7%
  • CSS 1.9%
  • Other 0.4%