validators=[
MaxValueValidator(100)])
+ success_text = models.TextField(blank=True,
+ help_text="Displayed if user passes.")
+
+ fail_text = models.TextField(blank=True,
+ help_text="Displayed if user fails.")
+
def save(self, force_insert=False, force_update=False, *args, **kwargs):
self.url = re.sub('\s+', '-', self.url).lower()
else:
return False
+ @property
+ def result_message(self):
+ if self.check_if_passed:
+ return self.quiz.success_text
+ else:
+ return self.quiz.fail_text
+
class Question(models.Model):
"""
</p>
{% if quiz.pass_mark %}
-
- {% if sitting.check_if_passed %}
- <p class="lead">You have passed this exam.</p>
- {% else %}
- <p class="lead">You have not passed this exam.</p>
- {% endif %}
-
+ <hr>
+ <p class="lead">{{ sitting.result_message }}</p>
+ <hr>
{% endif %}
title='test quiz 1',
description='d1',
url='tq1',
- pass_mark=50)
+ pass_mark=50,
+ success_text="Well done",
+ fail_text="Bad luck")
self.question1 = MCQuestion.objects.create(id=1,
content='squawk')
def test_scoring(self):
self.assertEqual(self.sitting.get_current_score, 0)
self.assertEqual(self.sitting.check_if_passed, False)
+ self.assertEqual(self.sitting.result_message, 'Bad luck')
self.sitting.add_to_score(1)
self.assertEqual(self.sitting.get_current_score, 1)
self.assertEqual(self.sitting.get_percent_correct, 100)
self.assertEqual(self.sitting.check_if_passed, True)
+ self.assertEqual(self.sitting.result_message, 'Well done')
def test_incorrect_and_complete(self):
self.assertEqual(self.sitting.get_incorrect_questions(), [])
description='d1',
url='tq1',
category=self.c1,
- pass_mark=50)
+ pass_mark=50,
+ success_text="You have passed")
self.quiz2 = Quiz.objects.create(id=2,
title='test quiz 2',