Library code to help write Python Tools that use the Tsugi library to integrate into Learning Management Systems.
Project description
This is the emerging Tsugi library for Django - https://www.tsugi.org
https://pypi.org/project/django-tsugi/
Quick start
Install
pip install django-tsugi # or pip3
Add “django_tsugi” to your INSTALLED_APPS and add the keyset url for your controlling server in settings.py like this:
INSTALLED_APPS = [ ... 'django_tsugi', ] # To set up Tsugi TSUGI_KEYSET = "https://dev1.tsugicloud.org/tsugi/lti/keyset-ext";
Add a line to your application’s urls.py file to handle launches and tell Tsugi which view to redirect to after the launch is successful:
from . import views from django_tsugi.views import LaunchView urlpatterns = [ path('', views.GradeView.as_view(), name='grade' ), path('launch', LaunchView.as_view(), {'success_url' : 'grade'} ), ]
Add the TsugiMixin to your class based view and it will define the request.tsugi variable with the user, context, and link information:
from django.views import View from django_tsugi.mixins import TsugiMixin class GradeView(TsugiMixin, View): def get(self, request) : context = {'tsugi': request.tsugi} return render(request, 'grade/main.html', context) def post(self, request) : grade = float(request.POST.get('grade')) comment = request.POST.get('comment') retval = request.tsugi.result.gradeSend(grade, comment) context = {'tsugi': request.tsugi, 'retval' : retval} return render(request, 'grade/done.html', context)
Revising and testing locally
If you are running your Django tool locally and Tsugi locally, you can use the following in settings.py:
TSUGI_KEYSET = "http://localhost:8888/tsugi/lti/keyset-ext";
If you are working on a new version of this library with a django tsugi app, you can release a new version locally with:
python3 setup.py sdist ; pip3 install dist/*.tar.gz
Releasing to pypi.org
This library is released to https://pypi.org/project/django-tsugi/
You need twine to push changes to pypi:
pip3 install twine # If needed pip install --upgrade twine # If needed pip3 install twine==1.12.1 # If needed since later twines mess up
To release a whole new version, update the version in setup.py and then:
rm dist/* ; python3 setup.py sdist ; twine check dist/* twine upload dist/*
You cannot upload the same version number twice.
References
[1] How to write reusable apps - https://docs.djangoproject.com/en/2.2/intro/reusable-apps/
[2] Tutorial on Packaging and Distributing Projects - https://packaging.python.org/tutorials/packaging-projects/
[3] https://pypi.org/ - https://packaging.python.org/tutorials/packaging-projects/#uploading-the-distribution-archives
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-tsugi-0.1.12.tar.gz
.
File metadata
- Download URL: django-tsugi-0.1.12.tar.gz
- Upload date:
- Size: 13.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.17.3 setuptools/28.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea8b3392092553fbb448afcb6203b0448882689d1570a3203da22a4ccc031963 |
|
MD5 | 3b6507de2dd77f653c1ac540caf89f7a |
|
BLAKE2b-256 | 744d7120871e074404982856df9985271072894180936689953daceca95ae0b5 |