Skip to content

SEL-Columbia/formhub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

578fc2c · Jul 30, 2015
Dec 5, 2013
Aug 13, 2014
Aug 15, 2014
Aug 15, 2014
Feb 7, 2013
Aug 15, 2014
Aug 15, 2014
Aug 8, 2014
Jul 13, 2013
Sep 10, 2013
Dec 3, 2013
Apr 15, 2015
Oct 1, 2012
Dec 3, 2013
Aug 13, 2014
Feb 21, 2013
Aug 13, 2014
Aug 5, 2013
Jul 30, 2015
Jan 29, 2013
Aug 13, 2014
Sep 7, 2012
Oct 3, 2013
Aug 13, 2014
Feb 5, 2013
Nov 22, 2013
Aug 12, 2014
Dec 19, 2011
Feb 1, 2012
Mar 13, 2012
Aug 19, 2014
Sep 24, 2012

Repository files navigation

Formhub

https://api.travis-ci.org/SEL-Columbia/formhub.png?branch=master

Getting Started

Contributing

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

Code Structure

Formhub is written in Python, using the Django Web Framework.

In Django terms, an "app" is a bundle of Django code, including models and views, that lives together in a single Python package and represents a full Django application.

Formhub consists of three Django apps:

  • 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.

Internationalization and Localization

Formhub can be presented in specific languages and formats, customized for specific audiences.

These examples were derived from Django's Internationalization and Localization Documentation and there is also a good explanation in The Django Book's Chapter on Internationalization.

To generate a locale from scratch, e.g. Spanish:

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

To update PO files

$ django-admin.py makemessages -a ;
$ for app in {main,odk_viewer} ; do cd ${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,odk_viewer} ; do cd ${app} && django-admin.py compilemessages && cd - ; done