= Tasks = [[TOC]] These are quick tasks suitable for GCI or Hackathons. For other tasks, see: * [wiki:Contribute/Code] == Easy Tasks == ''Tasks for beginning coders, or if new to Python or web services'' === Action !ToDos in code === Search the code for {{{@ToDo}}}, e.g.: * Migrate represents to S3Represent * project_assignee_represent (https://github.com/flavour/eden/blob/master/modules/s3db/project.py#L4754) * project_task_represent (https://github.com/flavour/eden/blob/master/modules/s3db/project.py#L4798) * Migrate custom methods to use settings.get_ui_formstyle() * S3ImportPoI (https://github.com/flavour/eden/blob/master/modules/s3/s3gis.py#L8634) * Extend S3AddPersonWidget2 to have an option to enter names into 2-3 different fields instead of a single field * https://github.com/flavour/eden/blob/master/modules/s3/s3widgets.py#L619 * https://github.com/flavour/eden/blob/master/static/scripts/S3/s3.add_person.js * Complete S3UpdateLocation() * https://github.com/flavour/eden/blob/master/modules/s3/s3track.py#L707 * e.g. with the event_resource model: https://github.com/flavour/eden/blob/master/modules/s3db/event.py#L933 === Fix a Ticket === Pick a ticket (which could be a bug or an enhancement) from http://eden.sahanafoundation.org/report/1. First ensure that you can repeat this in your local instance - if not: MODIFY TICKET > resolve as > worksforme. If the bug is still present, assign the ticket to yourself. Then fix the bug or implement the feature. Submit your code as a patch to the ticket on Trac, then notify the Sahana-Eden mailing list about your patch for verification. Please submit as a patch file, not zipped. That makes it easier to review without downloading and unzipping. Alternatively (preferred method) push your code in a single commit to your Github repository and make a pull request. Easy tickets to get started on are listed here: http://eden.sahanafoundation.org/report/18 There are also a number of tasks for the [wiki:Deployments/Philippines/Haiyan Hilippines Haiyan Response] listed here: https://hackpad.com/Typhoon-Haiyan-opXJaZLz8gu which can be completed (these can count towards GCI). When you are working on the ticket as a part of GCI task, first add a keyword to the ticket "GCI TASK". If you unclaim the task or want to work on another ticket please remove the keyword. === Resolve an issue from a Disaster Response === During disasters the Sahana Community does a lot of work to deploy Sahana to help affected communities. Often there is more work than can be completed - but you can help to address some of these issues before the next disaster: * [https://hackpad.com/Typhoon-Haiyan-opXJaZLz8gu Typhoon Haiyan] === Common Operational Datasets === * Purpose and schemas for common datasets (schemas are at end): http://oneresponse.info/resources/imtoolbox/publicdocuments/IASC%20Guidelines%20on%20Common%20Operational%20Datasets%20in%20Disaster%20Preparedness%20and%20Response%201%20Nov.%202010.pdf * Add model definitions for these schemas. This work was started but is not included in the current version of Eden. An example from an old version is here: [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? === GIS/Mapping [multiple tasks] === These are various GIS/Mapping Tasks: * [=#FeaturePopupWindow]'''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 * [=#LayerTree]'''[http://dev.geoext.org/trunk/geoext/examples/tree.html Layer Tree]''' * [=#MapPreview]'''Map Preview when !Lat/Lon set in pr/person/presence''' (auto or not) [DeveloperGuidelines/GIS Use the Mapping API to:] * [=#ColorCodedMaps]'''Color coded maps according to Geo-data''' (threats, needs, etc) * [=#VariableSizedMarkers]'''Place variable sized markers on the map in proportion to data''' (number of people in camp, number of families needing food) === !Lat/Lon converter [GCI] === Portuguese Volunteer Firefighters ([Deployments/Portugal/Bombeiros Bombeiros]) use Eden. They get given !Lat/Lon coordinates in degrees minutes seconds, but Eden stores internally as decimal degrees. Tasks: * Create a validator (& possibly widget) to allow entry of this format (allowing for variations in input format like spaces and absence of the degree symbol, which most keyboards don't have) & have it converted to decimal degrees for storage === Scale Uploaded Images [GCI] === When images are uploaded we can limit the size, however larger pictures should be scaled instead. Example: personal profile picture. * [GCI task, #1017] UI to to allow user 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/ )