From 29c096f93cedd88cd96afdeda8dfd487bc4a0b3e Mon Sep 17 00:00:00 2001 From: Ross Date: Sun, 18 Apr 2021 10:24:45 +0100 Subject: [PATCH] . --- generic/views.py | 9 +++++++++ rapids/models.py | 14 +++++++++----- rapids/urls.py | 1 + 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/generic/views.py b/generic/views.py index f39b216e..9000a881 100644 --- a/generic/views.py +++ b/generic/views.py @@ -367,6 +367,15 @@ class ExamViews(View, LoginRequiredMixin): return JsonResponse({"success": True, "question_count": n}) return JsonResponse({"success": False, "error": "Invalid data"}) + def exam_json_unbased(self, request, pk): + exam = get_object_or_404(self.Exam, pk=pk) + + if not exam.active: + raise Http404("No available exam") + + exam_json = exam.get_exam_json() + return JsonResponse(exam_json) + def exam_json(self, request, pk): exam = get_object_or_404(self.Exam, pk=pk) diff --git a/rapids/models.py b/rapids/models.py index 85d2aabb..20ebb81f 100644 --- a/rapids/models.py +++ b/rapids/models.py @@ -376,7 +376,7 @@ class Exam(ExamBase): return len(normal) - def get_exam_json(self): + def get_exam_json(self, based=True): questions = self.exam_questions.all() exam_questions = defaultdict(dict) @@ -391,11 +391,15 @@ class Exam(ExamBase): feedback_images = [] for i in q.images.all(): if i.feedback_image == True: - feedback_images.append(image_as_base64(i.image)) - # feedback_images.append(i.image.url) + if based: + feedback_images.append(image_as_base64(i.image)) + else: + feedback_images.append(i.image.url) else: - images.append(image_as_base64(i.image)) - #images.append(i.image.url) + if based: + images.append(image_as_base64(i.image)) + else: + images.append(i.image.url) diff --git a/rapids/urls.py b/rapids/urls.py index 87eb5198..170173bf 100755 --- a/rapids/urls.py +++ b/rapids/urls.py @@ -35,6 +35,7 @@ urlpatterns = [ path("exam/create", views.ExamCreate.as_view(), name="exam_create"), path("exam/json/", views.RapidExamViews.active_exams, name="active_exams"), path("exam/json/", views.RapidExamViews.exam_json, name="exam_json"), + path("exam/json//unbased", views.RapidExamViews.exam_json_unbased, name="exam_json_unbased"), path("exam/json//recreate", views.RapidExamViews.exam_json_recreate, name="exam_json_recreate"), path("create/", views.RapidCreate.as_view(), name="rapid_create"), path("create/exam/", views.RapidCreate.as_view(), name="rapid_create_exam"),