summaryrefslogtreecommitdiff
path: root/yaksh/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'yaksh/models.py')
-rw-r--r--yaksh/models.py22
1 files changed, 17 insertions, 5 deletions
diff --git a/yaksh/models.py b/yaksh/models.py
index f6efeba..03a67e6 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
@@ -322,7 +324,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')
@@ -339,8 +345,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 = []
@@ -408,10 +413,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(
@@ -542,7 +554,7 @@ class Quiz(models.Model):
# The start date of the quiz.
start_date_time = models.DateTimeField(
"Start Date and Time of the quiz",
- default=timezone.now(),
+ default=timezone.now,
null=True
)