From 70dce1a7477697a06678c27e1ed87dfd8106917e Mon Sep 17 00:00:00 2001 From: Ross Date: Thu, 19 Aug 2021 16:53:10 +0100 Subject: [PATCH] . --- rapids/templates/rapids/question_display_block.html | 9 +++------ rapids/views.py | 11 ++++++++--- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/rapids/templates/rapids/question_display_block.html b/rapids/templates/rapids/question_display_block.html index f201ef2a..37458e9d 100755 --- a/rapids/templates/rapids/question_display_block.html +++ b/rapids/templates/rapids/question_display_block.html @@ -115,16 +115,13 @@ for (const image of images) { json_toolstates.push(JSON.stringify(toolstate[image])); } - - - - console.log(json_toolstates); - return + $.ajax({ url: "{% url 'rapids:question_save_annotation' pk=question.pk %}", data: { csrfmiddlewaretoken: "{{ csrf_token }}", - annotation: json, + // Yes we do double encode the json.... + annotation: JSON.stringify(json_toolstates), }, type: "POST", dataType: "json", diff --git a/rapids/views.py b/rapids/views.py index cc13ada3..c11f44bc 100755 --- a/rapids/views.py +++ b/rapids/views.py @@ -1156,10 +1156,15 @@ def question_save_annotation(request, pk): if request.is_ajax() and request.method == "POST": question = get_object_or_404(Rapid, pk=pk) - question.image_annotations = request.POST.get("annotation") - print(question.image_annotations) + image_annotations = json.loads(request.POST.get("annotation")) + + question_images = question.images.all() + + for n, annotation in enumerate(image_annotations): + if annotation != "undefined": + question.images[n].image_annotations = annotation + question.images[n].save() - question.save() data = {"status": "success"} return JsonResponse(data, status=200) else: