From 55c596006ea4fc66852caa636aed8da51dbc5c92 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 19 Oct 2020 12:08:28 +0100 Subject: [PATCH] work on json requests --- .gitignore | 2 ++ anatomy/models.py | 8 ++++++++ anatomy/urls.py | 4 ++-- anatomy/views.py | 14 ++++++++++++++ 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 07129c03..0d5520ce 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ media/ +__pycache__ +.vscode/ \ No newline at end of file diff --git a/anatomy/models.py b/anatomy/models.py index 8cba716a..c6366246 100644 --- a/anatomy/models.py +++ b/anatomy/models.py @@ -4,6 +4,8 @@ from django.utils import timezone from django.core.files.storage import FileSystemStorage from django.conf import settings +from django.urls import reverse + image_storage = FileSystemStorage( # Physical file location ROOT location=u"{0}/anatomy/".format(settings.MEDIA_ROOT), @@ -176,6 +178,12 @@ class Exam(models.Model): def __str__(self): return self.name + def get_exam_name(self): + return self.name + + def get_json_url(self): + return reverse('anatomy:exam_json', args=(self.pk,)) + class UserAnswer(models.Model): question = models.ForeignKey(AnatomyQuestion, diff --git a/anatomy/urls.py b/anatomy/urls.py index 893934dc..b4e14e64 100644 --- a/anatomy/urls.py +++ b/anatomy/urls.py @@ -16,9 +16,9 @@ urlpatterns = [ path("exam//", views.exam_overview, name="exam_overview"), path("exam//scores", views.exam_scores_cid, name="exam_scores_cid"), - path("exam//json", views.exam_json, name="exam_json"), path("submit_answers", views.postExamAnswers, name="exam_answers_submit"), path("exam/", views.exam_list, name="exam_list"), - path("active_exams/", views.active_exams, name="active_exams"), + path("exam/json/", views.active_exams, name="active_exams"), + path("exam/json/", views.exam_json, name="exam_json"), path("ajax/exam/flag/", views.flag_question, name="flag_question"), ] diff --git a/anatomy/views.py b/anatomy/views.py index 1826f040..6e46350a 100644 --- a/anatomy/views.py +++ b/anatomy/views.py @@ -374,7 +374,21 @@ def mark(request, pk, sk): ) def active_exams(request): + exams = Exam.objects.all() + print(exams) + active_exams = { + "exams" : [] + } + + for exam in exams: + if exam.active: + active_exams["exams"].append({ + "name": exam.get_exam_name(), + "url": request.build_absolute_uri(exam.get_json_url()), + }) + + return JsonResponse(active_exams) def exam_json(request, pk): exam = get_object_or_404(Exam, pk=pk)