summaryrefslogtreecommitdiff
path: root/testapp/exam/views.py
diff options
context:
space:
mode:
authorprathamesh2014-06-16 17:04:40 +0530
committerprathamesh2014-06-16 17:04:40 +0530
commit763f96559bd1827ce87a72708d72efc9361ef588 (patch)
treeb3de9316a59d31c785251c58baecab6c7a068c11 /testapp/exam/views.py
parent5adb38569bec47ea0a1ea63e22ceec8906717b04 (diff)
downloadonline_test-763f96559bd1827ce87a72708d72efc9361ef588.tar.gz
online_test-763f96559bd1827ce87a72708d72efc9361ef588.tar.bz2
online_test-763f96559bd1827ce87a72708d72efc9361ef588.zip
Models modified.
QuestionPaper model modified for generating random questions. Added language field to Question model. Removed tags from Quiz model. Template and javascript for Add and Edit questions modified. Added test cases for models.
Diffstat (limited to 'testapp/exam/views.py')
-rw-r--r--testapp/exam/views.py56
1 files changed, 7 insertions, 49 deletions
diff --git a/testapp/exam/views.py b/testapp/exam/views.py
index 92dd029..76773cb 100644
--- a/testapp/exam/views.py
+++ b/testapp/exam/views.py
@@ -166,7 +166,7 @@ def results_user(request):
papers = AnswerPaper.objects.filter(user=user)
quiz_marks = []
for paper in papers:
- marks_obtained = paper.get_total_marks()
+ marks_obtained = paper.get_marks_obtained()
max_marks = paper.question_paper.total_marks
percentage = round((marks_obtained/max_marks)*100, 2)
temp = paper.question_paper.quiz.description, marks_obtained,\
@@ -187,7 +187,6 @@ def edit_quiz(request):
duration = request.POST.getlist('duration')
active = request.POST.getlist('active')
description = request.POST.getlist('description')
- tags = request.POST.getlist('tags')
for j, quiz_id in enumerate(quiz_list):
quiz = Quiz.objects.get(id=quiz_id)
@@ -196,14 +195,6 @@ def edit_quiz(request):
quiz.active = active[j]
quiz.description = description[j]
quiz.save()
- edit_tags = tags[j]
- quiz.save()
- for tag in quiz.tags.all():
- quiz.tags.remove(tag)
- tags_split = edit_tags.split(', ')
- for i in range(0, len(tags_split)-1):
- tag = tags_split[i].strip()
- quiz.tags.add(tag)
return my_redirect("/exam/manage/showquiz/")
@@ -222,7 +213,6 @@ def edit_question(request):
type = request.POST.getlist('type')
active = request.POST.getlist('active')
snippet = request.POST.getlist('snippet')
- tags = request.POST.getlist('tags')
for j, question_id in enumerate(question_list):
question = Question.objects.get(id=question_id)
question.summary = summary[j]
@@ -233,14 +223,7 @@ def edit_question(request):
question.active = active[j]
question.snippet = snippet[j]
question.type = type[j]
- edit_tags = tags[j]
question.save()
- for tag in question.tags.all():
- question.tags.remove(tag)
- tags_split = edit_tags.split(',')
- for i in range(0, len(tags_split)-1):
- tag = tags_split[i].strip()
- question.tags.add(tag)
return my_redirect("/exam/manage/questions")
@@ -331,10 +314,6 @@ def add_quiz(request, quiz_id=None):
if quiz_id is None:
form.save()
quiz = Quiz.objects.order_by("-id")[0]
- tags = form['tags'].data.split(',')
- for tag in tags:
- tag = tag.strip()
- quiz.tags.add(tag)
return my_redirect("/exam/manage/designquestionpaper")
else:
d = Quiz.objects.get(id=quiz_id)
@@ -344,12 +323,6 @@ def add_quiz(request, quiz_id=None):
d.description = form['description'].data
d.save()
quiz = Quiz.objects.get(id=quiz_id)
- for tag in quiz.tags.all():
- quiz.tags.remove(tag)
- tags = form['tags'].data.split(',')
- for i in range(0, len(tags)-1):
- tag = tags[i].strip()
- quiz.tags.add(tag)
return my_redirect("/exam/manage/showquiz")
else:
return my_render_to_response('exam/add_quiz.html',
@@ -368,14 +341,6 @@ def add_quiz(request, quiz_id=None):
form.initial['duration'] = d.duration
form.initial['description'] = d.description
form.initial['active'] = d.active
- form_tags = d.tags.all()
- form_tags_split = form_tags.values('name')
- initial_tags = ""
- for tag in form_tags_split:
- initial_tags = initial_tags + str(tag['name']).strip() + ","
- if (initial_tags == ","):
- initial_tags = ""
- form.initial['tags'] = initial_tags
return my_render_to_response('exam/add_quiz.html',
{'form': form},
context_instance=ci)
@@ -398,7 +363,7 @@ def show_all_questionpapers(request, questionpaper_id=None):
if request.method == "POST" and request.POST.get('add') == "add":
return my_redirect("/exam/manage/designquestionpaper/" +
- questionpaper_id)
+ questionpaper_id)
if request.method == "POST" and request.POST.get('delete') == "delete":
data = request.POST.getlist('papers')
@@ -545,7 +510,7 @@ def manual_questionpaper(request, questionpaper_id=None):
msg = 'No matching Question found...'
tags = Tag.objects.all()
context = {'data': {'questions': fetched_questions,
- 'tags': tags, 'msg': msg}}
+ 'tags': tags, 'msg': msg}}
return my_render_to_response('exam/manual_questionpaper.html',
context,
context_instance=ci)
@@ -578,7 +543,7 @@ def manual_questionpaper(request, questionpaper_id=None):
msg = 'No matching Question found...'
tags = Tag.objects.all()
context = {'data': {'questions': fetched_questions,
- 'tags': tags, 'msg': msg}}
+ 'tags': tags, 'msg': msg}}
return my_render_to_response('exam/manual_questionpaper.html',
context,
context_instance=ci)
@@ -665,7 +630,8 @@ def start(request, questionpaper_id=None):
# Make user directory.
user_dir = get_user_dir(user)
- questions = [str(_.id) for _ in questionpaper.questions.all()]
+ questions = [str(_.id) for _ in\
+ questionpaper._get_questions_for_answerpaper()]
random.shuffle(questions)
new_paper.questions = "|".join(questions)
@@ -822,7 +788,7 @@ def complete(request, reason=None, questionpaper_id=None):
else:
q_paper = QuestionPaper.objects.get(id=questionpaper_id)
paper = AnswerPaper.objects.get(user=user, question_paper=q_paper)
- obt_marks = paper.get_total_marks()
+ obt_marks = paper.get_marks_obtained()
tot_marks = paper.question_paper.total_marks
if obt_marks == paper.question_paper.total_marks:
context = {'message': "Hurray ! You did an excellent job.\
@@ -953,14 +919,6 @@ def show_all_quiz(request):
form.initial['duration'] = d.duration
form.initial['active'] = d.active
form.initial['description'] = d.description
- form_tags = d.tags.all()
- form_tags_split = form_tags.values('name')
- initial_tags = ""
- for tag in form_tags_split:
- initial_tags = initial_tags + str(tag['name']).strip() + ","
- if (initial_tags == ","):
- initial_tags = ""
- form.initial['tags'] = initial_tags
forms.append(form)
return my_render_to_response('exam/edit_quiz.html',
{'forms': forms, 'data': data},