summaryrefslogtreecommitdiff
path: root/testapp/exam/forms.py
diff options
context:
space:
mode:
authorprathamesh2014-06-26 15:09:42 +0530
committerprathamesh2014-06-26 15:09:42 +0530
commit7155dd407f48293d46b0fb45e7d2354bd0982f76 (patch)
treef2e06d29f0b8e90164c4758edb3016682c778e5b /testapp/exam/forms.py
parent5409b03f915c4569ccb17974e6c09660fa32d8bf (diff)
downloadonline_test-7155dd407f48293d46b0fb45e7d2354bd0982f76.tar.gz
online_test-7155dd407f48293d46b0fb45e7d2354bd0982f76.tar.bz2
online_test-7155dd407f48293d46b0fb45e7d2354bd0982f76.zip
Changes made to quiz form to accept prerequisite quiz.
Diffstat (limited to 'testapp/exam/forms.py')
-rw-r--r--testapp/exam/forms.py30
1 files changed, 12 insertions, 18 deletions
diff --git a/testapp/exam/forms.py b/testapp/exam/forms.py
index 1f1a2af..a8e3ae7 100644
--- a/testapp/exam/forms.py
+++ b/testapp/exam/forms.py
@@ -27,14 +27,10 @@ QUESTION_TYPES = (
("mcq", "Multiple Choice"),
("code", "Code"),
)
-QUIZZES =[('select', 'Select a prerequisite quiz')]
-quizzes = Quiz.objects.all()
-QUIZZES = QUIZZES+[(quiz.id, quiz) for quiz in quizzes]
UNAME_CHARS = letters + "._" + digits
PWD_CHARS = letters + punctuation + digits
-
class UserRegisterForm(forms.Form):
"""A Class to create new form for User's Registration.
It has the various fields and functions required to register
@@ -130,16 +126,24 @@ class QuizForm(forms.Form):
"""Creates a form to add or edit a Quiz.
It has the related fields and functions required."""
+ def __init__(self, *args, **kwargs):
+ super(QuizForm, self).__init__(*args, **kwargs)
+ self.QUIZZES = [('', 'Select a prerequisite quiz')]
+ self.QUIZZES = self.QUIZZES + \
+ list(Quiz.objects.values_list('id','description'))
+ self.fields['prerequisite'] = forms.CharField(required=False,
+ widget=forms.Select(choices=self.QUIZZES))
+
+
start_date = forms.DateField(initial=datetime.date.today)
- duration = forms.IntegerField()
+ duration = forms.IntegerField(help_text='Will be taken in minutes')
active = forms.BooleanField(required=False)
description = forms.CharField(max_length=256, widget=forms.Textarea\
(attrs={'cols': 20, 'rows': 1}))
pass_criteria = forms.FloatField(initial=40,
help_text='Will be taken as percentage')
language = forms.CharField(widget=forms.Select(choices=LANGUAGES))
- prerequisite = forms.CharField(required=False,
- widget=forms.Select(choices=QUIZZES))
+
def save(self):
start_date = self.cleaned_data["start_date"]
@@ -149,8 +153,6 @@ class QuizForm(forms.Form):
pass_criteria = self.cleaned_data["pass_criteria"]
language = self.cleaned_data["language"]
prerequisite = self.cleaned_data["prerequisite"]
-
-
new_quiz = Quiz()
new_quiz.start_date = start_date
new_quiz.duration = duration
@@ -158,8 +160,7 @@ class QuizForm(forms.Form):
new_quiz.description = description
new_quiz.pass_criteria = pass_criteria
new_quiz.language = language
- if isinstance(prerequisite, int):
- new_quiz.prerequisite_id = prerequisite
+ new_quiz.prerequisite_id = prerequisite
new_quiz.save()
@@ -207,10 +208,3 @@ class QuestionForm(forms.Form):
new_question.active = active
new_question.snippet = snippet
new_question.save()
-
-
- class RandomQuestionForm(forms.Form):
- question_type = forms.CharField(max_length=8, widget=forms.Select\
- (choices=QUESTION_TYPES))
- shuffle_questions = forms.BooleanField(required=False)
-