From 8942f00b2547c041b6a58f8faa37d5d686ae4a3c Mon Sep 17 00:00:00 2001 From: Ross Date: Thu, 15 Dec 2022 15:42:18 +0000 Subject: [PATCH] Start django 4 upgrade (and fix adding groups) --- generic/views.py | 50 ++++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 27 deletions(-) diff --git a/generic/views.py b/generic/views.py index a2003b47..21815789 100644 --- a/generic/views.py +++ b/generic/views.py @@ -164,7 +164,7 @@ def create_examination(request): @csrf_exempt def get_examination_id(request): - if request.is_ajax(): + if request.accepts("application/json")(): examination_name = request.GET["examination_name"] examination_id = Examination.objects.get(name=examination_name).id data = { @@ -177,7 +177,7 @@ def get_examination_id(request): # Generic view to dispatch to indivuals app views @login_required def generic_exam_json_edit(request): - if request.is_ajax() and request.method == "POST": + if request.method == "POST": question_type = request.POST.get("type") if question_type == "rapid": @@ -468,7 +468,7 @@ class ExamViews(View, LoginRequiredMixin): @method_decorator(login_required) def exam_toggle_archived(self, request, pk): print("TOGGLE ARCHIVED", request.POST) - if request.is_ajax() and request.method == "POST": + if request.method == "POST": if not self.check_user_edit_access(request.user): data = {"status": "error, insufficient permission"} @@ -494,7 +494,7 @@ class ExamViews(View, LoginRequiredMixin): @method_decorator(login_required) def exam_toggle_results_published(self, request, pk): - if request.is_ajax() and request.method == "POST": + if request.method == "POST": if not self.check_user_edit_access(request.user): data = {"status": "error, insufficient permission"} @@ -519,7 +519,7 @@ class ExamViews(View, LoginRequiredMixin): @method_decorator(login_required) def exam_toggle_active(self, request, pk): - if request.is_ajax() and request.method == "POST": + if request.method == "POST": if not self.check_user_edit_access(request.user): data = {"status": "error, insufficient permission"} @@ -982,7 +982,7 @@ class ExamViews(View, LoginRequiredMixin): @method_decorator(login_required) def exam_json_edit(self, request, pk): - if request.is_ajax() and request.method == "POST": + if request.method == "POST": if request.user.groups.filter(name="cid_user_manager").exists(): @@ -1311,7 +1311,7 @@ class ExamViews(View, LoginRequiredMixin): @method_decorator(csrf_exempt) def postExamAnswers(self, request): - if request.is_ajax and request.method == "POST": + if request.method == "POST": n = 0 @@ -1910,32 +1910,28 @@ class GenericViewBase: """ Return a json representation of the question when the exam is published """ - if request.is_ajax(): - exam = get_object_or_404(self.exam_object, pk=pk) + exam = get_object_or_404(self.exam_object, pk=pk) - print(request.POST["question_number"]) - print(type(request.POST["question_number"])) + print(request.POST["question_number"]) + print(type(request.POST["question_number"])) - if not exam.publish_results: - raise Http404 + if not exam.publish_results: + raise Http404 - question = exam.exam_questions.all()[int(request.POST["question_number"])] + question = exam.exam_questions.all()[int(request.POST["question_number"])] - question_json = question.get_question_json(based=False, feedback=True) - return JsonResponse(question_json) - return JsonResponse({"status": "error"}) + question_json = question.get_question_json(based=False, feedback=True) + return JsonResponse(question_json) @method_decorator(user_passes_test(lambda u: u.is_superuser)) def user_answer_delete_multiple(self, request): - if request.is_ajax(): - print(request.POST["answer_ids"]) - answer_ids = json.loads(request.POST["answer_ids"]) + print(request.POST["answer_ids"]) + answer_ids = json.loads(request.POST["answer_ids"]) - # We could probably delete them all at once.... - for id in answer_ids: - self.cid_user_answer_object.objects.get(pk=id).delete() - return JsonResponse({"status": "success"}) - return JsonResponse({"status": "error"}) + # We could probably delete them all at once.... + for id in answer_ids: + self.cid_user_answer_object.objects.get(pk=id).delete() + return JsonResponse({"status": "success"}) @method_decorator(login_required) def question_detail(self, request, pk): @@ -2266,7 +2262,7 @@ def create_cid_email(request): @user_is_cid_user_manager def manage_cid_users(request): - if request.is_ajax() and request.method == "POST": + if request.method == "POST": physics_exams = json.loads(request.POST.get("physics_exams")) rapid_exams = json.loads(request.POST.get("rapid_exams")) sba_exams = json.loads(request.POST.get("sba_exams")) @@ -2294,7 +2290,7 @@ def manage_cid_users(request): if add_group == "true": cids = CidUser.objects.filter(pk__in=selected_cids) for c in cids: - c.group_id = cid_groups[0] + c.group_id = cid_groups c.save() return JsonResponse({"status": "success"})