Skip to content

tsugiproject/django-tsugi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Django Tsugi

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

About

This is an emergent library of Tsugi support for Django

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published