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)