From 7155dd407f48293d46b0fb45e7d2354bd0982f76 Mon Sep 17 00:00:00 2001 From: prathamesh Date: Thu, 26 Jun 2014 15:09:42 +0530 Subject: Changes made to quiz form to accept prerequisite quiz. --- testapp/exam/forms.py | 30 ++++++++++++------------------ testapp/exam/views.py | 10 ++++++++++ 2 files changed, 22 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) - diff --git a/testapp/exam/views.py b/testapp/exam/views.py index 7353d82..33bafe6 100644 --- a/testapp/exam/views.py +++ b/testapp/exam/views.py @@ -188,6 +188,8 @@ def edit_quiz(request): duration = request.POST.getlist('duration') active = request.POST.getlist('active') description = request.POST.getlist('description') + language = request.POST.getlist('language') + prerequisite = request.POST.getlist('prerequisite') for j, quiz_id in enumerate(quiz_list): quiz = Quiz.objects.get(id=quiz_id) @@ -195,6 +197,8 @@ def edit_quiz(request): quiz.duration = duration[j] quiz.active = active[j] quiz.description = description[j] + quiz.language = language[j] + quiz.prerequisite = prerequisite[j] quiz.save() return my_redirect("/exam/manage/showquiz/") @@ -322,6 +326,8 @@ def add_quiz(request, quiz_id=None): d.duration = form['duration'].data d.active = form['active'].data d.description = form['description'].data + d.language = form['language'].data + d.prerequisite = form['prerequisite'].data d.save() quiz = Quiz.objects.get(id=quiz_id) return my_redirect("/exam/manage/showquiz") @@ -342,6 +348,8 @@ def add_quiz(request, quiz_id=None): form.initial['duration'] = d.duration form.initial['description'] = d.description form.initial['active'] = d.active + form.initial['language'] = d.language + form.initial['prerequisite'] = d.prerequisite_id return my_render_to_response('exam/add_quiz.html', {'form': form}, context_instance=ci) @@ -910,6 +918,8 @@ def show_all_quiz(request): form.initial['duration'] = d.duration form.initial['active'] = d.active form.initial['description'] = d.description + form.initial['language'] = d.language + form.initial['prerequisite'] = d.prerequisite.description forms.append(form) return my_render_to_response('exam/edit_quiz.html', {'forms': forms, 'data': data}, -- cgit