work on json requests

This commit is contained in:
Ross
2020-10-19 12:08:28 +01:00
parent 644bf9ce76
commit 55c596006e
4 changed files with 26 additions and 2 deletions
+2
View File
@@ -1 +1,3 @@
media/ media/
__pycache__
.vscode/
+8
View File
@@ -4,6 +4,8 @@ from django.utils import timezone
from django.core.files.storage import FileSystemStorage from django.core.files.storage import FileSystemStorage
from django.conf import settings from django.conf import settings
from django.urls import reverse
image_storage = FileSystemStorage( image_storage = FileSystemStorage(
# Physical file location ROOT # Physical file location ROOT
location=u"{0}/anatomy/".format(settings.MEDIA_ROOT), location=u"{0}/anatomy/".format(settings.MEDIA_ROOT),
@@ -176,6 +178,12 @@ class Exam(models.Model):
def __str__(self): def __str__(self):
return self.name 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): class UserAnswer(models.Model):
question = models.ForeignKey(AnatomyQuestion, question = models.ForeignKey(AnatomyQuestion,
+2 -2
View File
@@ -16,9 +16,9 @@ urlpatterns = [
path("exam/<int:pk>/", views.exam_overview, name="exam_overview"), path("exam/<int:pk>/", views.exam_overview, name="exam_overview"),
path("exam/<int:pk>/scores", views.exam_scores_cid, path("exam/<int:pk>/scores", views.exam_scores_cid,
name="exam_scores_cid"), name="exam_scores_cid"),
path("exam/<int:pk>/json", views.exam_json, name="exam_json"),
path("submit_answers", views.postExamAnswers, name="exam_answers_submit"), path("submit_answers", views.postExamAnswers, name="exam_answers_submit"),
path("exam/", views.exam_list, name="exam_list"), 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/<int:pk>", views.exam_json, name="exam_json"),
path("ajax/exam/flag/", views.flag_question, name="flag_question"), path("ajax/exam/flag/", views.flag_question, name="flag_question"),
] ]
+14
View File
@@ -374,7 +374,21 @@ def mark(request, pk, sk):
) )
def active_exams(request): 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): def exam_json(request, pk):
exam = get_object_or_404(Exam, pk=pk) exam = get_object_or_404(Exam, pk=pk)