From d0eb6453b6ae340d167f27a0a6f54c29ec29b8f1 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 8 Mar 2021 11:43:19 +0000 Subject: [PATCH] . --- longs/models.py | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/longs/models.py b/longs/models.py index 2a9b87e4..c7fc639d 100644 --- a/longs/models.py +++ b/longs/models.py @@ -1,3 +1,4 @@ +import json from django.db.models.fields.files import ImageField from django.db.models.fields.related import ForeignKey from django.db import models @@ -48,6 +49,9 @@ image_storage = FileSystemStorage( def image_directory_path(instance, filename): return u"longs/picture/{0}".format(filename) +def question_file_directory_path(instance, filename): + return u"longs/question/{0}".format(filename) + def findMiddle(input_list): middle = float(len(input_list)) / 2 @@ -118,6 +122,8 @@ class Long(models.Model): help_text="If the json cache needs updating", default=False ) + question_file = models.FileField(upload_to=question_file_directory_path, blank=True, null=True) + def get_absolute_url(self): return reverse("longs:question_detail", kwargs={"pk": self.pk}) @@ -167,18 +173,28 @@ class Long(models.Model): q = get_object_or_404(Long, pk=question_id) #exam_order.append(q.id) + with open(question_file_directory_path(question_id), "w") as f: + # Loop through longimage associations + f.write("[") + images = [] + image_titles = [] - # Loop through longimage associations - images = [] - image_titles = [] - for series in q.series.all(): - #image_array = [] - #for i in series.images.all(): - # image_array.append(image_as_base64(i.image)) - # #image_array.append(i.image.url) - image_array = [image_as_base64(i.image) for i in series.images.all()] - images.append(image_array) - image_titles.append(series.get_examination()) + question_series = q.series.all() + for i, series in enumerate(question_series): + #image_array = [] + #for i in series.images.all(): + # image_array.append(image_as_base64(i.image)) + # #image_array.append(i.image.url) + + # We are still limited by the size of a series (although this should not be too big or computers will crash...) + #image_array = [image_as_base64(i.image) for i in series.images.all()] + image_array = [i.image for i in series.images.all()] + f.write(json.dumps(image_array)) + #images.append(image_array) + if i != len(question_series) - 1: + f.write(",") + image_titles.append(series.get_examination()) + f.write("]")