{ "info": { "author": "edX", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "edx-milestones [![Build Status](https://travis-ci.org/edx/edx-milestones.svg?branch=master)](https://travis-ci.org/edx/edx-milestones) [![Coverage Status](https://img.shields.io/coveralls/edx/edx-milestones.svg)](https://coveralls.io/r/edx/edx-milestones?branch=master)\n===================\n\nedx-milestones (`milestones`) is a Django application which manages significant Course and/or Student events in the Open edX platform.\n\nUsage\n-----\n* A Milestone represents an event which can occur for a student while interacting with the Open edX platform.\n\n* Relationships can be created between courses or individual sections of course content (referred to collectively as course entities going forward) and a Milestone. A relationship can indicate that a course entity either requires or fulfills a given Milestone.\n\n* Student milestone fulfillment status can be recorded and queried.\n\n* An example feature which Milestones supports is Pre-requisite Courses:\n * Course author selects Course 101 in Studio as a pre-requisite of Course 102\n * Studio:\n * Makes call to Milestones service API\n * Milestones:\n * Creates a new generic Milestone A for Course 101\n * Indicates that Course 101 fulfills Milestone A\n * Indicates that Course 102 requires Milestone A\n * Student Smith completes Course 101\n * LMS:\n * Makes call to Milestones service API\n * Milestones:\n * Pulls the list of milestones fulfilled by Course 101 (set includes Milestone A)\n * Indicates that Student Smith has accomplished Milestone A\n * Student Smith attempts to access Course 102\n * LMS:\n * Uses Milestones service API to compare Course 102 milestone requirements against Student Smith's milestones\n * Grants Student Smith access to Course 102\n\nStandalone Testing and Quality Check\n------------------------------------\n\n $ make quality\n $ make test\n\nOpen edX Platform Integration\n-----------------------------\n* Add desired tag from github code repository\n * edx-platform/requirements/github.txt\n * \"Our libraries\" section\n* Add 'milestones' to the list of installed apps:\n * common.py\n * Feature flag convention is preferred\n* In edx-platform devstack:\n * pip install -r requirements\n * paver test_system -s lms\n\n\nHow to Contribute\n-----------------\nContributions are very welcome, but please note that edx-milestones is currently an\nearly stage work-in-progress and is changing frequently at this time.\n\nSee our\n[CONTRIBUTING](https://github.com/edx/edx-platform/blob/master/CONTRIBUTING.rst)\nfile for more information -- it also contains guidelines for how to maintain\nhigh code quality, which will make your contribution more likely to be accepted.\n\n\nReporting Security Issues\n-------------------------\nPlease do not report security issues in public. Please email security@edx.org.\n\n\nMailing List and IRC Channel\n----------------------------\nYou can discuss this code on the [edx-code Google Group](https://groups.google.com/forum/#!forum/edx-code) or in the\n`edx-code` IRC channel on Freenode.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/edx/edx-milestones", "keywords": "", "license": "AGPL", "maintainer": "", "maintainer_email": "", "name": "edx-milestones", "package_url": "https://pypi.org/project/edx-milestones/", "platform": "", "project_url": "https://pypi.org/project/edx-milestones/", "project_urls": { "Homepage": "https://github.com/edx/edx-milestones" }, "release_url": "https://pypi.org/project/edx-milestones/0.2.3/", "requires_dist": [ "six", "Django (<2.0,>=1.11)", "edx-opaque-keys (>=0.2.1)", "django-model-utils" ], "requires_python": "", "summary": "Significant events module for Open edX", "version": "0.2.3" }, "last_serial": 5397291, "releases": { "0.1.11": [ { "comment_text": "", "digests": { "md5": "3663b4ab7bf0bf5b1228bed394f4b2a2", "sha256": "f976888dafa003fd7f5e5dd088c26de2e544ffdb3d15abc57ea718d9b5b81c3a" }, "downloads": -1, "filename": "edx_milestones-0.1.11-py2-none-any.whl", "has_sig": true, "md5_digest": "3663b4ab7bf0bf5b1228bed394f4b2a2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 28764, "upload_time": "2018-02-12T21:36:25", "url": "https://files.pythonhosted.org/packages/74/fb/87bcd2d074ce475090501e85d8f7ac0bb02496d84a89838c7a8e3ad8a4bc/edx_milestones-0.1.11-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a46b7d78b1c17b0e1048ec30a55d1e2f", "sha256": "1a6107d51dd6df2804b1f15d76810d47fbad73e7d03b50ae0a0ef0f487230762" }, "downloads": -1, "filename": "edx-milestones-0.1.11.tar.gz", "has_sig": true, "md5_digest": "a46b7d78b1c17b0e1048ec30a55d1e2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32619, "upload_time": "2018-02-12T21:36:27", "url": "https://files.pythonhosted.org/packages/de/c4/ec4839892b6962cac1e04f271b2c80c88dc08a02b1ac81c6fe2ae2e3e729/edx-milestones-0.1.11.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "58a24843bee208013cdd42dfce8eb231", "sha256": "0eb2d7b69efc2d3a5cdc3d4a07eec16f09deba960b4320104be75a6adee62309" }, "downloads": -1, "filename": "edx_milestones-0.1.13-py2-none-any.whl", "has_sig": false, "md5_digest": "58a24843bee208013cdd42dfce8eb231", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 28764, "upload_time": "2018-02-13T16:29:49", "url": "https://files.pythonhosted.org/packages/64/39/148b1dac4fffb270fe28d9c71595eca6ccd17840f62332e62569eec86a17/edx_milestones-0.1.13-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4b0444edde131960ca2128a0b9205c3", "sha256": "fa1c1ede292cf0dfd0615897495047104a3a08b51b285c2f71cd2f25ee69115e" }, "downloads": -1, "filename": "edx-milestones-0.1.13.tar.gz", "has_sig": false, "md5_digest": "f4b0444edde131960ca2128a0b9205c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32312, "upload_time": "2018-02-13T16:29:50", "url": "https://files.pythonhosted.org/packages/80/cc/0cfa32639398ba280f93f43312e216968c3e66405ff2c55c66d09afb034b/edx-milestones-0.1.13.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "2c109cfa7e31b6814ca5104ad09d65ad", "sha256": "e432b368c832adb69aa4e3954c41aa87112d78403feb1a6e11f4cd3ae981c6f4" }, "downloads": -1, "filename": "edx_milestones-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2c109cfa7e31b6814ca5104ad09d65ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 39659, "upload_time": "2019-06-06T16:09:13", "url": "https://files.pythonhosted.org/packages/02/37/8e75fa22c6eb0796183db027d11a561f39af8a0562814ea755854336d5d8/edx_milestones-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aaeda4a576620fa43a5ebafb72335c2d", "sha256": "8062e86fb7423fd6307475b16373a88c4c1af268b4b9504752e2a6cae614fc0f" }, "downloads": -1, "filename": "edx-milestones-0.2.1.tar.gz", "has_sig": false, "md5_digest": "aaeda4a576620fa43a5ebafb72335c2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32209, "upload_time": "2019-06-06T16:09:15", "url": "https://files.pythonhosted.org/packages/0f/74/1291f4c9f296ecdc86c687aa7dd2099107d330f9acd7f969f5dc31a5e7a5/edx-milestones-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "7cd31b427d531cab34582d1928ebca72", "sha256": "2ab94a634463dd89ae0085fa0dea42454e9446bd92717e9d95ca6539ef446094" }, "downloads": -1, "filename": "edx_milestones-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7cd31b427d531cab34582d1928ebca72", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 39661, "upload_time": "2019-06-06T16:35:08", "url": "https://files.pythonhosted.org/packages/00/5f/8a57035ce48974009c2edbbd59634d4a43ccf07f65b74a1f38dd8a0a05f4/edx_milestones-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5028f9d2ad5fe176db0f23e354865eab", "sha256": "3e6a35aee2db447e08d5e959d4904081b20187b1d8c6c75ef332f24551e2920a" }, "downloads": -1, "filename": "edx-milestones-0.2.2.tar.gz", "has_sig": false, "md5_digest": "5028f9d2ad5fe176db0f23e354865eab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32211, "upload_time": "2019-06-06T16:35:10", "url": "https://files.pythonhosted.org/packages/e5/c6/5820aae4efb1a88bf6693f38a543790e17c626ca19a923d8b13b4f039ce6/edx-milestones-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "058c53d320b3707cf29674b6619f07d1", "sha256": "2bf4e013670232cab9659775e0d33e3f9a2e7a41be00a41814c7ea88a0b71d68" }, "downloads": -1, "filename": "edx_milestones-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "058c53d320b3707cf29674b6619f07d1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 39661, "upload_time": "2019-06-13T18:42:07", "url": "https://files.pythonhosted.org/packages/14/f3/648d0b414a0c8d97cc4fe0e8d8edfa501841e8050d250c1f35208d6ac4b5/edx_milestones-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1276f2453d77d89f94979d1c60fbd49b", "sha256": "2009d3ffa33089b0d7bfa5ea8b23ed1de7354c3317be3085c2919d28b696282d" }, "downloads": -1, "filename": "edx-milestones-0.2.3.tar.gz", "has_sig": false, "md5_digest": "1276f2453d77d89f94979d1c60fbd49b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33611, "upload_time": "2019-06-13T18:42:09", "url": "https://files.pythonhosted.org/packages/58/6c/aab7fa2ed888d0008d4c8859af349244982238960adc4fb4032e48fdb6c5/edx-milestones-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "058c53d320b3707cf29674b6619f07d1", "sha256": "2bf4e013670232cab9659775e0d33e3f9a2e7a41be00a41814c7ea88a0b71d68" }, "downloads": -1, "filename": "edx_milestones-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "058c53d320b3707cf29674b6619f07d1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 39661, "upload_time": "2019-06-13T18:42:07", "url": "https://files.pythonhosted.org/packages/14/f3/648d0b414a0c8d97cc4fe0e8d8edfa501841e8050d250c1f35208d6ac4b5/edx_milestones-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1276f2453d77d89f94979d1c60fbd49b", "sha256": "2009d3ffa33089b0d7bfa5ea8b23ed1de7354c3317be3085c2919d28b696282d" }, "downloads": -1, "filename": "edx-milestones-0.2.3.tar.gz", "has_sig": false, "md5_digest": "1276f2453d77d89f94979d1c60fbd49b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33611, "upload_time": "2019-06-13T18:42:09", "url": "https://files.pythonhosted.org/packages/58/6c/aab7fa2ed888d0008d4c8859af349244982238960adc4fb4032e48fdb6c5/edx-milestones-0.2.3.tar.gz" } ] }