This commit is contained in:
Ross
2021-08-19 11:32:07 +01:00
parent 2dfc11bfd6
commit 7a4e35941c
2 changed files with 51 additions and 0 deletions
+45
View File
@@ -1,4 +1,6 @@
from django.db import models
from django.http.response import JsonResponse
from django.shortcuts import get_object_or_404
from django.utils import timezone
import tagulous
import tagulous.models
@@ -333,6 +335,40 @@ class Rapid(models.Model):
new_answers = [a for a in answers if get_answer_compare(a) not in compare_answers]
return new_answers
def get_question_json(self, based=True):
"""Returns json"""
# Loop through rapidimage associations
images = []
feedback_images = []
for i in self.images.all():
if i.feedback_image == True:
if based:
feedback_images.append(image_as_base64(i.image))
else:
feedback_images.append("{}/{}".format(settings.REMOTE_URL, i.image.url))
else:
if based:
images.append(image_as_base64(i.image))
else:
images.append("{}/{}".format(settings.REMOTE_URL, i.image.url))
json = {
"images": images,
#"feedback_image": [],
#"annotations": [str(q.image_annotations)],
"type": "rapid",
}
if not self.exam_mode:
json["normal"] = self.normal
json["feedback_images"] = feedback_images
json["answers"] = list(self.get_correct_unstripped_answers())
return json
#reversion.register(Rapid, follow=["images"])
@@ -594,3 +630,12 @@ class CidUserAnswer(models.Model):
else:
mark = "unmarked"
return mark
def question_json_unbased(request, pk):
"""
No (file based) caching is enabled for unbased quesitons
"""
question = get_object_or_404(Rapid, pk=pk)
question_json = question.get_question_json(based=False)
return JsonResponse(question_json)
+6
View File
@@ -12,6 +12,12 @@ urlpatterns = [
# path("unchecked/", views.unchecked_list, name="unchecked_list"),
# path("verified/<int:pk>/", views.verified_detail, name="verified_detail"),
path("question/<int:pk>/", views.question_detail, name="question_detail"),
#path("question/<int:pk>/json", views.question_json, name="question_json"),
path(
"question/<int:pk>/json/unbased",
views.question_json_unbased,
name="question_json_unbased",
),
path("question/<int:pk>/split", views.rapid_split, name="rapid_split"),
path("question/<int:pk>/clone", views.RapidClone.as_view(), name="rapid_clone"),
# path("verified/", views.verified, name="verified"),