diff --git a/rad/views.py b/rad/views.py index 4a1060ad..a9a6e83a 100644 --- a/rad/views.py +++ b/rad/views.py @@ -197,10 +197,9 @@ class AddQuestionNote(CreateView): @csrf_exempt def answer_suggestion_submit(request): if request.is_ajax and request.method == "POST": - j = json.loads(request.body.decode()) - question_type, qid = j["qid"].split("/") - answer_string = j["answer"] - status = j["status"] + question_type, qid = request.POST.get("qid").split("/") + answer_string = request.POST.get("answer") + status = request.POST.get("status") if str(status) not in " 012": return JsonResponse({"success": False, "error": "Invalid status"}) @@ -229,9 +228,8 @@ def answer_suggestion_submit(request): @login_required def answer_suggestion_confirm(request): if request.is_ajax and request.method == "POST": - j = json.loads(request.body.decode()) - question_type = j["question_type"] - aid = j["aid"] + question_type = request.POST.get("question_type") + aid = request.POST.get("aid") if question_type == "anatomy": AnswerModel = AnatomyAnswer @@ -242,7 +240,7 @@ def answer_suggestion_confirm(request): else: return JsonResponse({"success": False, "error": "Invalid question type"}) - answer = get_object_or_404(AnswerModel, pk=qid) + answer = get_object_or_404(AnswerModel, pk=aid) answer.proposed = False answer.save() return JsonResponse({"success": True, "error": "Answer changed"}) diff --git a/rapids/templates/rapids/question_display_block.html b/rapids/templates/rapids/question_display_block.html index de51a5ea..eb93657f 100755 --- a/rapids/templates/rapids/question_display_block.html +++ b/rapids/templates/rapids/question_display_block.html @@ -62,14 +62,15 @@ // send request to change the is_private state on customSwitches toggle $(".proposed-answer").each((n, el) => { - $(el).append("SAVE").on("click", function () { + $(el).append("[Confirm]").on("click", function () { $.ajax({ url: "{% url 'answer_suggestion_confirm' %}", data: { csrfmiddlewaretoken: "{{ csrf_token }}", //active: this.checked // true if checked else false + question_type: "rapid", + aid: el.dataset.aid }, - body: JSON.stringify({ question_type: "rapid", aid: el.dataset.aid}), type: "POST", dataType: "json", }) @@ -77,8 +78,10 @@ .done(function (data) { console.log(data); - if (data.status == "success") { - toastr.info('Exam state changed.') + if (data.success) { + toastr.info('Answer saved') + $(el).find(".confirm").remove() + $(el).removeClass("proposed-answer") } // show some message according to the response. // For eg. A message box showing that the status has been changed