summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormaheshgudi2017-10-04 18:58:55 +0530
committermaheshgudi2017-10-04 19:09:06 +0530
commitba817cda209787e4bc959aac8d16726a8aea1ed9 (patch)
tree3d691029f3facba9f3793d959304a888d3dcbd45
parent1e00b0d30c6bef05ef24d9a1b149986276608afd (diff)
downloadonline_test-ba817cda209787e4bc959aac8d16726a8aea1ed9.tar.gz
online_test-ba817cda209787e4bc959aac8d16726a8aea1ed9.tar.bz2
online_test-ba817cda209787e4bc959aac8d16726a8aea1ed9.zip
Update non-code and non-upload answers instead of creating a new one
-rw-r--r--yaksh/models.py5
-rw-r--r--yaksh/views.py10
2 files changed, 13 insertions, 2 deletions
diff --git a/yaksh/models.py b/yaksh/models.py
index d9e07fd..0d67397 100644
--- a/yaksh/models.py
+++ b/yaksh/models.py
@@ -1284,6 +1284,11 @@ class AnswerPaper(models.Model):
}]
return q_a
+ def get_latest_answer(self,question_id):
+ all_answers = self.answers.filter(question=question_id)
+ if all_answers:
+ return all_answers[0]
+
def get_questions(self):
return self.questions.filter(active=True)
diff --git a/yaksh/views.py b/yaksh/views.py
index a58b59e..c4ddcd1 100644
--- a/yaksh/views.py
+++ b/yaksh/views.py
@@ -597,11 +597,17 @@ def check(request, q_id, attempt_num=None, questionpaper_id=None):
else:
user_answer = request.POST.get('answer')
if not user_answer:
- msg = ["Please submit a valid option or code"]
+ msg = "Please submit a valid option or code"
return show_question(
request, current_question, paper, notification=msg
)
- new_answer = Answer(
+ if current_question in paper.get_questions_answered()\
+ and current_question.type not in ['code', 'upload']:
+ new_answer = paper.get_latest_answer(current_question.id)
+ new_answer.answer = user_answer
+ new_answer.correct = False
+ else:
+ new_answer = Answer(
question=current_question, answer=user_answer,
correct=False, error=json.dumps([])
)