{ "info": { "author": "Mapping for Change", "author_email": "info@mappingforchange.org.uk", "bugtrack_url": null, "classifiers": [], "description": ".. image:: https://img.shields.io/pypi/v/geokey-airquality.svg\n :alt: PyPI Package\n :target: https://pypi.python.org/pypi/geokey-airquality\n\n.. image:: https://img.shields.io/travis/ExCiteS/geokey-airquality/master.svg\n :alt: Travis CI Build Status\n :target: https://travis-ci.org/ExCiteS/geokey-airquality\n\n.. image:: https://img.shields.io/coveralls/ExCiteS/geokey-airquality/master.svg\n :alt: Coveralls Test Coverage\n :target: https://coveralls.io/r/ExCiteS/geokey-airquality\n\ngeokey-airquality\n=================\n\n`GeoKey `_ extension for `Air Quality `_ functionality.\n\nInstall\n-------\n\ngeokey-airquality requires:\n\n- Python version 2.7\n- GeoKey version 1.6 or greater\n\nInstall the geokey-airquality from PyPI:\n\n.. code-block:: console\n\n pip install geokey-airquality\n\nOr from cloned repository:\n\n.. code-block:: console\n\n cd geokey-airquality\n pip install -e .\n\nAdd the package to installed apps:\n\n.. code-block:: python\n\n INSTALLED_APPS += (\n ...\n 'geokey_airquality',\n )\n\nMigrate the models into the database:\n\n.. code-block:: console\n\n python manage.py migrate geokey_airquality\n\nCopy static files:\n\n.. code-block:: console\n\n python manage.py collectstatic\n\nSetup a Cron job for checking measurements that due to finish by running:\n\n.. code-block:: console\n\n crontab -e\n\nAnd adding:\n\n.. code-block:: console\n\n 15 0 * * * python local_settings/manage.py check_measurements\n\nYou're now ready to go!\n\nUpdate\n------\n\nUpdate the geokey-airquality from PyPI:\n\n.. code-block:: console\n\n pip install -U geokey-airquality\n\nMigrate the models into the database:\n\n.. code-block:: console\n\n python manage.py migrate geokey_airquality\n\nCopy static files:\n\n.. code-block:: console\n\n python manage.py collectstatic\n\nDevelop & Test\n--------------\n\nClone the repository:\n\n.. code-block:: console\n\n git clone git@github.com:ExCiteS/geokey-airquality.git\n\nInstall the extension for development:\n\n.. code-block:: console\n\n cd geokey-airquality\n pip install -e .\n\nAdd the package to installed apps:\n\n.. code-block:: python\n\n INSTALLED_APPS += (\n ...\n 'geokey_airquality',\n )\n\nMigrate the models into the database:\n\n.. code-block:: console\n\n python manage.py migrate geokey_airquality\n\nCopy static files:\n\n.. code-block:: console\n\n python manage.py collectstatic\n\nWhen database structure has changed, make migrations file (migrate after that to alter local database):\n\n.. code-block:: console\n\n python manage.py makemigrations geokey_airquality\n\nRun tests:\n\n.. code-block:: console\n\n python manage.py test geokey_airquality\n\nCheck code coverage:\n\n.. code-block:: console\n\n coverage run --source=geokey_airquality manage.py test geokey_airquality\n coverage report -m --omit=*/tests/*,*/migrations/*\n\nAPI\n---\n\nSign the request with the OAuth access token to authenticate a user.\n\n**Sends a CSV sheet via email:**\n\n.. code-block:: console\n\n GET /api/airquality/sheet/\n\n**Get added projects:**\n\n.. code-block:: console\n\n GET /api/airquality/projects/\n\nResponse:\n\n.. code-block:: console\n\n [\n {\n \"id\": 12,\n \"name\": \"Air Quality in London\"\n }\n ]\n\n**Get personal added locations:**\n\n.. code-block:: console\n\n GET /api/airquality/locations/\n\nResponse:\n\n.. code-block:: console\n\n [\n {\n \"id\": 115,\n \"type\": \"Feature\",\n \"geometry\": {\n // GeoJSON point\n },\n \"name\": \"South Bank\",\n \"created\": \"2015-09-15T09:40:01.747Z\",\n \"properties\": {\n \"height\": 2 // height from ground\n \"distance\": 3.5 // distance from road,\n \"characteristics\": null // site characteristics\n },\n \"measurements\": [\n // a list of measurements\n ]\n }\n ]\n\n**Add new location**\n\n.. code-block:: console\n\n POST /api/airquality/locations/\n\nRequest body:\n\n.. code-block:: console\n\n {\n \"type\": \"Feature\",\n \"geometry\": {\n // GeoJSON point\n },\n \"name\": \"My new location\",\n \"properties\": {\n \"height\": 4.2,\n \"distance\": 7\n }\n }\n\nResponse:\n\n.. code-block:: console\n\n {\n \"id\": 117,\n \"type\": \"Feature\",\n \"geometry\": {\n // GeoJSON point\n },\n \"name\": \"My new location\",\n \"created\": \"2015-09-22T07:22:08.147Z\",\n \"properties\": {\n \"height\": 4.2,\n \"distance\": 7,\n \"characteristics\": null\n },\n \"measurements\": []\n }\n\n**Update your location:**\n\n.. code-block:: console\n\n PATCH /api/airquality/locations/:location_id/\n\nRequest body:\n\n.. code-block:: console\n\n {\n \"type\": \"Feature\",\n \"geometry\": {\n // GeoJSON point\n },\n \"name\": \"My updated location\",\n \"properties\": {\n \"height\": 4.2,\n \"distance\": 12\n }\n }\n\nResponse:\n\n.. code-block:: console\n\n {\n \"id\": 117,\n \"type\": \"Feature\",\n \"geometry\": {\n // GeoJSON point\n },\n \"name\": \"My updated location\",\n \"created\": \"2015-09-22T07:22:08.147Z\",\n \"properties\": {\n \"height\": 4.2,\n \"distance\": 12,\n \"characteristics\": null\n },\n \"measurements\": []\n }\n\n**Delete your location:**\n\n.. code-block:: console\n\n DELETE /api/airquality/locations/:location_id/\n\n**Add new measurement to your location**\n\n.. code-block:: console\n\n POST /api/airquality/locations/:location_id/measurements/\n\nRequest body:\n\n.. code-block:: console\n\n {\n \"barcode\": 145023\n \"called\": \"2015-12-22T07:08:08.121Z\",\n \"started\": \"2015-12-23T09:12:02.247Z\"\n }\n\nResponse:\n\n.. code-block:: console\n\n {\n \"id\": 115,\n \"barcode\": \"145023\",\n \"started\": \"2015-12-23T09:12:02.247Z\",\n \"finished\": null,\n \"properties\": {\n \"results\": null, // measurement results\n \"additional_details\": null // additional details (per measurement)\n }\n }\n\n**Update your measurement:**\n\n.. code-block:: console\n\n PATCH /api/airquality/locations/:location_id/measurements/:measurement_id/\n\nRequest body:\n\n.. code-block:: console\n\n {\n \"barcode\": 145023,\n \"called\": \"2015-12-23T09:22:01.147Z\",\n \"finished\": \"2015-12-23T09:22:01.147Z\",\n \"project\": \"45\",\n \"properties\": {\n \"results\": 64.78,\n \"additional_details\": null\n }\n }\n\nIf \"finished\" is being described, \"called\" should be also present to calculate actual time difference. Otherwise current time will be used.\n\nIf measurement has \"started\", \"finished\" and \"results\" collected, it is still saved until \"project\" is being attached to measurement. When attached, a new contribution gets created, also current measurement is removed completely.\n\nResponse (when no project):\n\n.. code-block:: console\n\n {\n \"id\": 154,\n \"barcode\": \"451001\",\n \"started\": \"2015-11-29T12:01:04.178Z\",\n \"finished\": \"2015-12-23T09:22:01.147Z\",\n \"properties\": {\n \"results\": 64.78,\n \"additional_details\": null\n }\n }\n\n**Delete your measurement:**\n\n.. code-block:: console\n\n DELETE /api/airquality/locations/:location_id/measurements/:measurement_id/", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/ExCiteS/geokey-airquality/tarball/1.2.1", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ExCiteS/geokey-airquality", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "geokey-airquality", "package_url": "https://pypi.org/project/geokey-airquality/", "platform": "", "project_url": "https://pypi.org/project/geokey-airquality/", "project_urls": { "Download": "https://github.com/ExCiteS/geokey-airquality/tarball/1.2.1", "Homepage": "https://github.com/ExCiteS/geokey-airquality" }, "release_url": "https://pypi.org/project/geokey-airquality/1.2.1/", "requires_dist": null, "requires_python": "", "summary": "GeoKey extension for Air Quality functionality", "version": "1.2.1" }, "last_serial": 4448045, "releases": { "1.0.2": [ { "comment_text": "", "digests": { "md5": "6ed6416ad6f29e8456b0f5a14d07ecdf", "sha256": "a2e948ab31d07f76f86b84340b5d7a1b3625dfd20b4c11199d7a7135b6a11e1a" }, "downloads": -1, "filename": "geokey-airquality-1.0.2.tar.gz", "has_sig": false, "md5_digest": "6ed6416ad6f29e8456b0f5a14d07ecdf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19880, "upload_time": "2016-04-18T14:26:00", "url": "https://files.pythonhosted.org/packages/01/ba/65ce9fb24a6064b3d29e318c64cbd3ed4ea39dcabd9a50049feead85703e/geokey-airquality-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "42120291288141e6843bc837009ffe48", "sha256": "7de7a6a25407525ceab991533b2b3413ef484038da0d4e60ddb88484a0773ae5" }, "downloads": -1, "filename": "geokey-airquality-1.1.0.tar.gz", "has_sig": false, "md5_digest": "42120291288141e6843bc837009ffe48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19876, "upload_time": "2016-04-20T09:23:44", "url": "https://files.pythonhosted.org/packages/91/e2/f45996b73b02808382dc21f27270ae6dea70db3ba6f5216c1d5c363cab2e/geokey-airquality-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "982abdd43502aba0542e366e7f0ccb6d", "sha256": "856acc4fb2ea0393adbf722ddeed7fb1f3eede3c0030d5f9726339ba09ef932b" }, "downloads": -1, "filename": "geokey-airquality-1.1.1.tar.gz", "has_sig": false, "md5_digest": "982abdd43502aba0542e366e7f0ccb6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19916, "upload_time": "2016-05-18T11:32:54", "url": "https://files.pythonhosted.org/packages/06/6b/c86acc519f462732ae9881a86b461d6992353b2d6e83016892949a8caa35/geokey-airquality-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "4286034dd815621ded490966d3bd8210", "sha256": "fbe230301fb14d9349f2c562e4195dbb7d9888cfca7d6ae98f1f6895d8c0c38b" }, "downloads": -1, "filename": "geokey-airquality-1.1.2.tar.gz", "has_sig": false, "md5_digest": "4286034dd815621ded490966d3bd8210", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19915, "upload_time": "2016-05-20T12:08:09", "url": "https://files.pythonhosted.org/packages/9e/85/ca6329b8c33ca4338d1f304f26f5cb6aafcb2d8f38960978f0d9715e9796/geokey-airquality-1.1.2.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "b8c1b750d2c6d2fb711a0ae585be85cc", "sha256": "20345b1d3e86b9f313f48d369f8d69b9ef4f3e05ba50c404a65f3719155a2c02" }, "downloads": -1, "filename": "geokey-airquality-1.2.0.tar.gz", "has_sig": false, "md5_digest": "b8c1b750d2c6d2fb711a0ae585be85cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20147, "upload_time": "2016-09-19T16:26:52", "url": "https://files.pythonhosted.org/packages/81/75/30f4ea69e4f8f39d50f3c510575a8ed24e30ebf23a0a0ed58ab3aa25ec9f/geokey-airquality-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "916e6e40100e2ec7c5b30c570f08920c", "sha256": "ba715c2b99feb2b4e2e5dd59e2ce66d24aee82ef1f5c4c153533c2a2dfd38646" }, "downloads": -1, "filename": "geokey-airquality-1.2.1.tar.gz", "has_sig": false, "md5_digest": "916e6e40100e2ec7c5b30c570f08920c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21283, "upload_time": "2018-11-03T19:23:07", "url": "https://files.pythonhosted.org/packages/01/e1/58525b74b7a0fe664f0b292b5c7797cb52656037a4d9aa4d9b02f701e5ff/geokey-airquality-1.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "916e6e40100e2ec7c5b30c570f08920c", "sha256": "ba715c2b99feb2b4e2e5dd59e2ce66d24aee82ef1f5c4c153533c2a2dfd38646" }, "downloads": -1, "filename": "geokey-airquality-1.2.1.tar.gz", "has_sig": false, "md5_digest": "916e6e40100e2ec7c5b30c570f08920c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21283, "upload_time": "2018-11-03T19:23:07", "url": "https://files.pythonhosted.org/packages/01/e1/58525b74b7a0fe664f0b292b5c7797cb52656037a4d9aa4d9b02f701e5ff/geokey-airquality-1.2.1.tar.gz" } ] }