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