From 4756253a3e0ffa91379542a783e3c3068c5afee1 Mon Sep 17 00:00:00 2001 From: Ross Date: Tue, 26 Apr 2022 21:26:22 +0100 Subject: [PATCH] . --- atlas/urls.py | 3 ++- atlas/views.py | 23 ++++++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/atlas/urls.py b/atlas/urls.py index d966673b..e06f6712 100755 --- a/atlas/urls.py +++ b/atlas/urls.py @@ -20,7 +20,8 @@ urlpatterns = [ path("collection/", views.collection_detail, name="collection_detail"), path("collection//take", views.collection_take, name="collection_take"), path("collection//cids", views.GenericExamViews.exam_cids, name="exam_cids"), - path("collection//cids//delete_answers", views.delete_cid_answers, name="delete_cid_answers"), + path("collection//cids//delete_answers", views.delete_collection_cid_answers, name="delete_collection_cid_answers"), + path("collection//cids/delete_answers", views.delete_collection_answers, name="delete_collection_answers"), path("collection//cids/edit", views.GenericExamViews.exam_cids_edit, name="exam_cids_edit"), path("collection//mark", views.collection_mark_overview, name="collection_mark_overview"), path("collection//mark/", views.collection_mark_question, name="collection_mark_question"), diff --git a/atlas/views.py b/atlas/views.py index 2bf7086d..7b6a1e5b 100755 --- a/atlas/views.py +++ b/atlas/views.py @@ -1368,7 +1368,7 @@ def collection_case_view(request, pk, case_number): ) @user_is_collection_author_or_atlas_editor -def delete_cid_answers(request, exam_id, cid): +def delete_collection_cid_answers(request, exam_id, cid): collection = get_object_or_404(CaseCollection, pk=exam_id) cases = collection.cases.all().order_by("casedetail__sort_order").prefetch_related() @@ -1380,6 +1380,27 @@ def delete_cid_answers(request, exam_id, cid): cid_user_answers = CidReportAnswer.objects.filter(question__in=case_details, cid=cid) + temp = {} + for ans in cid_user_answers: + temp[ans.pk] = (ans.question.pk, ans.score, ans.cid, ans.answer) + ans.delete() + + + return JsonResponse(temp) + +@user_is_collection_author_or_atlas_editor +def delete_collection_answers(request, exam_id): + collection = get_object_or_404(CaseCollection, pk=exam_id) + + cases = collection.cases.all().order_by("casedetail__sort_order").prefetch_related() + + case_details = CaseDetail.objects.filter( + case__in=cases, collection=collection + ).prefetch_related("case") + + cid_user_answers = CidReportAnswer.objects.filter(question__in=case_details) + + temp = {} for ans in cid_user_answers: temp[ans.pk] = (ans.question.pk, ans.score, ans.cid, ans.answer)