Skip to content
This repository

Mobile Data Collection made easy.

branch: master
Octocat-spinner-32 api uk: create user profile directly for tests December 05, 2013
Octocat-spinner-32 extras update celeryd settings to use new location of settings i.e formhub.s… August 07, 2013
Octocat-spinner-32 formhub Added Nepali (ne), Dutch (nl), and Chinese (zh) to settings.LANGUAGES… December 19, 2013
Octocat-spinner-32 js_tests Modified check for supported langauges to look through all questions February 07, 2013
Octocat-spinner-32 main seemless -> seamless; closes #1303 January 18, 2014
Octocat-spinner-32 odk_logger Merge branch 'master' of into no_stat… December 20, 2013
Octocat-spinner-32 odk_viewer Used Q objects in an 'OR' query for the Export.exports_outdated() cla… April 23, 2014
Octocat-spinner-32 restservice Merge pull request #1201 from DBell-Feins/master July 13, 2013
Octocat-spinner-32 sms_support Fixes various problems with SMS and Telerivet: September 10, 2013
Octocat-spinner-32 staff removing stathat December 03, 2013
Octocat-spinner-32 stats use IntegerField for bigger integer valuess October 01, 2012
Octocat-spinner-32 templates ajax-ifying the geo-count; js now updates it, avoiding an expensive c… December 03, 2013
Octocat-spinner-32 utils Instead of querying the Export table *twice* in export_tools.should_c… April 23, 2014
Octocat-spinner-32 .gitattributes OS specific lineendings February 21, 2013
Octocat-spinner-32 .gitignore ignore celerybeat-schedule file May 14, 2013
Octocat-spinner-32 .gitmodules boostrap has moved from @twitter/boostrap to @twbs/bootstrap August 05, 2013
Octocat-spinner-32 .travis.yml Merge branch 'master' into structured_settings_B October 12, 2013
Octocat-spinner-32 LICENSE updated LICENSE: formatted for readability January 29, 2013
Octocat-spinner-32 README.rst readme mods November 18, 2013
Octocat-spinner-32 changelog.txt new line September 07, 2012
Octocat-spinner-32 test dicts rather than dict keys only October 03, 2013
Octocat-spinner-32 specify settings module in deploy fabfile October 14, 2013
Octocat-spinner-32 updated translations February 05, 2013
Octocat-spinner-32 Getting the hang of branching November 22, 2013
Octocat-spinner-32 requirements-dev.pip lock down pip requirements to known working packages November 13, 2013
Octocat-spinner-32 requirements-latest.pip lock down pip requirements to known working packages November 13, 2013
Octocat-spinner-32 requirements-mysql.pip requirements for other databases December 19, 2011
Octocat-spinner-32 requirements-postgresql_psycopg2.pip requirements for other databases December 19, 2011
Octocat-spinner-32 requirements-s3.pip added requirements file for using s3 February 01, 2012
Octocat-spinner-32 requirements-ses.pip added requirements file for using amazon ses for email March 13, 2012
Octocat-spinner-32 requirements.pip upgrade pyxform March 10, 2014
Octocat-spinner-32 Added check for notes while building question list plus its js test -… September 24, 2012



Please read the Installation and Deployment Guide.


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

Code Structure

  • odk_logger - This app serves XForms to ODK Collect and receives submissions from ODK Collect. This is a stand alone application.
  • odk_viewer - This app provides a csv and xls export of the data stored in odk_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 odk_logger and odk_viewer together.


To generate a locale from scratch (ex. Spanish)

$ makemessages -l es -e py,html,email,txt ;
$ for app in {main,odk_viewer} ; do cd ${app} && makemessages -d djangojs -l es && cd - ; done

To update PO files

$ makemessages -a ;
$ for app in {main,odk_viewer} ; do cd ${app} && makemessages -d djangojs -a && cd - ; done

To compile MO files and update live translations

$ compilemessages ;
$ for app in {main,odk_viewer} ; do cd ${app} && compilemessages && cd - ; done
Something went wrong with that request. Please try again.