{ "info": { "author": "Charles Severance (Dr. Chuck)", "author_email": "drchuck@learnxp.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "============\nDjango Tsugi\n============\n\nThis is the emerging Tsugi library for Django - https://www.tsugi.org\n\nhttps://pypi.org/project/django-tsugi/\n\nQuick start\n-----------\n\n1. Install\n\n pip install django-tsugi # or pip3\n\n2. Add \"django_tsugi\" to your INSTALLED_APPS and add the keyset url for your\n controlling server in `settings.py` like this::\n\n INSTALLED_APPS = [\n ...\n 'django_tsugi',\n ]\n\n # To set up Tsugi\n TSUGI_KEYSET = \"https://dev1.tsugicloud.org/tsugi/lti/keyset-ext\";\n\n3. Add a line to your application's `urls.py` file to handle launches and\n tell Tsugi which view to redirect to after the launch is successful::\n\n from . import views\n from django_tsugi.views import LaunchView\n\n urlpatterns = [\n path('', views.GradeView.as_view(), name='grade' ),\n path('launch', LaunchView.as_view(), {'success_url' : 'grade'} ),\n ]\n\n4. Add the TsugiMixin to your class based view and it will define\n the `request.tsugi` variable with the user, context, and link\n information::\n\n from django.views import View\n from django_tsugi.mixins import TsugiMixin\n\n class GradeView(TsugiMixin, View):\n\n def get(self, request) :\n context = {'tsugi': request.tsugi}\n return render(request, 'grade/main.html', context)\n\n def post(self, request) :\n grade = float(request.POST.get('grade'))\n comment = request.POST.get('comment')\n\n retval = request.tsugi.result.gradeSend(grade, comment)\n context = {'tsugi': request.tsugi, 'retval' : retval}\n return render(request, 'grade/done.html', context)\n\nRevising and testing locally\n----------------------------\n\nIf you are running your Django tool locally and Tsugi locally, you\ncan use the following in `settings.py`::\n\n TSUGI_KEYSET = \"http://localhost:8888/tsugi/lti/keyset-ext\";\n\nIf you are working on a new version of this library with a django\ntsugi app, you can release a new version locally with::\n\n python3 setup.py sdist ; pip3 install dist/*.tar.gz\n\n\nReleasing to pypi.org\n---------------------\n\nThis library is released to https://pypi.org/project/django-tsugi/\n\nYou need `twine` to push changes to pypi::\n\n pip3 install twine # If needed\n pip install --upgrade twine # If needed\n pip3 install twine==1.12.1 # If needed since later twines mess up\n\nTo release a whole new version, update the version in `setup.py` and then::\n\n rm dist/* ; python3 setup.py sdist ; twine check dist/*\n\n twine upload dist/*\n\nYou cannot upload the same version number twice.\n\n\nReferences\n----------\n\n[1] How to write reusable apps - https://docs.djangoproject.com/en/2.2/intro/reusable-apps/\n\n[2] Tutorial on Packaging and Distributing Projects - https://packaging.python.org/tutorials/packaging-projects/\n\n[3] https://pypi.org/ - https://packaging.python.org/tutorials/packaging-projects/#uploading-the-distribution-archives", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tsugiproject/django-tsugi.git", "keywords": "", "license": "Apache License", "maintainer": "", "maintainer_email": "", "name": "django-tsugi", "package_url": "https://pypi.org/project/django-tsugi/", "platform": "", "project_url": "https://pypi.org/project/django-tsugi/", "project_urls": { "Homepage": "https://github.com/tsugiproject/django-tsugi.git" }, "release_url": "https://pypi.org/project/django-tsugi/0.1.7/", "requires_dist": null, "requires_python": "", "summary": "Library code to help write Python Tools that use the Tsugi library to integrate into Learning Management Systems.", "version": "0.1.7" }, "last_serial": 5520683, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "1ce8a3e2b3da84c933da5e03fac001f4", "sha256": "64eb8bef3876c2f3146d5267b0ffc34eeaa31cb5329d07202a6c54157734fdd7" }, "downloads": -1, "filename": "django-tsugi-0.1.tar.gz", "has_sig": false, "md5_digest": "1ce8a3e2b3da84c933da5e03fac001f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4114, "upload_time": "2019-04-16T06:54:37", "url": "https://files.pythonhosted.org/packages/35/6a/66ac2f98a89862cffe1625bd505cbe1bc51acf2377c4209c509f73cdde1e/django-tsugi-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d490cd670940fdce30c47f42920badfd", "sha256": "206d185ad23d720d43e19860eb2c25b1914606ec699e6f9925d0bbb12957b436" }, "downloads": -1, "filename": "django-tsugi-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d490cd670940fdce30c47f42920badfd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4065, "upload_time": "2019-04-16T06:58:09", "url": "https://files.pythonhosted.org/packages/64/e7/eae252f4c8e8cf6930a3de5be3fdbd9fabe1e223d4a807423d954734f90a/django-tsugi-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "1409fca292afb306b80edbd8cc36ab9c", "sha256": "7a45f5701697ce9f6181fad5968ebdfe30c4cbf0b68aadfe8ba15c8d0711d990" }, "downloads": -1, "filename": "django-tsugi-0.1.2.tar.gz", "has_sig": false, "md5_digest": "1409fca292afb306b80edbd8cc36ab9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4114, "upload_time": "2019-04-16T07:02:16", "url": "https://files.pythonhosted.org/packages/b1/de/895dc9336e43620ad1cc31933dbf4625219fedb0e36bdd18066d721a9e76/django-tsugi-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "c05971fcf282dd25cc7e8e62bc6aa8b7", "sha256": "c154c3a8957d7302604d6d567e33eb62ca45fe28e70f93af056c0ffd12c7ccd2" }, "downloads": -1, "filename": "django-tsugi-0.1.3.tar.gz", "has_sig": false, "md5_digest": "c05971fcf282dd25cc7e8e62bc6aa8b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4920, "upload_time": "2019-07-09T19:55:02", "url": "https://files.pythonhosted.org/packages/4d/7d/a9b98d275ad7a7c668ecd6cba4d36b39a89ed521038b65f03736551f89dd/django-tsugi-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "726bfbfb3e01c122285a8ff56f45b72e", "sha256": "d982d6cf606976f14ca35319bd100ce0497aedae538effd15b3e26f2852312e0" }, "downloads": -1, "filename": "django-tsugi-0.1.4.tar.gz", "has_sig": false, "md5_digest": "726bfbfb3e01c122285a8ff56f45b72e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5281, "upload_time": "2019-07-10T00:21:59", "url": "https://files.pythonhosted.org/packages/f3/92/d3a0a0aca8d3d8550fb80cd8293edd8610aa616919936542d439b6e40bba/django-tsugi-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "a8788f60b2f2e67f7ab0936e47bde78a", "sha256": "7d39356b4fd90f09608656b34cf5617ad740e1b6be98efe025cd33244625dd1b" }, "downloads": -1, "filename": "django-tsugi-0.1.5.tar.gz", "has_sig": false, "md5_digest": "a8788f60b2f2e67f7ab0936e47bde78a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5272, "upload_time": "2019-07-10T13:11:21", "url": "https://files.pythonhosted.org/packages/ce/54/19a2277a0c38d42f2408d0071f79b97ba2ac9ceb61e995e5b395473ed87f/django-tsugi-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "c9246e6c918b4fcbc0ac7f81fd145188", "sha256": "1f4afb86baa6c28ab6bd230455eccb0c7822009b740654ca6e17aee45cae3643" }, "downloads": -1, "filename": "django-tsugi-0.1.6.tar.gz", "has_sig": false, "md5_digest": "c9246e6c918b4fcbc0ac7f81fd145188", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5324, "upload_time": "2019-07-10T20:37:00", "url": "https://files.pythonhosted.org/packages/ca/77/637aa631e15a800e23c5beed2e2aa7629df6125a8b874c6b7faeeae457d7/django-tsugi-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "8715c25eb3783dbc11240f6484002ffc", "sha256": "bff1dd5cd7376b510847045aea20c5bf2e57c94940e4d35ed934f5a652c68451" }, "downloads": -1, "filename": "django-tsugi-0.1.7.tar.gz", "has_sig": false, "md5_digest": "8715c25eb3783dbc11240f6484002ffc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12109, "upload_time": "2019-07-11T23:40:50", "url": "https://files.pythonhosted.org/packages/c7/3f/ab611045314dcac9f942579f75a5bcd0d37ffb7c141d81a8e52f11385a40/django-tsugi-0.1.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8715c25eb3783dbc11240f6484002ffc", "sha256": "bff1dd5cd7376b510847045aea20c5bf2e57c94940e4d35ed934f5a652c68451" }, "downloads": -1, "filename": "django-tsugi-0.1.7.tar.gz", "has_sig": false, "md5_digest": "8715c25eb3783dbc11240f6484002ffc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12109, "upload_time": "2019-07-11T23:40:50", "url": "https://files.pythonhosted.org/packages/c7/3f/ab611045314dcac9f942579f75a5bcd0d37ffb7c141d81a8e52f11385a40/django-tsugi-0.1.7.tar.gz" } ] }