Skip to main content

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

  1. Install

    pip install django-tsugi # or pip3

  2. 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";
  3. 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'} ),
    ]
  4. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-tsugi-0.1.12.tar.gz (13.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page