kobotoolbox / kobocat

Our (backend) server for providing blank forms to Collect and Enketo and for receiving and storing submissions.
BSD 2-Clause "Simplified" License
117 stars 127 forks source link

KoboCAT

Important notice when upgrading from any release older than 2.024.19

2.024.19 is the latest release for KoboCAT as a separate Django project.

Starting from version 2.024.25, KoboCAT has been consolidated into KPI as an application called openrosa.

Important notice when upgrading from any release older than 2.020.18

Up to and including release 2.020.18, this project (KoboCAT) and KPI both shared a common Postgres database. They now each have their own. If you are upgrading an existing single-database installation, you must follow these instructions to migrate the KPI tables to a new database and adjust your configuration appropriately.

If you do not want to upgrade at this time, please use the shared-database-obsolete branch instead.

Deprecation Notices

Much of the user-facing features of this application are being migrated to https://github.com/kobotoolbox/kpi. KoboCAT's data-access API and OpenRosa functions will remain intact, and any plans to the contrary will be announced well in advance. For more details and discussion, please refer to https://community.kobotoolbox.org/t/contemplating-the-future-of-kobocat/2743.

As features are migrated, we will list them here along with the last release where each was present:

About

kobocat is the data collection platform used in KoboToolbox. It is based on the excellent onadata platform developed by Ona LLC, which in itself is a redevelopment of the formhub platform developed by the Sustainable Engineering Lab at Columbia University.

Please refer to kobo-install for instructions on how to install KoboToolbox.

Code Structure

Localization

To generate a locale from scratch (ex. Spanish)

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

To update PO files

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

To compile MO files and update live translations

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

Testing in KoboCAT

For kobo-install users, enter the folder for kobo-install and run this command

./run.py -cf exec kobocat bash

For all other users, enter the container using this command

$ docker exec -it {{kobocat container}} /bin/bash

Run pip install the development dependencies

$ pip install -r dependencies/pip/dev.txt

Run pytest to run all automated tests

$ pytest