diff options
author | Prabhu Ramachandran | 2017-03-17 17:54:14 +0530 |
---|---|---|
committer | GitHub | 2017-03-17 17:54:14 +0530 |
commit | 23ecd8fa33e7fa2e953aa9715ae45a2869a044a0 (patch) | |
tree | ef559dee40ee85d3aa15fbaf824273e9e98a2d55 /yaksh/models.py | |
parent | f6a6a952de703be4040d30edb36b9e6cf1228daf (diff) | |
parent | 6c53c90ee5dd7184889fd3f99130b194e75fef4c (diff) | |
download | online_test-23ecd8fa33e7fa2e953aa9715ae45a2869a044a0.tar.gz online_test-23ecd8fa33e7fa2e953aa9715ae45a2869a044a0.tar.bz2 online_test-23ecd8fa33e7fa2e953aa9715ae45a2869a044a0.zip |
Merge pull request #244 from adityacp/display_err_msg
Display error message while uploading questions
Diffstat (limited to 'yaksh/models.py')
-rw-r--r-- | yaksh/models.py | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/yaksh/models.py b/yaksh/models.py index f5da55f..50ecb1c 100644 --- a/yaksh/models.py +++ b/yaksh/models.py @@ -15,6 +15,8 @@ except ImportError: from io import BytesIO as string_io import pytz import os +import sys +import traceback import stat from os.path import join, exists import shutil @@ -312,7 +314,11 @@ class Question(models.Model): def load_questions(self, questions_list, user, file_path=None, files_list=None): - questions = json.loads(questions_list) + try: + questions = json.loads(questions_list) + except ValueError as exc_msg: + msg = "Error Parsing Json: {0}".format(exc_msg) + return msg for question in questions: question['user'] = user file_names = question.pop('files') @@ -329,8 +335,7 @@ class Question(models.Model): ) new_test_case.type = test_case_type new_test_case.save() - if files_list: - delete_files(files_list, file_path) + return "Questions Uploaded Successfully" def get_test_cases(self, **kwargs): tc_list = [] @@ -398,10 +403,17 @@ class Question(models.Model): def read_json(self, file_path, user, files=None): json_file = os.path.join(file_path, "questions_dump.json") + msg = "" if os.path.exists(json_file): with open(json_file, 'r') as q_file: questions_list = q_file.read() - self.load_questions(questions_list, user, file_path, files) + msg = self.load_questions(questions_list, user, file_path, files) + else: + msg = "Please upload zip file with questions_dump.json in it." + + if files: + delete_files(files, file_path) + return msg def create_demo_questions(self, user): zip_file_path = os.path.join( |