summaryrefslogtreecommitdiff
path: root/yaksh
diff options
context:
space:
mode:
Diffstat (limited to 'yaksh')
-rw-r--r--yaksh/decorators.py12
-rw-r--r--yaksh/urls.py2
-rw-r--r--yaksh/urls_password_reset.py2
-rw-r--r--yaksh/views.py172
4 files changed, 114 insertions, 74 deletions
diff --git a/yaksh/decorators.py b/yaksh/decorators.py
index 9e9bc6d..0234f2f 100644
--- a/yaksh/decorators.py
+++ b/yaksh/decorators.py
@@ -1,4 +1,4 @@
-from django.shortcuts import render_to_response, redirect
+from django.shortcuts import render, render_to_response, redirect
from django.conf import settings
from django.template import RequestContext
@@ -20,15 +20,13 @@ def has_profile(func):
def _wrapped_view(request, *args, **kwargs):
if user_has_profile(request.user):
return func(request, *args, **kwargs)
- ci = RequestContext(request)
if request.user.groups.filter(name='moderator').exists():
template = 'manage.html'
else:
template = 'user.html'
form = ProfileForm(user=request.user, instance=None)
context = {'template': template, 'form': form}
- return render_to_response('yaksh/editprofile.html', context,
- context_instance=ci)
+ return render(request, 'yaksh/editprofile.html', context)
return _wrapped_view
@@ -40,7 +38,6 @@ def email_verified(func):
"""
def is_email_verified(request, *args, **kwargs):
- ci = RequestContext(request)
user = request.user
context = {}
if not settings.IS_DEVELOPMENT:
@@ -49,7 +46,8 @@ def email_verified(func):
context['success'] = False
context['msg'] = "Your account is not verified. \
Please verify your account"
- return render_to_response('yaksh/activation_status.html',
- context, context_instance=ci)
+ return render(
+ request, 'yaksh/activation_status.html', context
+ )
return func(request, *args, **kwargs)
return is_email_verified \ No newline at end of file
diff --git a/yaksh/urls.py b/yaksh/urls.py
index dd450ba..3611573 100644
--- a/yaksh/urls.py
+++ b/yaksh/urls.py
@@ -1,4 +1,4 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from yaksh import views
urlpatterns = [
diff --git a/yaksh/urls_password_reset.py b/yaksh/urls_password_reset.py
index c1e36c6..4a7ddf3 100644
--- a/yaksh/urls_password_reset.py
+++ b/yaksh/urls_password_reset.py
@@ -1,4 +1,4 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from django.contrib.auth.views import password_reset, password_reset_confirm,\
password_reset_done, password_reset_complete, password_change,\
password_change_done
diff --git a/yaksh/views.py b/yaksh/views.py
index c10a481..ad13af1 100644
--- a/yaksh/views.py
+++ b/yaksh/views.py
@@ -7,7 +7,7 @@ import csv
from django.http import HttpResponse, JsonResponse
from django.core.urlresolvers import reverse
from django.contrib.auth import login, logout, authenticate
-from django.shortcuts import render_to_response, get_object_or_404, redirect
+from django.shortcuts import render_to_response, render, get_object_or_404, redirect
from django.template import RequestContext, Context, Template
from django.template.loader import get_template, render_to_string
from django.http import Http404
@@ -65,14 +65,14 @@ def my_redirect(url):
return redirect(URL_ROOT + url)
-def my_render_to_response(template, context=None, **kwargs):
+def my_render_to_response(request, template, context=None, **kwargs):
"""Overridden render_to_response.
"""
if context is None:
context = {'URL_ROOT': URL_ROOT}
else:
context['URL_ROOT'] = URL_ROOT
- return render_to_response(template, context, **kwargs)
+ return render(request, template, context, **kwargs)
def is_moderator(user):
@@ -129,21 +129,26 @@ def user_register(request):
success, msg = send_user_mail(user_email, key)
context = {'activation_msg': msg}
return my_render_to_response(
+ request,
'yaksh/activation_status.html', context
)
return index(request)
else:
- return my_render_to_response('yaksh/register.html', {'form': form})
+ return my_render_to_response(
+ request, 'yaksh/register.html', {'form': form}
+ )
else:
form = UserRegisterForm()
- return my_render_to_response('yaksh/register.html', {'form': form})
+ return my_render_to_response(
+ request, 'yaksh/register.html', {'form': form}
+ )
def user_logout(request):
"""Show a page to inform user that the quiz has been compeleted."""
logout(request)
context = {'message': "You have been logged out successfully"}
- return my_render_to_response('yaksh/complete.html', context)
+ return my_render_to_response(request, 'yaksh/complete.html', context)
@login_required
@@ -173,7 +178,7 @@ def quizlist_user(request, enrolled=None, msg=None):
context = {'user': user, 'courses': courses, 'title': title,
'msg': msg}
- return my_render_to_response("yaksh/quizzes_user.html", context)
+ return my_render_to_response(request, "yaksh/quizzes_user.html", context)
@login_required
@@ -183,7 +188,7 @@ def results_user(request):
user = request.user
papers = AnswerPaper.objects.get_user_answerpapers(user)
context = {'papers': papers}
- return my_render_to_response("yaksh/results_user.html", context)
+ return my_render_to_response(request, "yaksh/results_user.html", context)
@login_required
@@ -250,7 +255,9 @@ def add_question(request, question_id=None):
'formsets': formsets,
'uploaded_files': uploaded_files
}
- return my_render_to_response("yaksh/add_question.html", context)
+ return my_render_to_response(
+ request, "yaksh/add_question.html", context
+ )
qform = QuestionForm(instance=question)
fileform = FileForm()
@@ -273,7 +280,9 @@ def add_question(request, question_id=None):
)
context = {'qform': qform, 'fileform': fileform, 'question': question,
'formsets': formsets, 'uploaded_files': uploaded_files}
- return my_render_to_response("yaksh/add_question.html", context)
+ return my_render_to_response(
+ request, "yaksh/add_question.html", context
+ )
@login_required
@@ -312,7 +321,7 @@ def add_quiz(request, quiz_id=None, course_id=None):
context["course_id"] = course_id
context["quiz"] = quiz
context["form"] = form
- return my_render_to_response('yaksh/add_quiz.html', context)
+ return my_render_to_response(request, 'yaksh/add_quiz.html', context)
@login_required
@@ -358,7 +367,7 @@ def add_exercise(request, quiz_id=None, course_id=None):
context["exercise"] = quiz
context["course_id"] = course_id
context["form"] = form
- return my_render_to_response('yaksh/add_exercise.html', context)
+ return my_render_to_response(request, 'yaksh/add_exercise.html', context)
@login_required
@@ -396,7 +405,9 @@ def prof_manage(request, msg=None):
context = {'user': user, 'courses': courses,
'trial_paper': trial_paper, 'msg': msg
}
- return my_render_to_response('yaksh/moderator_dashboard.html', context)
+ return my_render_to_response(
+ request, 'yaksh/moderator_dashboard.html', context
+ )
def user_login(request):
@@ -422,7 +433,7 @@ def user_login(request):
form = UserLoginForm()
context = {"form": form}
- return my_render_to_response('yaksh/login.html', context)
+ return my_render_to_response(request, 'yaksh/login.html', context)
@login_required
@@ -531,7 +542,7 @@ def start(request, questionpaper_id=None, attempt_num=None, course_id=None,
}
if is_moderator(user):
context["status"] = "moderator"
- return my_render_to_response('yaksh/intro.html', context)
+ return my_render_to_response(request, 'yaksh/intro.html', context)
else:
ip = request.META['REMOTE_ADDR']
if not hasattr(user, 'profile'):
@@ -623,7 +634,7 @@ def show_question(request, question, paper, error_message=None, notification=Non
last_attempt = answers[0].answer
if last_attempt:
context['last_attempt'] = last_attempt.encode('unicode-escape')
- return my_render_to_response('yaksh/question.html', context)
+ return my_render_to_response(request, 'yaksh/question.html', context)
@login_required
@@ -877,7 +888,7 @@ def quit(request, reason=None, attempt_num=None, questionpaper_id=None,
course_id=course_id)
context = {'paper': paper, 'message': reason, 'course_id': course_id,
'module_id': module_id}
- return my_render_to_response('yaksh/quit.html', context)
+ return my_render_to_response(request, 'yaksh/quit.html', context)
@login_required
@@ -890,7 +901,7 @@ def complete(request, reason=None, attempt_num=None, questionpaper_id=None,
message = reason or "An Unexpected Error occurred. Please contact your '\
'instructor/administrator.'"
context = {'message': message}
- return my_render_to_response('yaksh/complete.html', context)
+ return my_render_to_response(request, 'yaksh/complete.html', context)
else:
q_paper = QuestionPaper.objects.get(id=questionpaper_id)
paper = AnswerPaper.objects.get(
@@ -910,7 +921,7 @@ def complete(request, reason=None, attempt_num=None, questionpaper_id=None,
'course_id': course_id, 'learning_unit': learning_unit}
if is_moderator(user):
context['user'] = "moderator"
- return my_render_to_response('yaksh/complete.html', context)
+ return my_render_to_response(request, 'yaksh/complete.html', context)
@login_required
@@ -935,12 +946,12 @@ def add_course(request, course_id=None):
return my_redirect('/exam/manage/courses')
else:
return my_render_to_response(
- 'yaksh/add_course.html', {'form': form}
+ request, 'yaksh/add_course.html', {'form': form}
)
else:
form = CourseForm(instance=course)
return my_render_to_response(
- 'yaksh/add_course.html', {'form': form}
+ request, 'yaksh/add_course.html', {'form': form}
)
@@ -989,7 +1000,7 @@ def courses(request):
teachers=user, is_trial=False).order_by('-active', '-id')
context = {'courses': courses, "allotted_courses": allotted_courses,
"type": "courses"}
- return my_render_to_response('yaksh/courses.html', context)
+ return my_render_to_response(request, 'yaksh/courses.html', context)
@login_required
@@ -1004,7 +1015,9 @@ def course_detail(request, course_id):
if not course.is_creator(user) and not course.is_teacher(user):
raise Http404('This course does not belong to you')
- return my_render_to_response('yaksh/course_detail.html', {'course': course})
+ return my_render_to_response(
+ request, 'yaksh/course_detail.html', {'course': course}
+ )
@login_required
@@ -1032,7 +1045,7 @@ def enroll(request, course_id, user_id=None, was_rejected=False):
enroll_ids = [user_id]
if not enroll_ids:
return my_render_to_response(
- 'yaksh/course_detail.html', {'course': course}
+ request, 'yaksh/course_detail.html', {'course': course}
)
users = User.objects.filter(id__in=enroll_ids)
course.enroll(was_rejected, *users)
@@ -1066,7 +1079,7 @@ def send_mail(request, course_id, user_id=None):
'course': course, 'message': message,
'state': 'mail'
}
- return my_render_to_response('yaksh/course_detail.html', context)
+ return my_render_to_response(request, 'yaksh/course_detail.html', context)
@login_required
@@ -1087,7 +1100,8 @@ def reject(request, course_id, user_id=None, was_enrolled=False):
if not reject_ids:
message = "Please select atleast one User"
return my_render_to_response(
- 'yaksh/course_detail.html', {'course': course, 'message': message},
+ request, 'yaksh/course_detail.html',
+ {'course': course, 'message': message},
)
users = User.objects.filter(id__in=reject_ids)
course.reject(was_enrolled, *users)
@@ -1127,7 +1141,9 @@ def show_statistics(request, questionpaper_id, attempt_number=None,
context = {'quiz': quiz, 'attempts': attempt_numbers,
'questionpaper_id': questionpaper_id,
'course_id': course_id}
- return my_render_to_response('yaksh/statistics_question.html', context)
+ return my_render_to_response(
+ request, 'yaksh/statistics_question.html', context
+ )
total_attempt = AnswerPaper.objects.get_count(questionpaper_id,
attempt_number,
course_id)
@@ -1141,7 +1157,9 @@ def show_statistics(request, questionpaper_id, attempt_number=None,
'questionpaper_id': questionpaper_id,
'attempts': attempt_numbers, 'total': total_attempt,
'course_id': course_id}
- return my_render_to_response('yaksh/statistics_question.html', context)
+ return my_render_to_response(
+ request, 'yaksh/statistics_question.html', context
+ )
@login_required
@@ -1162,7 +1180,7 @@ def monitor(request, quiz_id=None, course_id=None):
"papers": [], "course_details": course_details,
"msg": "Monitor"
}
- return my_render_to_response('yaksh/monitor.html', context)
+ return my_render_to_response(request, 'yaksh/monitor.html', context)
# quiz_id is not None.
try:
quiz = get_object_or_404(Quiz, id=quiz_id)
@@ -1208,7 +1226,7 @@ def monitor(request, quiz_id=None, course_id=None):
"attempt_numbers": attempt_numbers,
"course": course
}
- return my_render_to_response('yaksh/monitor.html', context)
+ return my_render_to_response(request, 'yaksh/monitor.html', context)
@csrf_exempt
@@ -1232,7 +1250,7 @@ def ajax_questions_filter(request):
questions = list(Question.objects.filter(**filter_dict))
return my_render_to_response(
- 'yaksh/ajax_question_filter.html', {'questions': questions}
+ request, 'yaksh/ajax_question_filter.html', {'questions': questions}
)
@@ -1360,7 +1378,9 @@ def design_questionpaper(request, quiz_id, questionpaper_id=None,
'random_sets': random_sets,
'course_id': course_id
}
- return my_render_to_response('yaksh/design_questionpaper.html', context)
+ return my_render_to_response(
+ request, 'yaksh/design_questionpaper.html', context
+ )
@login_required
@@ -1445,7 +1465,7 @@ def show_all_questions(request):
user=user).distinct()
context['questions'] = search_result
- return my_render_to_response('yaksh/showquestions.html', context)
+ return my_render_to_response(request, 'yaksh/showquestions.html', context)
@login_required
@@ -1459,7 +1479,7 @@ def user_data(request, user_id, questionpaper_id=None, course_id=None):
data = AnswerPaper.objects.get_user_data(user, questionpaper_id, course_id)
context = {'data': data, 'course_id': course_id}
- return my_render_to_response('yaksh/user_data.html', context)
+ return my_render_to_response(request, 'yaksh/user_data.html', context)
def _expand_questions(questions, field_list):
@@ -1621,7 +1641,7 @@ def grade_user(request, quiz_id=None, user_id=None, attempt_number=None,
if course_status.exists():
course_status.first().set_grade()
- return my_render_to_response('yaksh/grade_user.html', context)
+ return my_render_to_response(request, 'yaksh/grade_user.html', context)
@login_required
@@ -1635,7 +1655,7 @@ def view_profile(request):
else:
template = 'user.html'
context = {'template': template, 'user': user}
- return my_render_to_response('yaksh/view_profile.html', context)
+ return my_render_to_response(request, 'yaksh/view_profile.html', context)
@login_required
@@ -1663,14 +1683,18 @@ def edit_profile(request):
form_data.user.last_name = request.POST['last_name']
form_data.user.save()
form_data.save()
- return my_render_to_response('yaksh/profile_updated.html')
+ return my_render_to_response(request, 'yaksh/profile_updated.html')
else:
context['form'] = form
- return my_render_to_response('yaksh/editprofile.html', context)
+ return my_render_to_response(
+ request, 'yaksh/editprofile.html', context
+ )
else:
form = ProfileForm(user=user, instance=profile)
context['form'] = form
- return my_render_to_response('yaksh/editprofile.html', context)
+ return my_render_to_response(
+ request, 'yaksh/editprofile.html', context
+ )
@login_required
@@ -1704,7 +1728,7 @@ def search_teacher(request, course_id):
)
context['success'] = True
context['teachers'] = teachers
- return my_render_to_response('yaksh/addteacher.html', context)
+ return my_render_to_response(request, 'yaksh/addteacher.html', context)
@login_required
@@ -1731,7 +1755,7 @@ def add_teacher(request, course_id):
course.add_teachers(*teachers)
context['status'] = True
context['teachers_added'] = teachers
- return my_render_to_response('yaksh/addteacher.html', context)
+ return my_render_to_response(request, 'yaksh/addteacher.html', context)
@login_required
@@ -1811,7 +1835,9 @@ def view_answerpaper(request, questionpaper_id, course_id):
).exists()
context = {'data': data, 'quiz': quiz,
"has_user_assignment": has_user_assignment}
- return my_render_to_response('yaksh/view_answerpaper.html', context)
+ return my_render_to_response(
+ request, 'yaksh/view_answerpaper.html', context
+ )
else:
return my_redirect('/exam/quizzes/')
@@ -1843,7 +1869,7 @@ def grader(request, extra_context=None):
context = {'courses': user_courses}
if extra_context:
context.update(extra_context)
- return my_render_to_response('yaksh/regrade.html', context)
+ return my_render_to_response(request, 'yaksh/regrade.html', context)
@login_required
@@ -1933,7 +1959,7 @@ def activate_user(request, key):
if profile.is_email_verified:
context['activation_msg'] = "Your account is already verified"
return my_render_to_response(
- 'yaksh/activation_status.html', context
+ request, 'yaksh/activation_status.html', context
)
if timezone.now() > profile.key_expiry_time:
@@ -1946,7 +1972,9 @@ def activate_user(request, key):
profile.is_email_verified = True
profile.save()
context['msg'] = "Your account is activated"
- return my_render_to_response('yaksh/activation_status.html', context)
+ return my_render_to_response(
+ request, 'yaksh/activation_status.html', context
+ )
def new_activation(request, email=None):
@@ -1959,7 +1987,9 @@ def new_activation(request, email=None):
except MultipleObjectsReturned:
context['email_err_msg'] = "Multiple entries found for this email"\
"Please change your email"
- return my_render_to_response('yaksh/activation_status.html', context)
+ return my_render_to_response(
+ request, 'yaksh/activation_status.html', context
+ )
except ObjectDoesNotExist:
context['success'] = False
context['msg'] = "Your account is not verified. \
@@ -1982,7 +2012,9 @@ def new_activation(request, email=None):
else:
context['activation_msg'] = "Your account is already verified"
- return my_render_to_response('yaksh/activation_status.html', context)
+ return my_render_to_response(
+ request, 'yaksh/activation_status.html', context
+ )
def update_email(request):
@@ -1996,7 +2028,9 @@ def update_email(request):
return new_activation(request, email)
else:
context['email_err_msg'] = "Please Update your email"
- return my_render_to_response('yaksh/activation_status.html', context)
+ return my_render_to_response(
+ request, 'yaksh/activation_status.html', context
+ )
@login_required
@@ -2043,29 +2077,35 @@ def upload_users(request, course_id):
if request.method == 'POST':
if 'csv_file' not in request.FILES:
context['message'] = "Please upload a CSV file."
- return my_render_to_response('yaksh/course_detail.html', context)
+ return my_render_to_response(
+ request, 'yaksh/course_detail.html', context
+ )
csv_file = request.FILES['csv_file']
is_csv_file, dialect = is_csv(csv_file)
if not is_csv_file:
context['message'] = "The file uploaded is not a CSV file."
- return my_render_to_response('yaksh/course_detail.html', context)
+ return my_render_to_response(
+ request, 'yaksh/course_detail.html', context
+ )
required_fields = ['firstname', 'lastname', 'email']
try:
reader = csv.DictReader(csv_file.read().decode('utf-8').splitlines(),
dialect=dialect)
except TypeError:
context['message'] = "Bad CSV file"
- return my_render_to_response('yaksh/course_detail.html', context)
+ return my_render_to_response(
+ request, 'yaksh/course_detail.html', context
+ )
stripped_fieldnames = [field.strip().lower() for field in reader.fieldnames]
for field in required_fields:
if field not in stripped_fieldnames:
context['message'] = "The CSV file does not contain the required headers"
return my_render_to_response(
- 'yaksh/course_detail.html', context
+ request, 'yaksh/course_detail.html', context
)
reader.fieldnames = stripped_fieldnames
context['upload_details'] = _read_user_csv(reader, course)
- return my_render_to_response('yaksh/course_detail.html', context)
+ return my_render_to_response(request, 'yaksh/course_detail.html', context)
def _read_user_csv(reader, course):
@@ -2275,7 +2315,7 @@ def edit_lesson(request, lesson_id=None, course_id=None):
context['lesson_file_form'] = lesson_files_form
context['lesson_files'] = lesson_files
context['course_id'] = course_id
- return my_render_to_response('yaksh/add_lesson.html', context)
+ return my_render_to_response(request, 'yaksh/add_lesson.html', context)
@login_required
@@ -2316,7 +2356,7 @@ def show_lesson(request, lesson_id, module_id, course_id):
'course': course, 'state': "lesson", "all_modules": all_modules,
'learning_units': learning_units, "current_unit": learn_unit,
'learning_module': learn_module}
- return my_render_to_response('yaksh/show_video.html', context)
+ return my_render_to_response(request, 'yaksh/show_video.html', context)
@login_required
@@ -2388,7 +2428,7 @@ def design_module(request, module_id, course_id=None):
context['status'] = 'design'
context['module_id'] = module_id
context['course_id'] = course_id
- return my_render_to_response('yaksh/add_module.html', context)
+ return my_render_to_response(request, 'yaksh/add_module.html', context)
@login_required
@@ -2427,7 +2467,7 @@ def add_module(request, module_id=None, course_id=None):
context['module_form'] = module_form
context['course_id'] = course_id
context['status'] = "add"
- return my_render_to_response("yaksh/add_module.html", context)
+ return my_render_to_response(request, "yaksh/add_module.html", context)
@login_required
@@ -2438,7 +2478,7 @@ def show_all_quizzes(request):
raise Http404('You are not allowed to view this page!')
quizzes = Quiz.objects.filter(creator=user, is_trial=False)
context = {"quizzes": quizzes, "type": "quiz"}
- return my_render_to_response('yaksh/courses.html', context)
+ return my_render_to_response(request, 'yaksh/courses.html', context)
@login_required
@@ -2449,7 +2489,7 @@ def show_all_lessons(request):
raise Http404('You are not allowed to view this page!')
lessons = Lesson.objects.filter(creator=user)
context = {"lessons": lessons, "type": "lesson"}
- return my_render_to_response('yaksh/courses.html', context)
+ return my_render_to_response(request, 'yaksh/courses.html', context)
@login_required
@@ -2461,7 +2501,7 @@ def show_all_modules(request):
learning_modules = LearningModule.objects.filter(
creator=user, is_trial=False)
context = {"learning_modules": learning_modules, "type": "learning_module"}
- return my_render_to_response('yaksh/courses.html', context)
+ return my_render_to_response(request, 'yaksh/courses.html', context)
@login_required
@@ -2589,7 +2629,9 @@ def design_course(request, course_id):
context['added_learning_modules'] = added_learning_modules
context['learning_modules'] = learning_modules
context['course_id'] = course_id
- return my_render_to_response('yaksh/design_course_session.html', context)
+ return my_render_to_response(
+ request, 'yaksh/design_course_session.html', context
+ )
@login_required
@@ -2624,7 +2666,7 @@ def view_module(request, module_id, course_id, msg=None):
context['course'] = course
context['state'] = "module"
context['msg'] = msg
- return my_render_to_response('yaksh/show_video.html', context)
+ return my_render_to_response(request, 'yaksh/show_video.html', context)
@login_required
@@ -2648,7 +2690,7 @@ def course_modules(request, course_id, msg=None):
if not course_status.grade:
course_status.set_grade()
context['grade'] = course_status.get_grade()
- return my_render_to_response('yaksh/course_modules.html', context)
+ return my_render_to_response(request, 'yaksh/course_modules.html', context)
@login_required
@@ -2665,7 +2707,7 @@ def course_status(request, course_id):
'course': course, 'students': students,
'state': 'course_status', 'modules': course.get_learning_modules()
}
- return my_render_to_response('yaksh/course_detail.html', context)
+ return my_render_to_response(request, 'yaksh/course_detail.html', context)
def _update_unit_status(course_id, user, unit):
@@ -2699,5 +2741,5 @@ def preview_questionpaper(request, questionpaper_id):
}
return my_render_to_response(
- 'yaksh/preview_questionpaper.html', context
+ request, 'yaksh/preview_questionpaper.html', context
)