diff options
author | maheshgudi | 2017-10-04 18:58:55 +0530 |
---|---|---|
committer | maheshgudi | 2017-10-04 19:09:06 +0530 |
commit | ba817cda209787e4bc959aac8d16726a8aea1ed9 (patch) | |
tree | 3d691029f3facba9f3793d959304a888d3dcbd45 | |
parent | 1e00b0d30c6bef05ef24d9a1b149986276608afd (diff) | |
download | online_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.py | 5 | ||||
-rw-r--r-- | yaksh/views.py | 10 |
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([]) ) |