]> git.parisson.com Git - django_quiz.git/commitdiff
added two new fields to the quiz model which are used to customise the success messag...
authorTom Walker <tomwalker0472@gmail.com>
Mon, 21 Jul 2014 14:46:48 +0000 (15:46 +0100)
committerTom Walker <tomwalker0472@gmail.com>
Mon, 21 Jul 2014 14:46:48 +0000 (15:46 +0100)
quiz/models.py
quiz/templates/result.html
quiz/tests.py

index 5524bb5d104ae92d8c4c35dfec8278b1c41a4d55..79f4b5f3f584e0b369eb71d33bc8908bcdae303c 100644 (file)
@@ -83,6 +83,12 @@ class Quiz(models.Model):
                                          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()
 
@@ -393,6 +399,13 @@ class Sitting(models.Model):
         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):
     """
index 6d3170fc7cda9e2abd176a2496b4bbf04403475e..efb8cb82ba124a65076e47ce44f51b9af7ca1096 100644 (file)
        </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 %}
 
index a6de7afae331008eb51324d3c3dce835e941d445..a9a0d3f636b0a120cde1ab1ed4207d948f6405e3 100644 (file)
@@ -173,7 +173,9 @@ class TestSitting(TestCase):
                                          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')
@@ -206,6 +208,7 @@ class TestSitting(TestCase):
     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)
@@ -220,6 +223,7 @@ class TestSitting(TestCase):
         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(), [])
@@ -465,7 +469,8 @@ class TestQuestionViewsUser(TestCase):
                                          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',