[[TOC]] = Pakistan Developers = If you have skills in Python, !JavaScript (jQuery, Ext &/or !OpenLayers) or CSS then you're most welcome to help with code. == Getting Started == * InstallationGuidelinesDeveloper * DeveloperGuidelines * [http://www.slideshare.net/AidIQ/sahana-introduction-to-the-code-v2 Tutorial Presentation] == Know Java? == WE NEED YOU! Check out: [wiki:PakistanDevelopers#Printing Printing] == Open Tickets == Please feel free to go ahead and resolve any of these tickets * [http://eden.sahanafoundation.org/report/16 Open Tickets in Trac] == Feature Requests == == Homepage == '''* Main ideas / purpose''' * This homepage is form by protal-idea and for * People to understant what's gonig on for Sahana Eden responses to Pakistan flood w/o login * How people can help Pakistan via Sahana Eden * What Sahana Eden is trying to communication with NPO/relief orgs/publics * Connection with forum of Sahana-eden, Sahana-pakistan-2010, Pakistan wiki '''* Draft design ''' [http://eden.sahanafoundation.org/attachment/wiki/PakistanDevelopers/Homepage%20for%20Pakistan-Sahana.doc Draft Homepage for Pakistan Sahana Eden] * Input welcome http://groups.google.com.tw/group/sahana-eden/browse_thread/thread/bee1749436c18d97 === Requests Management === * #495: Request Priority level .represent doesn't work nicely in a Popup (done) * [BluePrintRequestTracking#UsabilitysuggestionforPakistanVersion Usability suggestions] * Add an Organisation default pre-fill routine (like staff in RAT) * Add hospital_id to the rms_req table & deprecate the mini-RMS inside HMS * Add a link to create a Req from a Hospital (just like we have from a Shelter) === Inventory === See: BluePrintInventoryManagement === Map === * ~~Map requires a refresh to get icons to appear at proper size (Firefox/IE. Chrome/Safari stay small)~~: #493 (done) * ~~This makes the highlightControl popups much more painful~~ * Provide a Legend for Feature Layers in full-screen mode: #499 * Make the Legend in the Non-fullscreen mode dynamic * Fresh water source !PoIs * Water !FeatureClass is there in the Programme !FeatureGroup, so can be added already although a nicer UI would be great * Could use the Landmark model as a basis: http://pakistan.sahanafoundation.org/eden/gis/landmark * Could also have a custom map query which displays a Water layer for all Shelters which provide Water Services ==== Data ==== * [wiki:UserGuidelinesGISData#ImportData Import Locations] * L0 (Country): Done (using [http://pakgis.blogspot.com/2009/07/vector-datasets_22.html PakGIS data]) * L1 (Province/Territory): In-Progress (using [http://pakgis.blogspot.com/2009/03/national-provincial-boundaries-of.html PakGIS data]) * L2 (District): Available (using [http://pakgis.blogspot.com/2009/03/district-boundaries-of-pakistan.html PakGIS data]) * L3 (Tehsil): ''tbc'': PakGIS not responding to request: http://pakgis.blogspot.com/2009/03/tehsil-boundaries-of-pakistan.html * L4 (Union Council): ''tbc'': Use [wiki:UserGuidelinesGISData#Geonames Geonames] for Points? Place in hierarchy using intersection calculations? * L5 (Village): ''tbc'': Use [wiki:UserGuidelinesGISData#Geonames Geonames] for Points? Place in hierarchy using intersection calculations? * Alternate sources: * L1-L3 Polygons: http://ags.pdc.org/rest/services/Pakistan/PAKISTAN_FLOOD/MapServer/25 * L0-L2 polygons (L2 possibly out of date): http://www.gadm.org/data/shp/PAK_adm.zip * L1 & a few L2s: http://downloads.cloudmade.com/asia/pakistan * L1 Polygons: http://finder.geocommons.com/overlays/61368 * ~~Lock down L0-L2 Locations~~ * De-duplication of existing locations: #482 (code done: still needs someone to go through & make use of) * Import !GeoData into !GeoServer for more advanced GIS: #497 * WFS Support * Look for Overlays we could add to Map: * http://ags.pdc.org/rest/services/Pakistan/PAKISTAN_FLOOD/MapServer * Example: http://www.esri.com/services/disaster-response/pakistan-flood-2010/index.html * http://agsprod.pdc.org/arcgis/Pakistan/PAKISTAN_FLOOD/MapServer/WMSServer?request=GetCapabilities&service=WMS * Not being parsed by the WMS Browser :/ * Need to use [wiki:InstallationGuidelinesGISData#Cache MapProxy] to reproject the 4326 they serve to the 900913 we consume * http://agsprod.pdc.org/arcgis/Pakistan/PAKISTAN_FLOOD/MapServer/WFSServer?request=GetCapabilities&service=WFS * Need to add WFS support (not too hard to add layers manually - copy basics from WMS) * http://blog.fortiusone.com/2010/08/18/1435/ * Good to be able to support the Photos (currently shows 'undefined' for all attributes): http://finder.geocommons.com/overlays/61378 * http://www.logcluster.org/ops/pak09a ==== Locations Selector ==== * [wiki:BluePrintGISLocationsHierarchy Location Selector]: * [wiki:BluePrintGISSelectLocationFromMap Add Location by placing cursor on Map]: #487 (done basics) * Update screen Marker should be in the same layer & replaced by the create feature tool * use Drag tool not Draw tool? * Create Map should also read whether a Lat/Lon has been entered into the Fields & use that to show the initial Marker (=> Dynamic Map!) * Want to zoom to the relevant area of the map based on the selected locations hierarchy (needs polygon data) * When selecting Lat Lon from the map, change the mouse cursor to crosshair * This is partially-working: clicking the button on enables the crosshair, clicking it off disables, but currently it's not being set on 1st load * See nearby locations & be able to select them? * Hierarchical Autocomplete for Locations: #502 * Add !DrawTool icon in help (like is already there in the Location Update form) * Include the functionality in {{{views/gis/location_autocomplete.js}}} inside the definition of the 'location_id' reusable field * ~~~Update form: Hierarchy needs populating from old record~~~ * ~~~Include a Search box underneath the hierarchy which is an Autocomplete filtered to the appropriate level that we've already selected~~~ * ~~~Format of results should include the hierarchy of missing steps to help resolve duplicate names~~~ * ~~~Add a visible field for location name beside address (defaults to being populated by the name of the resource, but can be overridden)~~~ * ~~~The extra 'Save Location' button shouldn't be required (Auto-Save when main form is submitted. Does this make code simpler as only need to update location_id at the end?)~~~ * ~~~Handle the case where we link to a general Lx Location record & which we now refine to add a Street Address or Lat/Lon~~~ * ~~~we have a UUID but the 1st update should be either just changing location_id (if using the hierarchy) or creating a new record (if using lat/lon or addr_street)~~~ * Changing things in higher levels should clear lower levels? * Check whether fields are readable/writable (e.g. addr_street may need to be hidden from some modules) * Add Geocoder support * Use subheadings CSS instead of ASCII ---- * Download hierarchy levels to a Store in the background to improve performance? * Don't display Lat/Lon for Admin levels (Lx)? * shn_read/shn_list - replace existing system in read/list? (consistency & ease of maintenance) * if shn_has_role(MapAdmin): Provide an 'Add Location' option next to each level of hierarchy (simplified Ext popup not colorbox?) * L1-L4 Feature Classes shouldn't be selectable by non-!MapAdmins (& should be auto-selected by !MapAdmins) * Remove Feature Classes completely from Locations (replace with Feature Layers (i.e. Queries)) * [wiki:BluePrintGISLocationsSearch Location Search] ==== Popups ==== * Should add an 'Open' hyperlink to open the resource (in a new tab?) * Locations have a URL which doesn't work (wants to open map in JS div) * Hide blank fields? * Customised Popups for Incidents, Assessments & Requests * Hide fields which aren't so necessary to make the critical ones stand out * It would be good if the map pop-ups showed the resource type as a header at the top - currently it isn't entirely clear what the popup is showing. * Fix Clustering: #498 (done) * ~~Cluster Popups with multiple records should show 'name - type' not just 'name'~~ * Better still: {{{ Location A - - - Location B - - - If there is more than one location listed include: "Zoom in for detail" }}} ==== Printing ==== * [wiki:InstallationGuidelinesGISData#Printing] * http://trac.mapfish.org/trac/mapfish/ticket/161 * NB This will only be able to see Feature Layers exposed as web services (KML/GeoRSS) ''Would like to see A4 District-level maps with names and boundaries of Tehsils that we can insert text and tables onto top of.'' This is about controlling the layout of a printed map rather than using an interactive map. Need to do some thinking of how this should look: * is the 'text' labels? * is the 'tables' popups? Can we have a popup moved to a different part of the screen to control printed layout? === Shelter Registry === * On the map, where it shows the shelter, it should show the comments as well, so that one could easily find the requisite facilities. These facilities should be searchable though. * BluePrintShelterRegister - Usability suggestion * Move School Reports to CR (they are Shelters) (-> PTressel) * Replace District & Union Council with location_id * Provide Estimations of Requirements based on associated Inventory & [http://www.sphereproject.org/component/option,com_docman/task,cat_view/gid,17/Itemid,203/lang,english/ Sphere Standards] * Automate dynamic requests into RMS? === Assessments === * Complete [http://www.ecbproject.org/page/48 ECB's Rapid Assessment Tool] - Dominic * Reporting (use custom method handlers & representations): * Summary data for a single RA: /rat/assessment/1/summary.svg * Summary data for an aggregation of RAs by different levels of location hierarchy * Comparative report for different RAs within a level of location hierarchy * Highlighting the Unmet needs === Incident Reporting === * .represent for irs_iimage.image as a thumbnail (like for gis_marker) * #508: [BluePrintIncidentReporting#SimplifiedCategories Provide normal users with a simplified set of options for Category] === Floods === * Add support for info from 2nd report on: http://www.radio.gov.pk/flood.asp === Reports === * Recent Activity on the site (read our own RSS feeds?) * Summary info (similar to the SUMMARY-FAP.pdf & WFP .ppt) * Flood alerts like: http://www.reliefweb.int/rw/fullmaps_sa.nsf/luFullMap/F4CC4F05DE48DA6EC1257783003580AC/$File/Map.jpg.jpg?OpenElement&emid=FL-2010-000141-PAK * jqplot? * Map * KML XSLT (=>Dominic) === Misc === * Make all Tooltips onHover, not onClick? * Would be good to write a custom PDF writer for this format of report so we can consider getting people to enter data into DB directly. * split column headers * (dominic) A nice printable HTML works as good as custom PDF, but can be achieved sooner * [BluePrintImporter PDF Importer?] * Test the XForms controller with component resource to have OCRable forms to collect this info === Rotary Club === Rotary Club are training 750-1000 volunteers to collect data. ==== Structure ==== {{{ district 3271 is South, i.e. Sindh and Balochistan Of which I am a part, and the 3273, which is Punjab and Pakhtoonkha }}} * There is district management, all volunteers, around 20-25 to look after our district * 200 clubs * each with 20+ members working in their specific geographic location ==== Requirements ==== First reponsibility for all of them to arrange donations, buy food stuff, medicines etc and report to the district officials and then ship them to locations - preferably to one of the club in that area if not then to Red Crescent and the NCHD and then some other NGOS. * Assessments * Inventory management: Distributions * buying water purification units and solar lights for the shelters * A little workflow... like if one files requests, they retired too, upon fulfilment * SMS * flood reports and requests for supplies * shelter registration 1. We should be able to register volunteers, and assign them to geographic regions. This would help us query and know the number of people working in each geographic area. 2. Volunteers belonging to a group (like geographic area) could then be sent messages via SMS service. So an interface to let us do that that would be great. 3. When our volunteers go out, they would enter data about the status of inventory at their locations, and items required urgently. They would also be able to update the status of a shelter, in that they may setup a place as a shelter and provides its Lon/Lat, or they may remove a place as shelter for it may have been inundated too. 4. We want to record damages to people/life, and property. Currently, we can record life losses in Incident Reporting, while property losses can be registered in Situation Reports & Assessments. 5. We can also record loss to farm animal and cattle. There could be (a) field(s) to do that. Instead of going for a table of animal and then entering the number of lost animals, we could give an open text field. 6. We want to see the Situations, Assessments, Schools and Flood Reports to be visible on the map as well. Can that be done? 7. We would love to see an option where we could define a warehouse/shelter/school, where we could mention the inventory available there, and their count. This feature is available in Agasti. If provided, our volunteers would be able to trace themselves the items they need and where they are placed. 8. Missing Persons: * When adding a new missing person, we would need to provide his hometown (from where he was lost) and the location of his residence. Like someone could be missing from a camp/shelter in Peshawar, while his residence would be in Swat. * When reporting a missing person, we should be able to provide his photo too. This should be optional. * An option should be there, like a status/flag, to tell if the person has been found. Additional information like “where from” would be an added plus, but not essential. 9. When entering a shelter or inventory, we would like to identify the city/location where it is located. This is the first anchor of reference. Also, we should be allowed to (optionally) provide coordinates, or point the location on the map. That way, it should be visible on the map when someone takes a view of the map with shelter, inventory and incident overviews. This would be very helpful. 10. Since I can see the situation and incidents are different in the system, “Situation” should also be available in the map overlays. ==== Sync ==== Want to be able to collect data on offline laptops & sync to base * This means that the schema for this module is pretty fixed as we can't update remote laptops * Extra data can be incoporated into comments fields for transferring to new optional fields centrally by-hand * Can still develop UI tweaks to ease data entry (just won't be visible to remote laptops): Labels/Help * Can still develop Reporting functionality * Can still develop other modules * Power may be an issue, so best to have printed copies of the Assessment Tool as well * Sync process should be tested thoroughly (even if kept to a very simple Data upload facility) * UserGuidelinesSynchronisation * BluePrintSynchronisation ==== SMS ==== * Outbound to alert teams (working with a local telco to get details) * SMS inbound for them to report incidents (separate to the general public whose reports we can pull from Ushahidi so can use the general shortcode) * UserGuidelinesMsg * BluePrintMessagingModule * !MessageUser role to control access to Outbound SMS * Turn the shn_list_of_nations() in 00_utils.py into a Storage() & add Country Dialling Codes * Deployment setting to control dialling profixes from response.s3.countries == After Action Notes == === Move to deployment_settings control: === * ~~Locations Hierarchy~~ * Languages (For Local Location Names & Language Bar (inc basic bar on/off) * Enable ACLs (e.g. DVI, Editor, ~~!MapAdmin~~) * Security Policy, etc from s3_setting table * RSS Feeds * Enabling Autocompletes (they're unnecessary for small deployments, but critical for big ones) * Need to complete !WebSetup! * Deployment Views need to be able to be more easily customised separately from core * Provide a separate views_deployment folder which has all views checked-in &, where-used, uses that instead * More use of customisable rheaders? === Autocompletes === * Define the autocompletes within the reusable fields like person_id & location_id * part of the rework to make them more reusable through get_location_id() === Popups === * Replace colorbox with Ext popups? === Updates === Currently we use the 'comments' textarea to record updates to a record. Possible alternatives: * Threaded Discussions Plugin: http://www.web2py.com/plugins/default/comments * An 'updates' component resource tab * Keeping a full copy of each version of the record (e.g. accessible via tabs) === Mapping === * Feature Classes should be mappings of Resources to Markers (via Symbology) * This makes them available to KML/GeoRSS/GPX feeds (need to rework XSLT for Markers) * gis.get_marker() * s3xrc.py gis_encode() * Feature Layers * Expose to Catalogue: Not urgent for Pak! * Menu * define_map() (controllers/gis.py) * zzz_1st_run.py * Feeds (the section in gis/index should be auto-populated by those we display in the viewer) * Add Filters (e.g. L1 for Provinces) * See if we can convert Mapping API to use a JS file in static which is merged with a bunch of JS vars written out in views * (working towards this slowly anyway within s3gis) * makes it faster to develop since no need to keep restarting server for module changes * makes it easier for OL devs to help out without needing to understand Python * May be hard due to so many different options available to us! * Break it up into snippets again... * Clustering * Cluster across Vector types (needed for changing filters without map-refresh anyway) * Can we just use allLayers for this? * Major rewrite? Do at same time as porting to JS with vars? (along with the refreshing of Vector layers without full server reload) * Refactor to reduce code output * Markers loaded only once/image * array of images to cache/resize at beginning (global with handles) * onFeatureSelect() merged with KML/GeoRSS versions? === Tidy-up Code === * Move s3msg to being instantiated in 00_db.py * move DB calls out of init into a get_config() function * Rename javascript functions to s3_* to keep them tidy in the DOM * S3MultiselectWidgetAddClick * S3MultiselectWidgetDeleteClick * StatusBar * tb_remove * s3_gis_* for GIS ones * ~~convertDD~~ * ~~convertFillback~~ * ~~convertGps~~ * viewMap * viewMapMulti * loadClusterPopup * onFeatureUnselect * onPopupClose * tooltipSelect * tooltipUnselect * zoomToSelectedFeature * Rename javascript variables to S3.* to keep them tidy in the DOM * {{{table}}} should always refer to a Table() object, {{{tablename}}} to a string * remove r=request from URL() calls (new web2py) * remove Tstr (new web2py) * Use title on 'Add XXX' to provide useful help - complementary to Help text on the Help button * Help button text should include how to use autocompletes. * {{{resource}}} should always refer to a S3Resource object, use {{{prefix}}} and {{{name}}} instead of {{{module}}} and {{{resource}}} * Move utility functions from {{{controllers/bulk_gis.py}}} to {{{controllers/importer.py}}} === Bigger Features === * Cache Permission Checks * Make Index pages (& a space inside rheaders of other pages) into Wikis so that Editors can edit online docs more easily * Embed Potlatch & Wikipedia pages so that edits of this kind of data can be done 'upstream' in common sources ---- [wiki:Pakistan]