Giter VIP home page Giter VIP logo

formhub's Introduction

Formhub

image

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

formhub's People

Contributors

amarder avatar codcrazi avatar dorey avatar dpapathanasiou avatar iwillig avatar jeluxama avatar jmwohl avatar katembu avatar kiorky avatar larryweya avatar mberg avatar mejymejy avatar modilabs-bumblebee avatar modilabs-starscream avatar myf avatar prabhasp avatar prajjwol avatar rgaudin avatar rubenarslan avatar simod avatar snkz avatar tomcoder avatar topol avatar ukanga avatar vr2262 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

formhub's Issues

Capture additional user information at signup

During signup it would be great to learn more about the user.

If we could capture these during signup and in user settings (post signup). That would be great. This means we'll need to add a user settings page too eventually.

  • Name (optional)
  • Organization (optional)
  • Country

XForm forward

This is down the road feature but it would be really nice to configure in "advanced settings" the ability to post any received xform to a particular URL.

That way we can use deploy as a passthrough to other systems that also support xforms.

need to make a formhub favicon

the one on the site now is the default bootstrap one which is not very cool... i think we should just make one that is the dark grey with the white f in the formhub font, though we don't want it to be too much like facebook or something... idk, anything is better than a blue b... other ideas?

anonymous user downloading form

When an anonymous user tries to download a form, it causes a 500 error.

http://formhub.org/odk_viewer/export_spreadsheet/tutorial_1.csv

The error:

File "/project_env/lib/python2.6/site-packages/django/db/models/fields/init.py", line 292, in get_prep_lookup
return self.get_prep_value(value)

File "/project_env/lib/python2.6/site-packages/django/db/models/fields/init.py", line 479, in get_prep_value
return int(value)

TypeError: int() argument must be a string or a number, not 'AnonymousUser'

Appearance

To show multiple questions in a group on the same screen, I wanted to use the appearance="field-list". In my xls I added a column appearance and added field-list in the relevant 'begin group' row.

None of this is exported to the XML. Is appearance currently supported by Formhub?

Improve form deletion process.

  • Deletion should only hide a survey from the UI.
  • This will allow submissions for this survey to continue if a phone still the XForm on it.
  • This will prevent the user from creating another survey with this ID. This is actually a good thing so that old versions don’t get mixed in with a newer version with the same ID.

force user name to be lower case

  • force the reg form to make usernames lower case
  • force login form to be lowercase for user name
  • we can correct (manually I can help) user names to be lowercase

Photo link

Andrew I realize you're working on a better solution for photos. In the interim, could we just link to the photo in the popup? That will allow the people in haiti to start seeing the photos they are seeing.

Reserved urls

We need to make sure we block off certain user names so people don't register them.

make new url for submitting xls files

originally many of the functions of the site were tied to the root url (http://formhub.org/) which we are trying to move away from. this url should be just serving up the homepage with some basic information and a link to sign up or log in. right now, this url is also handling the submission of xls files which should have it's own url (and probably move apps as well)

Back nav on the map

We should add a floating back button on the map. Right now there is no way to get back to your main dashboard besides hitting the back button.

user settings

On the user settings page we might want to add as the first field

username: mberg

This will be read only but it helps orient you a bit.

Map popups where there are multiple foreign languages show up funky

Looks like this:

{u'French': u'A-0.10 Nom de l\u2019Assistant de Recherche:', u'English': u'A-0.10 Research Assistant\u2019s Full Name:'} Muscadin Junot
{u'French': u'A-1.1 Coordonn\xe9es GPS:', u'English': u'A-1.1 Geocode of facility:'} 18.195236921310425 -74.00600373744965 -3.0 6.0
{u'French': u'A-1.2 Photo:', u'English': u'A-1.2 Location Photo:'} 1324325500388.jpg
{u'French': u'A-2.3 D\xe9partement', u'English': u'A-2.3 District / Division'} Sud
{u'French': u'A-2.4 Commune', u'English': u'A-2.4 Location / Ward / Commune'} coteaux
{u'French': u'A-2.5 S Communaute/Localite', u'English': u'A-2.5 Community / Village'} other

images broken in KML

The src on the KML points to

src="/media/attachments/1325594065737.jpg"

Needs to be the full site url.

Make it easier for users to iterate on form design

So I guess the need is to make it easier for users to iterate on form design. The issue now is that every new survey that is uploaded has to have a unique name/id, and once you upload a survey with a certain name/id, you are forever denied from re-using that.

The reason this is a large issue is that the need for constant renaming really is a pain and will create a billion xls files with slightly different names, and users won't be sure what is draft at what stage, etc.

One solution would be to have a "sandbox" where data integrity is a very sketchy issue (maybe we store sandbox submitted data as couch entries, as the table defintions won't line up one data submission to another?), and users are allowed to view data in very limited ways (ie, a per-submission view, but no larger xls view, cuz it just won't make sense?). BUT, they are allowed to replace a survey with any other, no problem.

For iterating until you get a decent form to deploy, this would be a perfect thing.

[We can build this much later, but Andrew, would appreciate your thoughts on this if you have any..]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.