From: Tom Walker Date: Sun, 13 Jul 2014 18:48:46 +0000 (+0100) Subject: removed the template tag user_previous_exam X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=33d84f7f91346d508127571fb73fe1471ed3ecf6;p=django_quiz.git removed the template tag user_previous_exam --- diff --git a/quiz/models.py b/quiz/models.py index d4126d9..cc47341 100644 --- a/quiz/models.py +++ b/quiz/models.py @@ -124,6 +124,7 @@ class Quiz(models.Model): def get_questions(self): return self.question_set.all().select_subclasses() + @property def get_max_score(self): return self.get_questions().count() @@ -382,6 +383,7 @@ class Sitting(models.Model): def get_current_score(self): return self.current_score + @property def get_percent_correct(self): dividend = float(self.current_score) divisor = self.quiz.question_set.all().select_subclasses().count() diff --git a/quiz/templates/progress.html b/quiz/templates/progress.html index 3912f5f..224d0e5 100644 --- a/quiz/templates/progress.html +++ b/quiz/templates/progress.html @@ -9,145 +9,79 @@
-{% if new_user %} - -
- -
    -
  • -

    Thank you for joining this website. Welcome to your progress page.

    -
  • -
-
- -{% endif %} - - -{% if cat_scores %} - -

Question Category Scores

-

- Below are the categories of questions that you have attempted. Blue is the percentage that are correct. -

- - - - - {% for cat, value in cat_scores.items %} - - {% ifnotequal cat "empty" %} - - {% if forloop.first %} -
-
    - {% endif %} - - {% ifequal forloop.counter 5 %} -
-
-
-
    - {% endifequal %} - - {% ifequal forloop.counter 9 %} -
-
-
-
    - {% endifequal %} - - {% ifequal forloop.counter 13 %} -
-
-
-
    - {% endifequal %} - - {% ifequal forloop.counter 17 %} -
-
-
-
    - {% endifequal %} - -
  • -
    - - -
    -
    -
  • - - {% endifnotequal %} - - - {% endfor %} -
-
- -{% endif %} - -{% if exams %} - -
+ {% if cat_scores %} -

Previous exam papers

-

+

Question Category Scores

+ + + + + + + + + + + + + + + + {% for cat, value in cat_scores.items %} + + + + + + + + {% endfor %} + + + +
CategoryCorrectly answererdIncorrect%
{{ cat }}{{ value.0 }}{{ value.1 }}{{ value.2 }}
+ + + {% endif %} + + {% if exams %} + +
+ +

Previous exam papers

+

Below are the results of exams that you have sat. -

+

- +
- - - - - - - + + + + + + + - + - {% for exam in exams %} + {% for exam in exams %} - - {% user_previous_exam exam %} - + + + + + + - {% endfor %} + {% endfor %} - + -
Quiz TitleScorePossible Score%
Quiz TitleScorePossible Score%
{{ exam.quiz.title }}{{ exam.current_score }}{{ exam.quiz.get_max_score }}{{ exam.get_percent_correct }}
+ -{% endif %} + {% endif %}
diff --git a/quiz/templates/user_previous_exam.html b/quiz/templates/user_previous_exam.html deleted file mode 100644 index 42bda82..0000000 --- a/quiz/templates/user_previous_exam.html +++ /dev/null @@ -1,4 +0,0 @@ -{{ title }} -{{ score }} -{{ possible }} -{{ percent }} diff --git a/quiz/templatetags/quiz_tags.py b/quiz/templatetags/quiz_tags.py index 35968f6..d4dac7d 100644 --- a/quiz/templatetags/quiz_tags.py +++ b/quiz/templatetags/quiz_tags.py @@ -19,17 +19,3 @@ def correct_answer_for_all(context, question): return {'previous': previous, 'user_was_incorrect': user_was_incorrect} - - -@register.inclusion_tag('user_previous_exam.html', takes_context=True) -def user_previous_exam(context, exam): - """ - Provides details of finished exams - """ - final_score = exam.current_score - possible_score = exam.quiz.get_max_score() - percent = int(round((float(final_score) / float(possible_score)) * 100)) - return {'title': exam.quiz.title, - 'score': final_score, - 'possible': possible_score, - 'percent': percent} diff --git a/quiz/tests.py b/quiz/tests.py index 768a7ce..8150683 100644 --- a/quiz/tests.py +++ b/quiz/tests.py @@ -77,7 +77,7 @@ class TestQuiz(TestCase): self.assertEqual(self.quiz1.exam_paper, True) def test_get_max_score(self): - self.assertEqual(self.quiz1.get_max_score(), 1) + self.assertEqual(self.quiz1.get_max_score, 1) def test_get_questions(self): self.assertIn(self.question1, self.quiz1.get_questions()) @@ -195,15 +195,15 @@ class TestSitting(TestCase): self.sitting.add_to_score(1) self.assertEqual(self.sitting.get_current_score(), 1) - self.assertEqual(self.sitting.get_percent_correct(), 50) + self.assertEqual(self.sitting.get_percent_correct, 50) self.sitting.add_to_score(1) self.assertEqual(self.sitting.get_current_score(), 2) - self.assertEqual(self.sitting.get_percent_correct(), 100) + self.assertEqual(self.sitting.get_percent_correct, 100) self.sitting.add_to_score(1) self.assertEqual(self.sitting.get_current_score(), 3) - self.assertEqual(self.sitting.get_percent_correct(), 100) + self.assertEqual(self.sitting.get_percent_correct, 100) def test_incorrect_and_complete(self): self.assertEqual(self.sitting.get_incorrect_questions(), []) @@ -286,8 +286,6 @@ class TestNonQuestionViews(TestCase): self.assertIn('straw.berries', response.context['cat_scores']) self.assertEqual([1, 2, 50], response.context['cat_scores']['elderberries']) - self.assertContains(response, 'var difference = 2 - 1;') - self.assertContains(response, 'var correct = 1;') def test_quiz_start_page(self): response = self.client.get('/q/tq1/') @@ -651,15 +649,3 @@ class TestTemplateTags(TestCase): self.assertTemplateUsed('correct_answer.html') self.assertIn('bing', template.render(context)) self.assertIn('incorrectly', template.render(context)) - - def test_previous_exam(self): - template = Template('{% load quiz_tags %}' + - '{% user_previous_exam exam %}') - - context = Context({'exam': self.sitting}) - - self.assertTemplateUsed('user_previous_exam.html') - self.assertIn('test quiz 1', template.render(context)) - self.assertIn('1', template.render(context)) - self.assertIn('2', template.render(context)) - self.assertIn('50', template.render(context)) diff --git a/quiz/views.py b/quiz/views.py index 1b11eed..e5d3591 100644 --- a/quiz/views.py +++ b/quiz/views.py @@ -7,7 +7,6 @@ from django.utils.decorators import method_decorator from django.views.generic import DetailView, ListView, TemplateView from .models import Quiz, Category, Progress, Sitting, Question -from multichoice.models import MCQuestion class QuizListView(ListView): @@ -140,8 +139,8 @@ def user_load_next_question(request, sitting, quiz): def final_result_user(request, sitting, quiz, previous): score = sitting.get_current_score() incorrect = sitting.get_incorrect_questions() - max_score = quiz.get_max_score() - percent = sitting.get_percent_correct() + max_score = quiz.get_max_score + percent = sitting.get_percent_correct sitting.mark_quiz_complete() @@ -266,7 +265,7 @@ def anon_session_score(request, to_add=0, possible=0): def final_result_anon(request, quiz, previous): score = request.session[quiz.anon_score_id()] - max_score = quiz.get_max_score() + max_score = quiz.get_max_score percent = int(round((float(score) / max_score) * 100)) if score is 0: score = "0"