]> git.parisson.com Git - django_quiz.git/commitdiff
add_user_answer added to the sitting model
authortomwalker <tomwalker0472@gmail.com>
Thu, 24 Jul 2014 21:16:42 +0000 (22:16 +0100)
committertomwalker <tomwalker0472@gmail.com>
Thu, 24 Jul 2014 21:16:42 +0000 (22:16 +0100)
quiz/models.py
quiz/tests.py

index c7541a71f7245407e92ade77de28ab81f4310cfc..6ffea6ccc05e2137c1c0e43d1fb5ee72ddb0a31f 100644 (file)
@@ -1,4 +1,4 @@
-import re
+import re, json
 from django.db import models
 from django.core.exceptions import ValidationError
 from django.core.validators import MaxValueValidator
@@ -312,6 +312,9 @@ class Sitting(models.Model):
     Incorrect_questions is a list in the same format.
 
     Sitting deleted when quiz finished unless quiz.exam_paper is true.
+
+    User_answers is a json object in which the question PK is stored
+    with the answer the user gave.
     """
 
     user = models.ForeignKey('auth.User')
@@ -327,7 +330,7 @@ class Sitting(models.Model):
 
     complete = models.BooleanField(default=False, blank=False)
 
-    user_answers = models.TextField(blank=True)
+    user_answers = models.TextField(blank=True, default='{}')
 
     objects = SittingManager()
 
@@ -414,7 +417,9 @@ class Sitting(models.Model):
             return self.quiz.fail_text
 
     def add_user_answer(self, question, guess):
-        pass
+        current = json.loads(self.user_answers)
+        current[question.id] = guess
+        self.user_answers = json.dumps(current)
 
 
 class Question(models.Model):
index 9d883c1f8fcebb85048ace532bacd602875ee74b..e4f34868fea48ed98bda00d6e15ddf92e2863758 100644 (file)
@@ -244,7 +244,7 @@ class TestSitting(TestCase):
         self.sitting.mark_quiz_complete()
         self.assertEqual(self.sitting.complete, True)
 
-    def test_user_answers(self):
+    def test_add_user_answer(self):
         self.answer1 = Answer.objects.create(id=123,
                                              question=self.question1,
                                              content='bing',