diff options
author | Jayaram Pai | 2013-12-25 03:23:55 +0530 |
---|---|---|
committer | Jayaram Pai | 2013-12-25 03:23:55 +0530 |
commit | 06e73e7cd1c99ce224ee594b1e11129bc9a4e422 (patch) | |
tree | 02ade50fd69949986ec14f888f15c5f933c09e2e /website/views.py | |
parent | 80068542d8d510bf0751ef3c4309b35408f9039d (diff) | |
download | scilab-on-cloud-06e73e7cd1c99ce224ee594b1e11129bc9a4e422.tar.gz scilab-on-cloud-06e73e7cd1c99ce224ee594b1e11129bc9a4e422.tar.bz2 scilab-on-cloud-06e73e7cd1c99ce224ee594b1e11129bc9a4e422.zip |
code tested for Scilab 5.3.3
Diffstat (limited to 'website/views.py')
-rw-r--r-- | website/views.py | 65 |
1 files changed, 64 insertions, 1 deletions
diff --git a/website/views.py b/website/views.py index bede851..a26ae91 100644 --- a/website/views.py +++ b/website/views.py @@ -1,5 +1,68 @@ from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render +from django.core.context_processors import csrf +from django.views.decorators.csrf import csrf_exempt, csrf_protect +from django.db.models import Q + +from website.helpers import scilab_run +from website.models import TextbookCompanionPreference,\ + TextbookCompanionProposal, TextbookCompanionChapter,\ + TextbookCompanionExample def index(request): - return render(request, 'website/templates/index.html') + context = {} + context.update(csrf(request)) + return render(request, 'website/templates/index.html', context) + +@csrf_exempt +def ajax_books(request): + context = {} + if request.method == 'POST': + category_id = request.POST['category_id'] + if category_id: + ids = TextbookCompanionProposal.objects.using('scilab')\ + .filter(proposal_status=3).values('id') + + books = TextbookCompanionPreference.objects.using('scilab')\ + .filter(category=category_id).filter(approval_status=1)\ + .filter(proposal_id__in=ids).order_by('book') + + context = { + 'books': books + } + return render(request, 'website/templates/ajax-books.html', context) + +@csrf_exempt +def ajax_chapters(request): + context = {} + if request.method == "POST": + book_id = request.POST['book_id'] + if book_id: + chapters = TextbookCompanionChapter.objects.using('scilab')\ + .filter(preference_id=book_id).order_by('number') + + context = { + 'chapters': chapters + } + return render(request, 'website/templates/ajax-chapters.html', context) + +@csrf_exempt +def ajax_examples(request): + context = {} + if request.method == "POST": + chapter_id = request.POST['chapter_id'] + if chapter_id: + examples = TextbookCompanionExample.objects.using('scilab')\ + .filter(chapter_id=chapter_id).order_by('number') + + context = { + 'examples': examples + } + return render(request, 'website/templates/ajax-examples.html', context) + +def ajax_execute(request): + if request.method == "POST": + code = request.POST['code'] + token = request.POST['csrfmiddlewaretoken'] + result = scilab_run(code, token) + return HttpResponse(result) |