Version 208 (modified by 11 years ago) ( diff ) | ,
---|
Table of Contents
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
Join the Mailing List & Chat channel to join the community - we'll gladly help you along the way:)
Please feel free to fix any of these:
Feature Requests
Homepage
* Main ideas / purpose
- The homepage should be a portal for
- People to understand what's going 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 communicate with NPO/relief orgs/publics
- Connection with forum of Sahana-eden, Sahana-pakistan-2010, Pakistan wiki
* Draft design Draft Homepage for Pakistan Sahana Eden
Localisation
- We need the strings translating to Urdu
- Need to add the text from the custom views on the live site
- We need to amend places with blocks of text broken up (e.g. to remove HTML markup) to include an 'if rtl'/'else' on the order
- We need to specify the 'Submit' buttons label explicitly to pass it into T()
- We need to Localise
static/img/help_on.gif
&help_off.gif
We need to set a global variable for RTL based on language choice:response.s3.rtl
easiest is to add a simple lookup table for RTL languages inmodels/00_settings.py
(if not in table then assume LTR)
This variable should be read to alter:
The text should all be right-justified (currently body has direction: ltr; in sahana.css We can change this globally with a theme but we need it dynamic per language)Form Labels should be put to the right of the INPUT boxes (& comments to the left): alternate RTL s3_formstyle in(No need - all handled automatically :) )models/00_settings.py
Should first complete #622 & then handle the variant & align the label
colon should be to the left of the label: (static/scripts/s3/labels.js
) should read a global javascript variable set inviews/sahana_scripts_min.html
&sahana_scripts_debug.html
Requests Management
- #495: Request Priority level .represent doesn't work nicely in a Popup (done)
- 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: BluePrint/Inventory
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
- Water FeatureClass is there in the Programme FeatureGroup, so can be added already although a nicer UI would be great
Data
- Import Locations
- L0 (Country): Done (using PakGIS data)
- L1 (Province/Territory): Done (using PakGIS data)
- L2 (District): Available (using PDC data)
- L3 (Tehsil/City District): Available (using PDC data)
- L4 (Union Council): tbc: Use Wikipedia (etc) for Hierarchy/Points. Place in hierarchy using intersection calculations (see import_geonames() in modules/s3gis.py)
- L5 (Village): tbc: Use Geonames for Points (which is sufficient).
- L1-L3 Polygons: http://pakgis.blogspot.com/2009/07/vector-datasets_22.html
- L3 requires a manual request, which we've done & been granted access
- L1-L3 Polygons: http://ags.pdc.org/rest/services/Pakistan/PAKISTAN_FLOOD/MapServer/30
- 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
- L1-L3 Polygons: http://pakgis.blogspot.com/2009/07/vector-datasets_22.html
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
- GeoServer/PostGIS now installed & serving the PDC data in 900913. Any additional data sets can easily be added.
Style the L3 data: Transparency, Labels- Add a Legend (esp for Flood Extent)
- Add WFS support to Sahana (not too hard to add layers manually - copy basics from WMS)
- GeoServer/PostGIS now installed & serving the PDC data in 900913. Any additional data sets can easily be added.
- 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 accessible to us (either in WMS Browser or manually) since it's in 4326/54004 & we consume 900913
- Have downloaded data via WFS & now serving by our own GeoServer
- Alternate options were:
- Install MapProxy to reproject
- Get a set of OSM tiles in 4326!
- Not accessible to us (either in WMS Browser or manually) since it's in 4326/54004 & we consume 900913
- http://agsprod.pdc.org/arcgis/Pakistan/PAKISTAN_FLOOD/MapServer/WFSServer?request=GetCapabilities&service=WFS
- 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
- http://www.un-spider.org/pakistan-floods
- http://groups.google.com/group/PakReport-volunteers/web/mapping-links
- http://ags.pdc.org/rest/services/Pakistan/PAKISTAN_FLOOD/MapServer
Locations Selector
Map-based Selector
- 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?
- Set Map's Draw tool to depressed dynamically in Update forms if no Lat/Lon yet specified
- 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 (Feature Markers) & be able to select them as an alternative to placing a new Marker (nice message saying 'Do you mean...)
- Add the Draw Tool to the main map - when a new marker is placed, provide a popup form to select which type of resource is being added & then open up the full form for that resource in an extra tab with the location Lat/Lon pre-populated (& hierarchy if we have polygons!)
- Update screen Marker should be in the same layer & replaced by the create feature tool
Hierarchical Autocomplete for Locations
- #502
- If an Lx is selected in Autocomplete then load the appropriate dropdown (& any above it) & put this in there
- freeing up the Name field again for a sub-location
- When saving a Create form & it fails validation then lose our location_id setting
- The Add Location popup should only download the correct value for 'parent' (not entire list) if we're going to set/hide anyway
- A user might wish to select an existing location & then amend the hierarchy!
- make people do this via the 'Locations' menu? (Give them Help on this?)
- Check whether fields are readable/writable (e.g. addr_street may need to be hidden from some modules)
- Add robustness by checking L0 isSelectBox()
- Add Geocoder support
- Add DrawTool icon in help (like is already there in the Location Update form)
- Use subheadings CSS instead of ASCII ----
- Download hierarchy levels to a Store in the background to improve performance?
- shn_read/shn_list - replace existing system in read/list? (consistency & ease of maintenance)
Update form: Hierarchy needs populating from old recordInclude a Search box underneath the hierarchy which is an Autocomplete filtered to the appropriate level that we've already selectedFormat 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?)Changing things in higher levels should clear lower levels?Handle the case where we link to a general Lx Location record & which we now refine to add a Street Address or Lat/Lonwe 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)
- Don't display Lat/Lon for Admin levels (Lx)?
if shn_has_role(MapAdmin): Provide an 'Add Location' option next to each level of hierarchyL1-L2 Levels shouldn't be editable by non-MapAdmins (& should be auto-selected by MapAdmins)- Include the functionality in
views/gis/location_autocomplete.js
inside the definition of the 'location_id' reusable field- Although don't use get_location_id() as this slows down the model, instead make it a class instead of a function so you can manipulate the attributes and instantiate once in a lambda
De-duplicator
e.g. Karachi
- Should show the distance between them
- Add Marker to the Map displays (this is a more-generally useful fix. Should we replace that Map with Ext one, though?)
- different colour markers on thse same map would be ideal!
- Option to Merge records would be nice!
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 <Resource type> - <date?> <Resource type> - <date?> <Resource type> - <date?> Location B <Resource type> - <date?> <Resource type> - <date?> <Resource type> - <date?> If there is more than one location listed include: "Zoom in for detail"
- Better still:
Printing
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?
We have a basic print.css which means that the normal browser Print functionality gives a reasonable print.
- Should we hint to go into Landscape mode?
We want the Legend inside the Ext window - ideally able to hover & be moved to a place where it doesn't obstruct anything key: #499
We could also really use a 'Zoom to Location' feature: #655
- Autocomplete box to search our internal Locations (filter out level='XX', as-usual. See views/gis/location_autocomplete.js for an example)
- Upon selection it zooms to the Bounds (if Polygon) or just the Center with zoom+2 (if Point)
- This could initially replace the Geonames searchCombo, but later it would be ideal if the search 1st checked our internal features &, if that fails, then search Geonames/Google/Yahoo geocoders
For WMS layers which we serve via our own GeoServer, we can refine the DPI output for these requests:
Previously we have investigated these approaches:
- Print to PDF via Java Applet
- print to Image file by converting PDF to Image
- However this will only be able to see Feature Layers exposed as web services (KML/GeoRSS) & it is hard to get detailed control of the output.
- trying to integrate a screen capture tool into the browser, e.g. using Flash or Java, but haven't found anything suitable yet.
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 & Sphere Standards
- Automate dynamic requests into RMS?
Assessments
- Complete ECB's Rapid Assessment Tool - add validations: #643
- 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)
- should be using doc_image not irs_iimage
- #508: 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
- Add Graphical Reporting (like the KML on the Map)
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
- 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
<azhar> district 3271 is South, i.e. Sindh and Balochistan <azhar> 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
- 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.
- 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.
- 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.
- 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.
- 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.
- We want to see the Situations, Assessments, Schools and Flood Reports to be visible on the map as well. Can that be done?
- 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.
- 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.
- 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.
- 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)
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 HierarchyLanguages (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)
MGRSMousePointer- highlightControl
- Clustering
- 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()
- Although don't use get_location_id() as this slows down the model, instead make it a class instead of a function so you can manipulate the attributes and instantiate once in a lambda
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)
- Expose to Catalogue: Not urgent for Pak!
- 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)
- Cluster across Vector types (needed for changing filters without map-refresh anyway)
- 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?
- Markers loaded only once/image
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
convertDDconvertFillbackconvertGpsviewMapviewMapMulti- loadClusterPopup
- onFeatureUnselect
- onPopupClose
- tooltipSelect
- tooltipUnselect
- zoomToSelectedFeature
- Rename global javascript variables to S3.* to keep them tidy in the DOM
- non-global should be s3_*
table
should always refer to a Table() object,tablename
to a string- 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.
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
Attachments (1)
-
Homepage for Pakistan-Sahana.doc
(333.0 KB
) - added by 14 years ago.
Draft homepage of Pakistan SahanaEden
Download all attachments as: .zip