diff --git a/anatomy/urls.py b/anatomy/urls.py index d914a635..532415d1 100644 --- a/anatomy/urls.py +++ b/anatomy/urls.py @@ -20,6 +20,7 @@ urlpatterns = [ path("exam///", views.exam_take, name="exam_take"), path("exam//question//", views.exam_question_detail, name="exam_question_detail"), path("exam//", views.exam_overview, name="exam_overview"), + path("exam//json_edit", views.exam_json_edit, name="exam_json_edit"), path("exam//scores", views.exam_scores_cid, name="exam_scores_cid"), path("exam//scores//", views.exam_scores_cid_user, diff --git a/anatomy/views.py b/anatomy/views.py index faece2d0..eaf3d940 100644 --- a/anatomy/views.py +++ b/anatomy/views.py @@ -317,6 +317,38 @@ def loadJsonAnswer(answer): return True +def exam_json_edit(request): + if request.is_ajax and request.method == "POST": + + n = 0 + # horrible but it works + for k in request.POST.dict(): + print(k) + for answer in json.loads(k): + if not "exam" in answer: + return JsonResponse({"success": False}) + + exam = get_object_or_404(answer["exam"]) + + if "set_open_access" in answer: + #answer["set_open_access"] + for q in exam.exam_questions.all(): + q.open_acess = answer["set_open_access"] + q.save() + + + return JsonResponse({"success": True}) + + + if ret is not True: + return ret + n = n + 1 + + # print(UserAnswer.objects.filter(exam__id=q["eid"])) + # print(request.urlencode()) + + return JsonResponse({"success": True, "question_count": n}) + return JsonResponse({"success": False, "error": "Invalid data"}) @csrf_exempt def postExamAnswers(request):