summaryrefslogtreecommitdiff
path: root/website/views.py
diff options
context:
space:
mode:
authorJayaram Pai2013-12-25 03:23:55 +0530
committerJayaram Pai2013-12-25 03:23:55 +0530
commit06e73e7cd1c99ce224ee594b1e11129bc9a4e422 (patch)
tree02ade50fd69949986ec14f888f15c5f933c09e2e /website/views.py
parent80068542d8d510bf0751ef3c4309b35408f9039d (diff)
downloadscilab-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.py65
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)