From 0e56fc6a77ec21db05c9bafb42b1acc652354a32 Mon Sep 17 00:00:00 2001
From: ankitjavalkar
Date: Thu, 22 Dec 2016 20:16:00 +0530
Subject: - Fix grade user rendering issue when question is skipped - Modify
grade user html template to create readable variables for answer and error
---
yaksh/models.py | 10 ++++++++--
yaksh/python_assertion_evaluator.py | 2 +-
yaksh/templates/yaksh/grade_user.html | 26 +++++---------------------
yaksh/templates/yaksh/question.html | 24 ++++++++++++++++++++----
yaksh/test_models.py | 5 +++--
yaksh/views.py | 5 +++--
6 files changed, 40 insertions(+), 32 deletions(-)
diff --git a/yaksh/models.py b/yaksh/models.py
index 08feab6..35999d3 100644
--- a/yaksh/models.py
+++ b/yaksh/models.py
@@ -1027,9 +1027,15 @@ class AnswerPaper(models.Model):
for answer in self.answers.all():
question = answer.question
if question in q_a:
- q_a[question].append((answer, [e for e in json.loads(answer.error)]))
+ q_a[question].append({'answer': answer,
+ 'error_list': [e for e in json.loads(answer.error)]
+ }
+ )
else:
- q_a[question] = [(answer, [e for e in json.loads(answer.error)])]
+ q_a[question] = [{'answer': answer,
+ 'error_list': [e for e in json.loads(answer.error)]
+ }
+ ]
return q_a
def get_questions(self):
diff --git a/yaksh/python_assertion_evaluator.py b/yaksh/python_assertion_evaluator.py
index d8cd07c..749a6ec 100644
--- a/yaksh/python_assertion_evaluator.py
+++ b/yaksh/python_assertion_evaluator.py
@@ -77,7 +77,7 @@ class PythonAssertionEvaluator(BaseEvaluator):
fname, lineno, func, text = info[-1]
text = str(self.test_case)
err = "Expected Test Case:\n{0}\n" \
- "Error - {1} {2} in: {3}\n-----".format(
+ "Error - {1} {2} in: {3}\n".format(
self.test_case,
type.__name__,
str(value),
diff --git a/yaksh/templates/yaksh/grade_user.html b/yaksh/templates/yaksh/grade_user.html
index 516a6d0..6fb8187 100644
--- a/yaksh/templates/yaksh/grade_user.html
+++ b/yaksh/templates/yaksh/grade_user.html
@@ -118,6 +118,7 @@ Status : Passed
method="post">
{% csrf_token %}
{% for question, answers in paper.get_question_answers.items %}
+
{{forloop.counter}}. {{ answers.0 }}
- {{ err }}
{{ answer.0.answer.strip }}
{{ ans.answer.answer.strip }}
{{ error_message }}
- {% endif %} ++
{{ error_message }}
- {% endif %} ++