summaryrefslogtreecommitdiff
path: root/yaksh/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'yaksh/views.py')
-rw-r--r--yaksh/views.py47
1 files changed, 28 insertions, 19 deletions
diff --git a/yaksh/views.py b/yaksh/views.py
index 44f06b1..d298e5e 100644
--- a/yaksh/views.py
+++ b/yaksh/views.py
@@ -73,14 +73,14 @@ def add_to_group(users):
user.groups.add(group)
-def index(request):
+def index(request, next_url=None):
"""The start page.
"""
user = request.user
if user.is_authenticated():
if user.groups.filter(name='moderator').count() > 0:
- return my_redirect('/exam/manage/')
- return my_redirect("/exam/quizzes/")
+ return my_redirect('/exam/manage/' if not next_url else next_url)
+ return my_redirect("/exam/quizzes/" if not next_url else next_url)
return my_redirect("/exam/login/")
@@ -122,14 +122,25 @@ def user_logout(request):
def quizlist_user(request, enrolled=None):
"""Show All Quizzes that is available to logged-in user."""
user = request.user
- if enrolled is not None:
+ ci = RequestContext(request)
+
+ if request.method == "POST":
+ course_code = request.POST.get('course_code')
+ hidden_courses = Course.objects.get_hidden_courses(code=course_code)
+ courses = hidden_courses if hidden_courses else None
+ title = 'Search'
+
+ elif enrolled is not None:
courses = user.students.all()
title = 'Enrolled Courses'
else:
- courses = Course.objects.filter(active=True, is_trial=False)
+ courses = Course.objects.filter(active=True, is_trial=False, hidden=False)
title = 'All Courses'
+
context = {'user': user, 'courses': courses, 'title': title}
- return my_render_to_response("yaksh/quizzes_user.html", context)
+
+ return my_render_to_response("yaksh/quizzes_user.html", context,
+ context_instance=ci)
@login_required
@@ -331,27 +342,25 @@ def user_login(request):
user = request.user
ci = RequestContext(request)
if user.is_authenticated():
- if user.groups.filter(name='moderator').count() > 0:
- return my_redirect('/exam/manage/')
- return my_redirect("/exam/quizzes/")
+ return index(request)
+
+ next_url = request.GET.get('next')
if request.method == "POST":
form = UserLoginForm(request.POST)
if form.is_valid():
user = form.cleaned_data
login(request, user)
- if user.groups.filter(name='moderator').count() > 0:
- return my_redirect('/exam/manage/')
- return my_redirect('/exam/login/')
+ return index(request, next_url)
else:
context = {"form": form}
- return my_render_to_response('yaksh/login.html', context,
- context_instance=ci)
+
else:
form = UserLoginForm()
context = {"form": form}
- return my_render_to_response('yaksh/login.html', context,
- context_instance=ci)
+
+ return my_render_to_response('yaksh/login.html', context,
+ context_instance=ci)
@@ -641,8 +650,8 @@ def enroll_request(request, course_id):
user = request.user
ci = RequestContext(request)
course = get_object_or_404(Course, pk=course_id)
- if not course.is_active_enrollment:
- msg = 'Enrollment for this course has been closed, please contact your '\
+ if not course.is_active_enrollment and course.hidden:
+ msg = 'Unable to add enrollments for this course, please contact your '\
'instructor/administrator.'
return complete(request, msg, attempt_num=None, questionpaper_id=None)
@@ -1240,7 +1249,7 @@ def search_teacher(request, course_id):
if not is_moderator(user):
raise Http404('You are not allowed to view this page!')
- context = {}
+ context = {'success': False}
course = get_object_or_404(Course, pk=course_id)
context['course'] = course