improve case user answer management (and fix small bug)

This commit is contained in:
Ross
2024-11-18 10:44:27 +00:00
parent 9c69792e87
commit 00323cc6bd
7 changed files with 125 additions and 30 deletions
+38 -1
View File
@@ -1682,7 +1682,12 @@ def collection_take_start(request, pk):
"""
collection = get_object_or_404(CaseCollection, pk=pk)
valid_user = (collection.check_logged_in_user(request),)
valid_user = collection.check_logged_in_user(request)
# for now we only allow registered users....
if not valid_user:
raise PermissionDenied
cid_exam = None
if collection.collection_type == "REV" or valid_user:
@@ -2901,6 +2906,38 @@ def collection_question_schemas(request, exam_id: int):
},
)
def collection_reset_answers_user_list(request, exam_id: int):
if request.htmx:
collection = get_object_or_404(CaseCollection, pk=exam_id)
cid_users = collection.cid_users.all()
if cid_users:
return render(request, "atlas/collection_reset_answers_user_list.html", {"collection": collection, "cid_users": cid_users})
else:
return HttpResponse("No user answers.")
else:
raise Http404("Invalid request")
def collection_reset_answers_user(request, exam_id: int, user_id: int):
if request.htmx:
collection = get_object_or_404(CaseCollection, pk=exam_id)
# Select all case details (answers are linked to these)
case_details = collection.casedetail_set.all().prefetch_related()
# Delete all answers
for case in case_details:
user_answers = case.userreportanswer_set.filter(user_id=user_id)
user_answers.delete()
collection.cid_users.filter(user_user_id=user_id).delete()
collection.exam_user_status.filter(cid_user_exam__user_user_id=user_id).delete()
return HttpResponse("Success")
else:
raise Http404("Invalid request")
def collection_reset_answers(request, exam_id: int):
if request.htmx: