{"action":"created","issue":{"url":"https://api.github.com/repos/AIFDR/inasafe/issues/2206","labels_url":"https://api.github.com/repos/AIFDR/inasafe/issues/2206/labels{/name}","comments_url":"https://api.github.com/repos/AIFDR/inasafe/issues/2206/comments","events_url":"https://api.github.com/repos/AIFDR/inasafe/issues/2206/events","html_url":"https://github.com/AIFDR/inasafe/issues/2206","id":102378069,"number":2206,"title":"Minimum Needs Tool - UI","user":{"login":"Charlotte-Morgan","id":5743135,"avatar_url":"https://avatars.githubusercontent.com/u/5743135?v=3","gravatar_id":"","url":"https://api.github.com/users/Charlotte-Morgan","html_url":"https://github.com/Charlotte-Morgan","followers_url":"https://api.github.com/users/Charlotte-Morgan/followers","following_url":"https://api.github.com/users/Charlotte-Morgan/following{/other_user}","gists_url":"https://api.github.com/users/Charlotte-Morgan/gists{/gist_id}","starred_url":"https://api.github.com/users/Charlotte-Morgan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Charlotte-Morgan/subscriptions","organizations_url":"https://api.github.com/users/Charlotte-Morgan/orgs","repos_url":"https://api.github.com/users/Charlotte-Morgan/repos","events_url":"https://api.github.com/users/Charlotte-Morgan/events{/privacy}","received_events_url":"https://api.github.com/users/Charlotte-Morgan/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/AIFDR/inasafe/labels/Paper%20cut","name":"Paper cut","color":"f7c6c7"}],"state":"open","locked":false,"assignee":{"login":"timlinux","id":178003,"avatar_url":"https://avatars.githubusercontent.com/u/178003?v=3","gravatar_id":"","url":"https://api.github.com/users/timlinux","html_url":"https://github.com/timlinux","followers_url":"https://api.github.com/users/timlinux/followers","following_url":"https://api.github.com/users/timlinux/following{/other_user}","gists_url":"https://api.github.com/users/timlinux/gists{/gist_id}","starred_url":"https://api.github.com/users/timlinux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timlinux/subscriptions","organizations_url":"https://api.github.com/users/timlinux/orgs","repos_url":"https://api.github.com/users/timlinux/repos","events_url":"https://api.github.com/users/timlinux/events{/privacy}","received_events_url":"https://api.github.com/users/timlinux/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/AIFDR/inasafe/milestones/27","html_url":"https://github.com/AIFDR/inasafe/milestones/Version%203.2","labels_url":"https://api.github.com/repos/AIFDR/inasafe/milestones/27/labels","id":741634,"number":27,"title":"Version 3.2","description":"Freeze 21 August\r\nActual release day 4 September\r\n\r\n# Implementation\r\n\r\n- [x] **high priority** - OOP  Impact Functions - second level inheritance - Rizky\r\n- [x]   **High Priority** metadata as ISO 19115 XML - Marco\r\n- [x] **Low priority** - Land cover impact function implementation (implemented as a generic IF) - Martin\r\n- [x] **High priority** - Soft coding attribute selection for exposure and hazard data (move to layer keywords) - @akbar / @ismailsunni\r\n  * by keywords e.g. user defines a keyword which indicates which column contains type - @ismailsunni\r\n- [ ] Prompt user to update keywords if no version: tag exists - @cchristelis\r\n- [x] Improve analysis area selection - @ timlinux (#1811)\r\n- [ ] implement IF progress callbacks - @timlinux\r\n- [x] **High Priority** - Initial InaWARE / PDC integration requirements specification - deferred from 3.1\r\n- [x] Identify generic GIS functionality and port to QGIS - Martin\r\n- [x] Improved raster resampling implementation  / tool - Martin\r\n- [x] Generic impact functions - Ismail\r\n- [x] Network analysis on OSM roads - Etienne\r\n- [x]  Support downloading political boundaries with OSM downloader - Etienne\r\n- [x] Support downloading potential IDP camps with OSM downloader - Etienne\r\n- [x] Support for user input to minimum needs (done), post processors & aggregation to use new style parameters - Jannes\r\n- [ ] Generic impact functions implemented as ContinuousRHContinuosRE IF, ContinuousRHClassifiedVE etc - finalise - Rizky\r\n- [ ] **Low priority** - People in buildings impact function based on PIB assignment tool from 3.1\r\n- [x] **high priority** - Add population and roads reporting mixins to new IF's - Christian\r\n- [ ] Implementation of new A3 template (e.g. https://cloud.githubusercontent.com/assets/8871958/7410837/beea7806-ef5c-11e4-87cd-fd6014c16778.jpg)  -Borys\r\n\r\n\r\n\r\n# Web\r\n\r\n- [ ] Initial implementation of realtime Django APP (with pager style reporting) - Akbar / Rizky carried over from 3.1\r\n- [ ] Deployment of GeoNode instance for InaSAFE - Gavin\r\n- [ ] Theming of all InaSAFE web properties according to styles guidelines - Maria\r\n- [ ] InaSAFE Realtime (Rizky and Christian):\r\n    * docker container inasafe\r\n    * internal api for docker\r\n    * external api for docker\r\n        * cli\r\n        * python api\r\n    * django project\r\n    * adapter for django app to call and run InaSAFE jobs in docker using python api\r\n    * app for django app to display events in tabular and map form\r\n    * rest api for django app to fetch events programmatically\r\n    * adapter for django to go off and poll for updates from feeds\r\n    * rest API for feeds that push rather than need to be pulled\r\n    * wrapper for different supported feeds (we will need to implement on a case by case basis)\r\n\r\n![Realtime architecture](https://s3-eu-west-1.amazonaws.com/uploads-eu.hipchat.com/35909/249331/oTjZfsa9raWc4hY/RealtimeDjango%20-%20Data%20Model%20%281%29.png)\r\n\r\n- [ ] Extension to PDC / InAWARE support publishing reports to InAWARE (need to clarify if this is push from desktop or push from realtime) - Rizky\r\n","creator":{"login":"Charlotte-Morgan","id":5743135,"avatar_url":"https://avatars.githubusercontent.com/u/5743135?v=3","gravatar_id":"","url":"https://api.github.com/users/Charlotte-Morgan","html_url":"https://github.com/Charlotte-Morgan","followers_url":"https://api.github.com/users/Charlotte-Morgan/followers","following_url":"https://api.github.com/users/Charlotte-Morgan/following{/other_user}","gists_url":"https://api.github.com/users/Charlotte-Morgan/gists{/gist_id}","starred_url":"https://api.github.com/users/Charlotte-Morgan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Charlotte-Morgan/subscriptions","organizations_url":"https://api.github.com/users/Charlotte-Morgan/orgs","repos_url":"https://api.github.com/users/Charlotte-Morgan/repos","events_url":"https://api.github.com/users/Charlotte-Morgan/events{/privacy}","received_events_url":"https://api.github.com/users/Charlotte-Morgan/received_events","type":"User","site_admin":false},"open_issues":46,"closed_issues":37,"state":"open","created_at":"2014-08-04T05:56:54Z","updated_at":"2015-08-21T13:27:43Z","due_on":"2015-09-03T22:00:00Z","closed_at":null},"comments":1,"created_at":"2015-08-21T13:16:31Z","updated_at":"2015-08-21T14:38:38Z","closed_at":null,"body":"The Minimum Needs Tool has a title of Minimum Needs Calculator. \n\nThe minimum needs tool - OK button is active even if no data are selected. Clicking ok returns a python error \n```\nAn error has occured while executing Python code:\n\n\nTraceback (most recent call last):\n  File \"C:/Users/localadmin/.qgis2/python/plugins\\inasafe\\safe\\gui\\tools\\minimum_needs\\needs_calculator_dialog.py\", line 211, in accept\n    file_name = layer.source()\nAttributeError: 'NoneType' object has no attribute 'source'\n\n\nPython version:\n2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)]\n\n\nQGIS version:\n2.8.3-Wien Wien, 313a6bc\n\nPython path: ['C:/Users/localadmin/.qgis2/python/plugins\\\\processing', 'C:/PROGRA~1/QGISWI~1/apps/qgis-ltr/./python', u'C:/Users/localadmin/.qgis2/python', u'C:/Users/localadmin/.qgis2/python/plugins', 'C:/PROGRA~1/QGISWI~1/apps/qgis-ltr/./python/plugins', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\matplotlib-1.3.1-py2.7-win-amd64.egg', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\nose-1.3.3-py2.7.egg', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\tornado-4.0.1-py2.7-win-amd64.egg', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\backports.ssl_match_hostname-3.4.0.2-py2.7.egg', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\certifi-14.05.14-py2.7.egg', 'c:\\\\osgeo4~1\\\\apps\\\\python27\\\\lib\\\\site-packages\\\\python_dateutil-2.1-py2.7.egg', 'c:\\\\osgeo4~1\\\\apps\\\\python27\\\\lib\\\\site-packages\\\\six-1.3.0-py2.7.egg', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\bin\\\\python27.zip', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\DLLs', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\plat-win', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\lib-tk', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\bin', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\PIL', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\jinja2-2.7.2-py2.7.egg', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\markupsafe-0.23-py2.7-win-amd64.egg', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\pytz-2012j-py2.7.egg', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\win32', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\win32\\\\lib', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\Pythonwin', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\Shapely-1.2.18-py2.7-win-amd64.egg', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\six-1.3.0-py2.7.egg', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\wx-2.8-msw-unicode', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\xlrd-0.9.2-py2.7.egg', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\xlwt-0.7.5-py2.7.egg', u'C:/Users/localadmin/.qgis2//python', 'C:/Users/localadmin/.qgis2/python/plugins\\\\inasafe', 'C:\\\\Users\\\\localadmin\\\\.qgis2\\\\python\\\\plugins\\\\inasafe\\\\safe_extras\\\\parameters', 'C:\\\\Users\\\\localadmin\\\\.qgis2\\\\python\\\\plugins', 'C:\\\\Users\\\\localadmin\\\\.qgis2\\\\python\\\\plugins\\\\inasafe\\\\safe_extras', 'C:\\\\PROGRA~1\\\\QGISWI~1\\\\apps\\\\qgis-ltr\\\\python\\\\plugins\\\\fTools\\\\tools']\n```\n\n# Proposed solution \nmake tool name and title the same\ndisable the ok button until data are loaded"},"comment":{"url":"https://api.github.com/repos/AIFDR/inasafe/issues/comments/133447489","html_url":"https://github.com/AIFDR/inasafe/issues/2206#issuecomment-133447489","issue_url":"https://api.github.com/repos/AIFDR/inasafe/issues/2206","id":133447489,"user":{"login":"timlinux","id":178003,"avatar_url":"https://avatars.githubusercontent.com/u/178003?v=3","gravatar_id":"","url":"https://api.github.com/users/timlinux","html_url":"https://github.com/timlinux","followers_url":"https://api.github.com/users/timlinux/followers","following_url":"https://api.github.com/users/timlinux/following{/other_user}","gists_url":"https://api.github.com/users/timlinux/gists{/gist_id}","starred_url":"https://api.github.com/users/timlinux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timlinux/subscriptions","organizations_url":"https://api.github.com/users/timlinux/orgs","repos_url":"https://api.github.com/users/timlinux/repos","events_url":"https://api.github.com/users/timlinux/events{/privacy}","received_events_url":"https://api.github.com/users/timlinux/received_events","type":"User","site_admin":false},"created_at":"2015-08-21T14:38:38Z","updated_at":"2015-08-21T14:38:38Z","body":"Ok I have fixed this in these commits:\r\n\r\n* 9025785 - Disable ok button in minimum needs calculator if no suitable layers loaded\r\n* 71539d0 - Added some more sanity checking on minimum needs calculator so that it only shows fields from the selected record that are not strings - and disables the run button if a given layer has not valid fields\r\n* e4d38d9 - Fixes dialog help text\r\n\r\nFix will be applied when resources PR is merged in #2199 "}}