]> git.parisson.com Git - django_quiz.git/commitdiff
Handle incorrect question toggle via post
authorRichard Mansfield <richard@dragonfly.co.nz>
Wed, 6 Aug 2014 01:34:15 +0000 (13:34 +1200)
committerRichard Mansfield <richard@dragonfly.co.nz>
Wed, 6 Aug 2014 01:34:15 +0000 (13:34 +1200)
quiz/templates/quiz/sitting_detail.html
quiz/views.py

index 1812dcfa4da76db7e470763a132da28f7810395d..eed6bb652fbb1509b4e1cabdb2e42ff3e60d7c8a 100644 (file)
@@ -36,8 +36,8 @@ Result of {{ sitting.quiz.title }} for {{ sitting.user }}
                {% endif %}
          </td>
          <td>
-               <form action="" method="get">
-                 <input type=hidden name="id" value="{{ question.id }}">
+               <form action="" method="POST">{% csrf_token %}
+                 <input type=hidden name="qid" value="{{ question.id }}">
                  <button type="submit">Toggle whether correct</button>
                </form>
          </td>
index 2608f48110c6c42b597a1b1e9678425074478a39..290da4c7603e12a299cb242d8106bb4381475766 100644 (file)
@@ -98,10 +98,10 @@ class QuizMarkingList(QuizMarkerMixin, SittingFilterTitleMixin, ListView):
 class QuizMarkingDetail(QuizMarkerMixin, DetailView):
     model = Sitting
 
-    def get_object(self, queryset=None):
-        sitting = super(QuizMarkingDetail, self).get_object()
+    def post(self, request, *args, **kwargs):
+        sitting = self.get_object()
 
-        q_to_toggle = self.request.GET.get('id')
+        q_to_toggle = request.POST.get('qid', None)
         if q_to_toggle:
             q = Question.objects.get_subclass(id=int(q_to_toggle))
             if int(q_to_toggle) in sitting.get_incorrect_questions:
@@ -109,7 +109,7 @@ class QuizMarkingDetail(QuizMarkerMixin, DetailView):
             else:
                 sitting.add_incorrect_question(q)
 
-        return sitting
+        return self.get(request)
 
 
 class QuizTake(FormView):