diff options
author | ankitjavalkar | 2017-05-31 19:43:52 +0530 |
---|---|---|
committer | ankitjavalkar | 2017-05-31 19:43:52 +0530 |
commit | 689e777cf21e30b33fd9fccbd6c2cd5dc4d935ea (patch) | |
tree | a785c95618718d0fda15ee4f2d43cb29665d72ed /yaksh/forms.py | |
parent | eae6ee7ceb25f78b216a5e2c9d6165513272e4cb (diff) | |
download | online_test-689e777cf21e30b33fd9fccbd6c2cd5dc4d935ea.tar.gz online_test-689e777cf21e30b33fd9fccbd6c2cd5dc4d935ea.tar.bz2 online_test-689e777cf21e30b33fd9fccbd6c2cd5dc4d935ea.zip |
Validate quiz prerequisite field
Diffstat (limited to 'yaksh/forms.py')
-rw-r--r-- | yaksh/forms.py | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/yaksh/forms.py b/yaksh/forms.py index 3459be9..14a3db0 100644 --- a/yaksh/forms.py +++ b/yaksh/forms.py @@ -181,9 +181,13 @@ class QuizForm(forms.ModelForm): user = kwargs.pop('user') course_id = kwargs.pop('course') super(QuizForm, self).__init__(*args, **kwargs) - self.fields['prerequisite'] = forms.ModelChoiceField( - queryset=Quiz.objects.filter(course__id=course_id, - is_trial=False)) + + prerequisite_list = Quiz.objects.filter( + course__id=course_id, + is_trial=False + ).exclude(id=self.instance.id) + + self.fields['prerequisite'] = forms.ModelChoiceField(prerequisite_list) self.fields['prerequisite'].required = False self.fields['course'] = forms.ModelChoiceField( queryset=Course.objects.filter(id=course_id), empty_label=None) @@ -240,6 +244,12 @@ class QuizForm(forms.ModelForm): </p> """) + def clean_prerequisite(self): + prereq = self.cleaned_data['prerequisite'] + if prereq and prereq.prerequisite.id == self.instance.id: + raise forms.ValidationError("Please set another prerequisite quiz") + return None + class Meta: model = Quiz exclude = ["is_trial"] |