diff options
Diffstat (limited to 'testapp')
-rw-r--r-- | testapp/exam/urls.py | 4 | ||||
-rw-r--r-- | testapp/exam/views.py | 21 | ||||
-rw-r--r-- | testapp/static/exam/js/edit_quiz.js | 21 | ||||
-rw-r--r-- | testapp/templates/exam/question.html | 40 |
4 files changed, 67 insertions, 19 deletions
diff --git a/testapp/exam/urls.py b/testapp/exam/urls.py index 1e1cd12..f435e63 100644 --- a/testapp/exam/urls.py +++ b/testapp/exam/urls.py @@ -3,9 +3,9 @@ from django.conf.urls.defaults import patterns, include, url urlpatterns = patterns('exam.views', url(r'^$', 'index'), url(r'^login/$', 'user_login'), - url(r'^quizlist/$', 'quizlist'), - url(r'^start/(?P<quiz_id>\d+)/$', 'start'), + url(r'^start/$', 'start'), url(r'^quit/$', 'quit'), + url(r'^intro/$','start'), url(r'^complete/$', 'complete'), url(r'^register/$', 'user_register'), url(r'^(?P<q_id>\d+)/$', 'question'), diff --git a/testapp/exam/views.py b/testapp/exam/views.py index dedf68c..5b980f5 100644 --- a/testapp/exam/views.py +++ b/testapp/exam/views.py @@ -69,7 +69,7 @@ def user_register(request): user = request.user if user.is_authenticated(): - return my_redirect("/exam/quizlist/") + return my_redirect("/exam/start/") if request.method == "POST": form = UserRegisterForm(request.POST) @@ -79,7 +79,7 @@ def user_register(request): new_user = authenticate(username = u_name, password = pwd) login(request, new_user) - return my_redirect("/exam/quizlist/") + return my_redirect("/exam/start/") else: return my_render_to_response('exam/register.html', @@ -307,7 +307,7 @@ def user_login(request): if user.is_authenticated(): if user.groups.filter(name='moderator').count() > 0 : return my_redirect('/exam/manage/') - return my_redirect("/exam/quizlist/") + return my_redirect("/exam/intro/") if request.method == "POST": form = UserLoginForm(request.POST) @@ -327,14 +327,14 @@ def user_login(request): return my_render_to_response('exam/login.html', context, context_instance=RequestContext(request)) -def start(request,quiz_id=None): +def start(request): """Check the user cedentials and if any quiz is available, start the exam.""" user = request.user try: # Right now the app is designed so there is only one active quiz # at a particular time. - quiz = Quiz.objects.get(id=quiz_id) + quiz = Quiz.objects.get(active=True) except Quiz.DoesNotExist: msg = 'Quiz not found, please contact your '\ 'instructor/administrator. Please login again thereafter.' @@ -548,17 +548,6 @@ def show_all_users(request): context = { 'question': questionpaper } return my_render_to_response('exam/showusers.html',context,context_instance=RequestContext(request)) -def quizlist(request): - """Generates a list of all the quizzes that are active for the students to attempt.""" - - quizzes = Quiz.objects.all() - context = {'papers': [], - 'quiz': None, - 'quizzes':quizzes} - return my_render_to_response('exam/quizlist.html', context, - context_instance=RequestContext(request)) - - def show_all_quiz(request): """Generates a list of all the quizzes that are currently in the database.""" diff --git a/testapp/static/exam/js/edit_quiz.js b/testapp/static/exam/js/edit_quiz.js new file mode 100644 index 0000000..610a438 --- /dev/null +++ b/testapp/static/exam/js/edit_quiz.js @@ -0,0 +1,21 @@ +function form_load() +{ + var tags = document.getElementsByName('tags'); + + for (var i=0;i<tags.length;i++) + { + tags[i].id = tags[i].id + i; + } + + for(var i=0;i<tags.length;i++) + { + var tags_id = document.getElementById('id_tags'+i); + tags_id.setAttribute('class','ac_input'); + tags_id.setAttribute('autocomplete','off'); + + jQuery().ready(function() + { + jQuery("#id_tags" + i).autocomplete("/taggit_autocomplete_modified/json", { multiple: true }); + }); + } +} diff --git a/testapp/templates/exam/question.html b/testapp/templates/exam/question.html index 981af7f..87ed40d 100644 --- a/testapp/templates/exam/question.html +++ b/testapp/templates/exam/question.html @@ -9,7 +9,45 @@ {% endblock %} {% block script %} -<script src="{{ URL_ROOT }}/static/exam/js/question.js"></script> +<script> + var time_left = {{ time_left }}; + function submitCode() + { + document.forms["code"].submit(); + var x = document.getElementById("status"); + x.innerHTML = "<strong>Checking answer ...</strong>"; + x = document.getElementById("check"); + x.disabled = true; + x.value = "Checking Answer ..."; + document.getElementById("skip").disabled = true; + } + + function secs_to_time(secs) + { + var h = Math.floor(secs/3600); + var h_s = (h > 0) ? h+'h:' : ''; + var m = Math.floor((secs%3600)/60); + var m_s = (m > 0) ? m+'m:' : ''; + var s_s = Math.floor(secs%60) + 's'; + return h_s + m_s + s_s; + } + + function update_time() + { + time_left -= 1; + if (time_left) + { + var elem = document.getElementById("time_left"); + var t_str = secs_to_time(time_left); + elem.innerHTML = "<strong>" + t_str + "</strong>"; + setTimeout("update_time()", 1000); + } + else + { + document.forms["code"].submit(); + } + } +</script> {% endblock script %} {% block onload %} onload="update_time()" {% endblock onload %} |