improve case user answer management (and fix small bug)
This commit is contained in:
+38
-1
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user