[[TOC]] == Basic Coding Projects == ''Projects for beginning coders, or if new to Python or web services'' === Easy Tickets === ''GCI'' * Pick from these [/report/18 easy bugs for new Eden developers]. === Feature Enhancements === * Fix UI issues, add features, provide user-requested enhancements. * You can pick from these [/report/21 feature requests]. * The landing page for each module is different -- some have descriptive text, others have statistics (a "dashboard"). Each has a different layout of menus. * Are any of these landing pages useful? What would be better for a typical workflow? * Make appropriate changes. * Is there a common sort of menu that would be useful? === CAP: Common Alerting Protocol === * BluePrintMessagingModule#CAP * Complete the Model definitions that have been started in [http://bazaar.launchpad.net/~flavour/sahana-eden/trunk/view/head:/models/msg.py#L471 models/msg.py] * Think about some workflow for how this could be used === Common Operational Datasets === * http://oneresponse.info/resources/imtoolbox/publicdocuments/IASC%20Guidelines%20on%20Common%20Operational%20Datasets%20in%20Disaster%20Preparedness%20and%20Response%201%20Nov.%202010.pdf * Complete the Model definitions that have been started in [http://bazaar.launchpad.net/~flavour/sahana-eden/trunk/view/head:/models/08_assess.py#L1825 models/08_assess.py] * Think about how we could make use of them * Display on the Map * Have Reports which compare the baseline & situational assessments === Translations Admin Panel === ==== Use Cases ==== * Admin wants to update /languages on their running instance with current version from Pootle * Admin wants to be able to do offline translation of main language file(s) (either using native web2py UI or using a PO-based tool like Virtaal) * Admin wants to be able to translate additional custom strings in this instance (either using native web2py UI or using a PO-based tool like Virtaal) ==== Tasks ==== * Add a page to {{{controllers/admin.py}}} to handle Translations. * Update the InstallationGuidelines with any new optional requirements (such as translate toolkit). * Gracefully give nice error messages if the translate toolkit isn't installed. * Update UserGuidelinesLocalisation ==== Export PO file ==== * Dropdown to select which language * Button to call [http://translate.sourceforge.net/wiki/toolkit/py2web2po web2py2po] to convert the .py file to a standard PO file for the user to download ==== Import PO file ==== * Upload Widget which calls [http://translate.sourceforge.net/wiki/toolkit/py2web2po po2web2py] onaccept to convert a .po file to a Web2Py .py file stored in the languages folder * Use the same filename prefix or prompt? * Do a merge ==== Update Pootle ==== Provide a set of admin scripts (bzr post-commit hook?) to update Pootle with any changed strings as a Merge. === GIS/Mapping === These are a various GIS/Mapping Tasks: * Add a delay to the onHover tooltip (highlightControl) * Something like [http://cherne.net/brian/resources/jquery.hoverIntent.html hoverIntent] * Continue Integration of [http://wiki.openstreetmap.org/wiki/Potlatch_2/Deploying_Potlatch_2 Potlatch] * for editing the main OSM database * for editing a local OSM database * Make the display_feature() & display_features() popup a Window instead of opening in a DIV * This was working in FF before: http://eden.sahanafoundation.org/browser/views/sahana_scripts_min.html?rev=836#L39 * Replace the Measure Length/Area tools with [http://trac.geoext.org/wiki/ux/Measure GeoExt.ux] * Option to go Full screen & back * Full screen view (No Ext window) will be required for use on a small-screen, such as a Mobile device * [http://dev.geoext.org/trunk/geoext/examples/tree.html Layer Tree] * Separate Overlays folder into Internal/External * Sub-folders of Overlays e.g. for: * Projects by Theme * Projects by Donor * Get a pr/person/presence record upon login if HTML5 !GeoLocation available & not changed since last time * login_next * Map Preview when Lat/Lon set in pr/person/presence (auto or not) [wiki:DeveloperGuidelinesGIS Use the Mapping API to:] * Color coded maps according to Geo-data (threats, needs, etc) * Placing variable sized markers on the map in proportion to data (number of people in camp, number of families needing food) ==== OSM Importer UI ==== * There is an import stylesheet for .osm files: static/xslt/import/osm.xsl * This currently has hard-coded mappings between OSM admin levels & Sahana admin levels * * http://wiki.openstreetmap.org/wiki/Tag:boundary%3Dadministrative#10_admin_level_values_for_specific_countries * A custom controller should be written * provide a UI to the user to select their country from the dropdown which pre-populates the mapping fields for manual verification/adjustment * process the results of this to pass new variables back to the stylesheet: * http://pub.nursix.org/eden/s3xrc/vita.modules.s3xrc.s3rest.S3Resource-class.html#import_xml {{{ resource = s3xrc.resource("gis", "location") template = os.path.join(request.folder, resource.XSLT_PATH, "osm", "import.xsl") resource.import_xml("uploaded_filename.osm", template=template, mynewvar="xxx") }}} * The Stylesheet needs updating to act on these vars when found A nice further refinement would be to provide a UI to select a BBOX & optional filter to pull down the .osm file via [http://wiki.openstreetmap.org/wiki/XAPI XAPI] * Initially this could be manual text box entry of BBOX/filter * Then add a Map-based BBOX selection & dropdowns for the filter (which prepopulate the real dropdowns for manual verification/amendment) === Recurring Requests === e.g. Shelter needs 100 liters of water/week Want to be able to add Scheduling functionality to Requests. There is a wrapper for Web2Py's Scheduler class in {{{modules/s3/s3task.py}}} Can use UI ideas/code from Sync === !Lat/Lon converter === Portuguese Volunteer Firefighters ([Deployments/Bombeiros Bombeiros]) use Eden. They get given !Lat/Lon coordinates in Degrees/Minutes/Seconds, but Eden stores internally as Decimal degrees. Tasks: * Create a represent function to output the data as D/M/S * Create a validator (& possibly widget) to allow entry of this format & have it converted to decimal dagrees for storage === Scale Uploaded Images === When images are uploaded we can limit the size, however larger pictures should be scaled instead. This should be implemented as a Validator {{{modules/s3/s3validators.py}}}). The size limitation should be configurable in the model for that specific field, with a sensible default. Bonus points: UI to crop image (this would be a Widget: {{{modules/s3/s3widgets.py}}}) Ideally the image would be resized client-side to make it faster to upload...this might be hard with pure JS, so would need to be Flash? * Maybe: http://labs.corefive.com/Projects/FileManager/ (e.g. from http://code.google.com/p/django-ckeditor-filemanager/ ) Example: Personal Profile Picture === Suggestion Box === Here are some potential features for a "suggestion box", roughly in order of priority: * Text data entry form -- just use standard Eden database fields like "timestamp", "authorstamp", and "comments", maybe with a subject field. * Allow defining topics or keywords. Let user choose a topic for their suggestion. Add all module names as an initial list of topics. * Simple search in the body of posts -- match words. * Regexp search. * Allow commenting on (replying to) suggestions -- show comment thread with original post. * Some form of importance rating (e.g. voting up or down). * Original suggestion from: http://groups.google.com/group/sahana-eden/browse_thread/thread/bbda1e98b73e1437 ---- [wiki:Projects]