diff options
Diffstat (limited to 'testapp/exam/forms.py')
-rw-r--r-- | testapp/exam/forms.py | 30 |
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) - |