| 108 | |
| 109 | === !ToDo === |
| 110 | * Get the newly-developed features merged into ODK Trunk: |
| 111 | * jaxdroid work on Sahana compatibility |
| 112 | * access to Image Library |
| 113 | * Wireless location fix |
| 114 | * SMS form submission |
| 115 | |
| 116 | * Dropdown support within the forms (which will be difficult to FKs) |
| 117 | |
| 118 | * Client-side validation where possible (which probably needs to be added/maintained manually...but we need somewhere to put these) |
| 119 | |
| 120 | * Can the client currently understand validation errors & present these back to the user? |
| 121 | * We currently send back JSON |
| 122 | |
| 123 | * Send Images |
| 124 | * Generate appropriate XForms from image_id fields (ideally using XSLT) |
| 125 | * [http://code.google.com/p/opendatakit/source/browse/Geo+Tagger.xml?repo=forms&r=34910a944c745232d285d2caecf876c3dcae9674 GeoTagger] is a sample Form for ODK which can be used as a template for what needs to be produced by {{{controllers/xforms.py}}} |
| 126 | * Provide an interface in Sahana through which users can submit these images via ODK Collect & have them stored (in the doc_image table, referenced by the image_id foreign key) |
| 127 | * {{{controllers/xforms.py}}} |
| 128 | * ideally use an XSLT to convert the XForm to S3XML |
| 129 | * See [https://docs.google.com/document/d/1SSl8vtA7RYBrrXmPuqQvA7rQLyzv77ESZjB7KH9s6H4/edit?hl=en Sahana Eden Mobile Photo Upload Blueprint] for additional information. |
| 130 | |
| 131 | * Send Location Coordinates |
| 132 | * Generate appropriate XForms from location_id fields (ideally using XSLT) |
| 133 | * [http://code.google.com/p/opendatakit/source/browse/Geo+Tagger.xml?repo=forms&r=34910a944c745232d285d2caecf876c3dcae9674 GeoTagger] is a sample Form for ODK which can be used as a template for what needs to be produced by {{{controllers/xforms.py}}} |
| 134 | * Provide an interface in Sahana through which users can submit these coordinates via ODK Collect & have them stored (in the gis_location table, referenced by the location_id foreign key) |
| 135 | * {{{controllers/xforms.py}}} |
| 136 | * ideally use an XSLT to convert the XForm to S3XML |
| 137 | * Sahana's Location should have the lower accuracy marked when fix was obtained wirelessly: either source or ce fields (ideally the latter if we have a numeric value available). |
| 138 | |
| 139 | * Support Component Tabs for a multi-table form |
| 140 | |
| 141 | * SMS (building on the current NCSU code) |
| 142 | * Need to give user feedback that SMS is sent when HTTP fails (currently they just get a 'Submission failed' message!) |
| 143 | * Should really give them an optional Prompt |
| 144 | * Need to compress the form submissions |
| 145 | * Use the [http://bitbucket.org/javarosa/javarosa/wiki/SMSSendingAPI OpenRosa SMS API] |
| 146 | * Strip out empty/default fields |
| 147 | * encode the characters more efficiently |
| 148 | * Need to authenticate the form submissions |
| 149 | * Needs to work on the Sahana server side with more than just the controllers.msg.tropo() method (like sms_handler_modem) |
| 150 | * Should have optional response notifications per complete form to say one of: |
| 151 | * Submission Successful: URL of record: http://..../ |
| 152 | * Validator Error: xxx |
| 153 | * Need to delete the submitted form from the mobile device when it the submission was confirmed successful. |
| 154 | * The [MobileAndroid#SMSStructure current multi-part transmission] uses a very custom sequence number, which should be made more standard (& take up less room) |
| 155 | * Want to be able to download Forms via SMS |
| 156 | * Push updates from server |
| 157 | * Pull requests from client |
| 158 | |
| 159 | * QR Code to download the Trunk version (which should update from this version & not default ODK location) |
| 160 | * UserGuidelines on creating/embedding a custom QR code for a deployment-specific version |
| 161 | |
| 162 | * Have the list of downloadable XForms more easily configurable (currently hardcoded in controllers/xforms.py formList()) |
| 163 | * e.g. Use the same approach as Importer does by marking resources in the modules list in 000_config.py |
| 164 | |
| 165 | |