Refactor CaseDetail references to Casedetail across templates and views
- Updated all instances of 'case_detail' to 'casedetail' in templates to maintain consistency. - Adjusted view functions to use 'casedetail' instead of 'case_detail' for better clarity. - Renamed the field 'case_detail' to 'casedetail' in the CasePrior model to align with the new naming convention. - Ensured that all related logic and references in forms and data handling reflect this change.
This commit is contained in:
+125
-109
@@ -2757,8 +2757,8 @@ def collection_take_start(request, pk, cid=None, passcode=None):
|
||||
|
||||
@user_is_collection_author_or_atlas_editor
|
||||
def collection_case_priors(request, exam_id, case_id):
|
||||
case_detail = CaseDetail.objects.get(case=case_id, collection=exam_id)
|
||||
collection = case_detail.collection
|
||||
casedetail = CaseDetail.objects.get(case=case_id, collection=exam_id)
|
||||
collection = casedetail.collection
|
||||
|
||||
if request.htmx:
|
||||
# Ensure we can render the updated single-card partial and return it so HTMX
|
||||
@@ -2767,7 +2767,7 @@ def collection_case_priors(request, exam_id, case_id):
|
||||
if "remove" in request.POST:
|
||||
prior_pk = request.POST["remove"]
|
||||
try:
|
||||
p = CasePrior.objects.get(case_detail=case_detail, prior_case=prior_pk)
|
||||
p = CasePrior.objects.get(casedetail=casedetail, prior_case=prior_pk)
|
||||
p.delete()
|
||||
except CasePrior.DoesNotExist:
|
||||
# Already removed; continue and render the not-added card
|
||||
@@ -2785,7 +2785,7 @@ def collection_case_priors(request, exam_id, case_id):
|
||||
"added": added,
|
||||
"relation": relation,
|
||||
"visibility": visibility,
|
||||
"case_detail": case_detail,
|
||||
"casedetail": casedetail,
|
||||
"collection": collection,
|
||||
},
|
||||
request=request,
|
||||
@@ -2807,7 +2807,7 @@ def collection_case_priors(request, exam_id, case_id):
|
||||
"added": added,
|
||||
"relation": relation,
|
||||
"visibility": visibility,
|
||||
"case_detail": case_detail,
|
||||
"casedetail": casedetail,
|
||||
"collection": collection,
|
||||
"error": "You need to enter text to describe the relationship between the cases",
|
||||
},
|
||||
@@ -2816,7 +2816,7 @@ def collection_case_priors(request, exam_id, case_id):
|
||||
return HttpResponse(html)
|
||||
prior_case = Case.objects.get(pk=request.POST["prior_case_id"])
|
||||
p, created = CasePrior.objects.get_or_create(
|
||||
case_detail=case_detail, prior_case=prior_case
|
||||
casedetail=casedetail, prior_case=prior_case
|
||||
)
|
||||
p.relation_text = request.POST.get("relation", "")
|
||||
p.prior_visibility = request.POST.get("prior_visibility", "AL")
|
||||
@@ -2833,7 +2833,7 @@ def collection_case_priors(request, exam_id, case_id):
|
||||
"added": added,
|
||||
"relation": relation,
|
||||
"visibility": visibility,
|
||||
"case_detail": case_detail,
|
||||
"casedetail": casedetail,
|
||||
"collection": collection,
|
||||
},
|
||||
request=request,
|
||||
@@ -2842,15 +2842,15 @@ def collection_case_priors(request, exam_id, case_id):
|
||||
else:
|
||||
return HttpResponse("False", status=400)
|
||||
|
||||
collection = case_detail.collection
|
||||
collection = casedetail.collection
|
||||
|
||||
added_priors = CasePrior.objects.filter(case_detail=case_detail)
|
||||
added_priors = CasePrior.objects.filter(casedetail=casedetail)
|
||||
|
||||
added_relation_map = {}
|
||||
for prior in added_priors:
|
||||
added_relation_map[prior.prior_case] = (prior.relation_text, prior.prior_visibility)
|
||||
|
||||
case = case_detail.case
|
||||
case = casedetail.case
|
||||
|
||||
available_cases = case.get_all_prior_cases()
|
||||
|
||||
@@ -2864,22 +2864,22 @@ def collection_case_priors(request, exam_id, case_id):
|
||||
form = PriorCaseForm()
|
||||
|
||||
case_number, case_count = collection.get_index_of_case(
|
||||
case_detail.case, case_count=True
|
||||
casedetail.case, case_count=True
|
||||
)
|
||||
|
||||
previous = collection.get_previous_case(case_detail.case)
|
||||
next = collection.get_next_case(case_detail.case)
|
||||
previous = collection.get_previous_case(casedetail.case)
|
||||
next = collection.get_next_case(casedetail.case)
|
||||
|
||||
return render(
|
||||
request,
|
||||
"atlas/collection_case_priors.html",
|
||||
{
|
||||
"case_detail": case_detail,
|
||||
"casedetail": casedetail,
|
||||
"form": form,
|
||||
#"model_form": model_form,
|
||||
# "example_form": example_form,
|
||||
"collection": collection,
|
||||
"case": case_detail.case,
|
||||
"case": casedetail.case,
|
||||
"previous": previous,
|
||||
"next": next,
|
||||
"collection_length": case_count,
|
||||
@@ -2892,9 +2892,9 @@ def collection_case_priors(request, exam_id, case_id):
|
||||
|
||||
@user_is_collection_author_or_atlas_editor
|
||||
def collection_case_questions(request, exam_id, case_id):
|
||||
case_detail = CaseDetail.objects.get(case=case_id, collection=exam_id)
|
||||
casedetail = CaseDetail.objects.get(case=case_id, collection=exam_id)
|
||||
|
||||
collection = case_detail.collection
|
||||
collection = casedetail.collection
|
||||
|
||||
if not collection.collection_type == "QUE":
|
||||
raise Http404("Collection not in question mode")
|
||||
@@ -2903,29 +2903,29 @@ def collection_case_questions(request, exam_id, case_id):
|
||||
# Called if the user saves the correct answer form
|
||||
if request.POST.get("submit") == "answer":
|
||||
# answers = request.POST
|
||||
case_detail.question_answers = json.loads(request.POST.get("json_answer"))
|
||||
case_detail.save()
|
||||
casedetail.question_answers = json.loads(request.POST.get("json_answer"))
|
||||
casedetail.save()
|
||||
example_form = JsonAnswerForm(
|
||||
request.POST, question_schema=case_detail.question_schema
|
||||
request.POST, question_schema=casedetail.question_schema
|
||||
)
|
||||
form = CaseQuestionForm(instance=case_detail)
|
||||
form = CaseQuestionForm(instance=casedetail)
|
||||
# Called if the user saves the main form
|
||||
elif request.POST.get("submit") == "save":
|
||||
form = CaseQuestionForm(request.POST, instance=case_detail)
|
||||
form = CaseQuestionForm(request.POST, instance=casedetail)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
# Add any additional logic or redirection here
|
||||
# example_form = JsonAnswerForm(request.POST, question_schema=case_detail.question_schema)
|
||||
# example_form = JsonAnswerForm(request.POST, question_schema=casedetail.question_schema)
|
||||
post_data = request.POST.copy()
|
||||
if (
|
||||
case_detail.question_schema is not None
|
||||
and case_detail.question_answers is not None
|
||||
casedetail.question_schema is not None
|
||||
and casedetail.question_answers is not None
|
||||
):
|
||||
question_keys = set(case_detail.question_schema["properties"].keys())
|
||||
answer_keys = set(case_detail.question_answers.keys())
|
||||
question_keys = set(casedetail.question_schema["properties"].keys())
|
||||
answer_keys = set(casedetail.question_answers.keys())
|
||||
|
||||
answers = {}
|
||||
for key, value in case_detail.question_answers.items():
|
||||
for key, value in casedetail.question_answers.items():
|
||||
if key in question_keys:
|
||||
answers[key] = value
|
||||
|
||||
@@ -2935,35 +2935,35 @@ def collection_case_questions(request, exam_id, case_id):
|
||||
answers[key] = ""
|
||||
|
||||
post_data["json_answer"] = json.dumps(answers)
|
||||
case_detail.question_answers = answers
|
||||
case_detail.save()
|
||||
casedetail.question_answers = answers
|
||||
casedetail.save()
|
||||
example_form = JsonAnswerForm(
|
||||
post_data, question_schema=case_detail.question_schema
|
||||
post_data, question_schema=casedetail.question_schema
|
||||
)
|
||||
|
||||
form = CaseQuestionForm(instance=case_detail)
|
||||
form = CaseQuestionForm(instance=casedetail)
|
||||
# This shouldn't happen
|
||||
else:
|
||||
assert False
|
||||
form = CaseQuestionForm(request.POST, instance=case_detail)
|
||||
form = CaseQuestionForm(request.POST, instance=casedetail)
|
||||
|
||||
else:
|
||||
post_data = request.POST.copy()
|
||||
post_data["json_answer"] = json.dumps(case_detail.question_answers)
|
||||
post_data["json_answer"] = json.dumps(casedetail.question_answers)
|
||||
example_form = JsonAnswerForm(
|
||||
post_data, question_schema=case_detail.question_schema
|
||||
post_data, question_schema=casedetail.question_schema
|
||||
)
|
||||
|
||||
form = CaseQuestionForm(instance=case_detail)
|
||||
form = CaseQuestionForm(instance=casedetail)
|
||||
pass
|
||||
# post_data = None
|
||||
|
||||
# if case_detail.question_schema is not None and case_detail.question_answers is not None:
|
||||
# question_keys = set(case_detail.question_schema["properties"].keys())
|
||||
# answer_keys = set(case_detail.question_answers.keys())
|
||||
# if casedetail.question_schema is not None and casedetail.question_answers is not None:
|
||||
# question_keys = set(casedetail.question_schema["properties"].keys())
|
||||
# answer_keys = set(casedetail.question_answers.keys())
|
||||
|
||||
# answers = {}
|
||||
# for key, value in case_detail.question_answers.items():
|
||||
# for key, value in casedetail.question_answers.items():
|
||||
# if key in question_keys:
|
||||
# answers[key] = value
|
||||
|
||||
@@ -2974,28 +2974,28 @@ def collection_case_questions(request, exam_id, case_id):
|
||||
|
||||
# post_data = request.POST.copy()
|
||||
# post_data["json_answer"]= json.dumps(answers)
|
||||
# case_detail.question_answers = answers
|
||||
# example_form = JsonAnswerForm(post_data, question_schema=case_detail.question_schema)
|
||||
# casedetail.question_answers = answers
|
||||
# example_form = JsonAnswerForm(post_data, question_schema=casedetail.question_schema)
|
||||
|
||||
# form = CaseQuestionForm(instance=case_detail)
|
||||
# form = CaseQuestionForm(instance=casedetail)
|
||||
|
||||
# blank_form = JsonAnswerForm(question_schema=case_detail.question_schema)
|
||||
# blank_form = JsonAnswerForm(question_schema=casedetail.question_schema)
|
||||
case_number, case_count = collection.get_index_of_case(
|
||||
case_detail.case, case_count=True
|
||||
casedetail.case, case_count=True
|
||||
)
|
||||
|
||||
previous = collection.get_previous_case(case_detail.case)
|
||||
next = collection.get_next_case(case_detail.case)
|
||||
previous = collection.get_previous_case(casedetail.case)
|
||||
next = collection.get_next_case(casedetail.case)
|
||||
|
||||
return render(
|
||||
request,
|
||||
"atlas/collection_case_questions.html",
|
||||
{
|
||||
"case_detail": case_detail,
|
||||
"casedetail": casedetail,
|
||||
"form": form,
|
||||
"example_form": example_form,
|
||||
"collection": collection,
|
||||
"case": case_detail.case,
|
||||
"case": casedetail.case,
|
||||
"previous": previous,
|
||||
"next": next,
|
||||
"collection_length": case_count,
|
||||
@@ -3005,12 +3005,12 @@ def collection_case_questions(request, exam_id, case_id):
|
||||
|
||||
@user_is_collection_author_or_atlas_editor
|
||||
def collection_case_details(request, exam_id, case_id):
|
||||
case_detail = CaseDetail.objects.get(case=case_id, collection=exam_id)
|
||||
casedetail = CaseDetail.objects.get(case=case_id, collection=exam_id)
|
||||
|
||||
collection = case_detail.collection
|
||||
collection = casedetail.collection
|
||||
|
||||
if request.method == "POST":
|
||||
form = CaseDetailForm(request.POST, instance=case_detail)
|
||||
form = CaseDetailForm(request.POST, instance=casedetail)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
if request.htmx:
|
||||
@@ -3020,23 +3020,23 @@ def collection_case_details(request, exam_id, case_id):
|
||||
if request.htmx:
|
||||
return HttpResponse("Invalid form", status=400)
|
||||
else:
|
||||
form = CaseDetailForm(instance=case_detail)
|
||||
form = CaseDetailForm(instance=casedetail)
|
||||
|
||||
case_number, case_count = collection.get_index_of_case(
|
||||
case_detail.case, case_count=True
|
||||
casedetail.case, case_count=True
|
||||
)
|
||||
|
||||
previous = collection.get_previous_case(case_detail.case)
|
||||
next = collection.get_next_case(case_detail.case)
|
||||
previous = collection.get_previous_case(casedetail.case)
|
||||
next = collection.get_next_case(casedetail.case)
|
||||
|
||||
return render(
|
||||
request,
|
||||
"atlas/collection_case_details.html",
|
||||
{
|
||||
"case_detail": case_detail,
|
||||
"casedetail": casedetail,
|
||||
"form": form,
|
||||
"collection": collection,
|
||||
"case": case_detail.case,
|
||||
"case": casedetail.case,
|
||||
"previous": previous,
|
||||
"next": next,
|
||||
"collection_length": case_count,
|
||||
@@ -3054,14 +3054,14 @@ def collection_mark_overview(request, pk):
|
||||
|
||||
cases = collection.cases.all().order_by("casedetail__sort_order").prefetch_related()
|
||||
|
||||
case_details = CaseDetail.objects.filter(
|
||||
casedetails = CaseDetail.objects.filter(
|
||||
case__in=cases, collection=collection
|
||||
).prefetch_related("case")
|
||||
|
||||
answers = CidReportAnswer.objects.filter(question__in=case_details)
|
||||
answers = CidReportAnswer.objects.filter(question__in=casedetails)
|
||||
|
||||
case_map = {}
|
||||
for cd in case_details:
|
||||
for cd in casedetails:
|
||||
case_map[cd] = []
|
||||
|
||||
for answer in answers:
|
||||
@@ -3073,7 +3073,7 @@ def collection_mark_overview(request, pk):
|
||||
{
|
||||
"collection": collection,
|
||||
"answers": answers,
|
||||
"case_details": case_details,
|
||||
"casedetails": casedetails,
|
||||
"case_map": case_map,
|
||||
},
|
||||
)
|
||||
@@ -3091,9 +3091,9 @@ def collection_mark_question(request, pk, case_number):
|
||||
previous = case_number > 0
|
||||
next = case_number < (case_count - 1)
|
||||
|
||||
case_detail = CaseDetail.objects.filter(case=case, collection=collection)
|
||||
casedetail = CaseDetail.objects.filter(case=case, collection=collection)
|
||||
|
||||
answers = CidReportAnswer.objects.filter(question__in=case_detail)
|
||||
answers = CidReportAnswer.objects.filter(question__in=casedetail)
|
||||
|
||||
answer_forms = []
|
||||
if request.method == "POST":
|
||||
@@ -3107,7 +3107,7 @@ def collection_mark_question(request, pk, case_number):
|
||||
if form.is_valid():
|
||||
answer = form.save(commit=False)
|
||||
# answer.cid = cid
|
||||
# answer.question = case_detail
|
||||
# answer.question = casedetail
|
||||
# answer.published_date = timezone.now()
|
||||
answer.save()
|
||||
|
||||
@@ -3145,7 +3145,7 @@ def collection_mark_question(request, pk, case_number):
|
||||
"collection": collection,
|
||||
"series_list": series_list,
|
||||
"answers": answers,
|
||||
"case_detail": case_detail,
|
||||
"casedetail": casedetail,
|
||||
"case": case,
|
||||
"case_number": case_number,
|
||||
"answer_forms": answer_forms,
|
||||
@@ -3228,13 +3228,13 @@ def collection_take_overview(
|
||||
|
||||
cases = collection.cases.all().order_by("casedetail__sort_order").prefetch_related()
|
||||
|
||||
case_details = CaseDetail.objects.filter(case__in=cases, collection=collection)
|
||||
casedetails = CaseDetail.objects.filter(case__in=cases, collection=collection)
|
||||
|
||||
if cid is not None:
|
||||
answers = CidReportAnswer.objects.filter(cid=cid, question__in=case_details)
|
||||
answers = CidReportAnswer.objects.filter(cid=cid, question__in=casedetails)
|
||||
else:
|
||||
answers = UserReportAnswer.objects.filter(
|
||||
user=request.user, question__in=case_details
|
||||
user=request.user, question__in=casedetails
|
||||
)
|
||||
|
||||
answer_question_map = {}
|
||||
@@ -3243,7 +3243,7 @@ def collection_take_overview(
|
||||
|
||||
question_answer_tuples = []
|
||||
answer_count = 0
|
||||
for cd in case_details:
|
||||
for cd in casedetails:
|
||||
self_review = cid_user_exam.selfreview_set.filter(case=cd.case)
|
||||
if cd in answer_question_map and (
|
||||
answer_question_map[cd].answer or answer_question_map[cd].json_answer
|
||||
@@ -3290,7 +3290,7 @@ def collection_case_view_take_answers(
|
||||
cid=cid, user_user=request.user
|
||||
)
|
||||
|
||||
case_detail = CaseDetail.objects.get(case=case, collection=collection)
|
||||
casedetail = CaseDetail.objects.get(case=case, collection=collection)
|
||||
|
||||
return render(
|
||||
request,
|
||||
@@ -3298,7 +3298,7 @@ def collection_case_view_take_answers(
|
||||
{
|
||||
"collection": collection,
|
||||
"case": case,
|
||||
"case_detail": case_detail,
|
||||
"casedetail": casedetail,
|
||||
},
|
||||
)
|
||||
|
||||
@@ -3347,23 +3347,23 @@ def collection_case_view_take(
|
||||
cid_user_exam.start_time = timezone.now()
|
||||
cid_user_exam.save()
|
||||
|
||||
case_detail = CaseDetail.objects.get(case=case, collection=collection)
|
||||
casedetail = CaseDetail.objects.get(case=case, collection=collection)
|
||||
if not collection.review_only():
|
||||
if collection.collection_type == "REP":
|
||||
if cid is not None:
|
||||
answer = case_detail.cidreportanswer_set.filter(cid=cid).first()
|
||||
answer = casedetail.cidreportanswer_set.filter(cid=cid).first()
|
||||
ReportAnswerForm = CidReportAnswerForm
|
||||
else:
|
||||
answer = case_detail.userreportanswer_set.filter(
|
||||
answer = casedetail.userreportanswer_set.filter(
|
||||
user=request.user
|
||||
).first()
|
||||
ReportAnswerForm = UserReportAnswerForm
|
||||
elif collection.collection_type == "QUE":
|
||||
if cid is not None:
|
||||
answer = case_detail.cidreportanswer_set.filter(cid=cid).first()
|
||||
answer = casedetail.cidreportanswer_set.filter(cid=cid).first()
|
||||
ReportAnswerForm = CidQuestionAnswerForm
|
||||
else:
|
||||
answer = case_detail.userreportanswer_set.filter(
|
||||
answer = casedetail.userreportanswer_set.filter(
|
||||
user=request.user
|
||||
).first()
|
||||
ReportAnswerForm = UserQuestionAnswerForm
|
||||
@@ -3381,9 +3381,9 @@ def collection_case_view_take(
|
||||
if not answer and collection.collection_type in ("REP", "QUE"):
|
||||
try:
|
||||
if cid is not None:
|
||||
answer = CidReportAnswer(question=case_detail, cid=cid)
|
||||
answer = CidReportAnswer(question=casedetail, cid=cid)
|
||||
else:
|
||||
answer = UserReportAnswer(question=case_detail, user=request.user)
|
||||
answer = UserReportAnswer(question=casedetail, user=request.user)
|
||||
answer.started_at = timezone.now()
|
||||
answer.save()
|
||||
except Exception:
|
||||
@@ -3396,10 +3396,10 @@ def collection_case_view_take(
|
||||
if not collection.publish_results:
|
||||
if answer:
|
||||
form = ReportAnswerForm(
|
||||
request.POST, instance=answer, case_detail=case_detail
|
||||
request.POST, instance=answer, casedetail=casedetail
|
||||
)
|
||||
else:
|
||||
form = ReportAnswerForm(request.POST, case_detail=case_detail)
|
||||
form = ReportAnswerForm(request.POST, casedetail=casedetail)
|
||||
|
||||
if not cid_user_exam.completed and not (
|
||||
answer is not None and answer.completed
|
||||
@@ -3407,7 +3407,7 @@ def collection_case_view_take(
|
||||
if form.is_valid():
|
||||
answer = form.save(commit=False)
|
||||
answer.set_cid_or_user(cid=cid, user=request.user)
|
||||
answer.question = case_detail
|
||||
answer.question = casedetail
|
||||
# Record submission timestamp
|
||||
answer.submitted_at = timezone.now()
|
||||
# answer.published_date = timezone.now()
|
||||
@@ -3478,7 +3478,7 @@ def collection_case_view_take(
|
||||
)
|
||||
else:
|
||||
if collection.collection_type in ("REP", "QUE"):
|
||||
form = ReportAnswerForm(instance=answer, case_detail=case_detail)
|
||||
form = ReportAnswerForm(instance=answer, casedetail=casedetail)
|
||||
|
||||
series_list = case.series.all().prefetch_related("images", "examination", "plane")
|
||||
|
||||
@@ -3517,7 +3517,7 @@ def collection_case_view_take(
|
||||
|
||||
resources = case.caseresource_set.filter(pre_review=True)
|
||||
|
||||
prior_cases = case_detail.caseprior_set.all()
|
||||
prior_cases = casedetail.caseprior_set.all()
|
||||
|
||||
series_to_load = []
|
||||
|
||||
@@ -3543,7 +3543,7 @@ def collection_case_view_take(
|
||||
"form": form,
|
||||
"collection": collection,
|
||||
"case": case,
|
||||
"case_detail": case_detail,
|
||||
"casedetail": casedetail,
|
||||
"series_list": series_list,
|
||||
"series_to_load": series_to_load,
|
||||
"case_number": case_number,
|
||||
@@ -3636,14 +3636,14 @@ def collection_case_dicom_json_review(request, exam_id, case_id):
|
||||
return collection_case_dicom_json(request, exam_id, case_id, review=True)
|
||||
|
||||
def collection_case_dicom_json(request, exam_id, case_id, review=False):
|
||||
case_detail = CaseDetail.objects.get(case=case_id, collection=exam_id)
|
||||
casedetail = CaseDetail.objects.get(case=case_id, collection=exam_id)
|
||||
|
||||
if review:
|
||||
priors = case_detail.caseprior_set.exclude(prior_visibility="NO")
|
||||
priors = casedetail.caseprior_set.exclude(prior_visibility="NO")
|
||||
else:
|
||||
priors = case_detail.caseprior_set.exclude(prior_visibility__in=["NO", "RE"])
|
||||
priors = casedetail.caseprior_set.exclude(prior_visibility__in=["NO", "RE"])
|
||||
|
||||
return JsonResponse(case_detail.case.get_case_dicom_json(priors=priors))
|
||||
return JsonResponse(casedetail.case.get_case_dicom_json(priors=priors))
|
||||
|
||||
|
||||
def case_dicom_json(request, pk):
|
||||
@@ -3664,12 +3664,12 @@ def delete_collection_cid_answers(request, exam_id, cid):
|
||||
|
||||
cases = collection.cases.all().order_by("casedetail__sort_order").prefetch_related()
|
||||
|
||||
case_details = CaseDetail.objects.filter(
|
||||
casedetails = CaseDetail.objects.filter(
|
||||
case__in=cases, collection=collection
|
||||
).prefetch_related("case")
|
||||
|
||||
cid_user_answers = CidReportAnswer.objects.filter(
|
||||
question__in=case_details, cid=cid
|
||||
question__in=casedetails, cid=cid
|
||||
)
|
||||
|
||||
temp = {}
|
||||
@@ -3686,11 +3686,11 @@ def delete_collection_answers(request, exam_id):
|
||||
|
||||
cases = collection.cases.all().order_by("casedetail__sort_order").prefetch_related()
|
||||
|
||||
case_details = CaseDetail.objects.filter(
|
||||
casedetails = CaseDetail.objects.filter(
|
||||
case__in=cases, collection=collection
|
||||
).prefetch_related("case")
|
||||
|
||||
cid_user_answers = CidReportAnswer.objects.filter(question__in=case_details)
|
||||
cid_user_answers = CidReportAnswer.objects.filter(question__in=casedetails)
|
||||
|
||||
temp = {}
|
||||
for ans in cid_user_answers:
|
||||
@@ -3719,11 +3719,11 @@ def collection_scores_cid(request, pk):
|
||||
|
||||
cases = collection.cases.all().order_by("casedetail__sort_order").prefetch_related()
|
||||
|
||||
case_details = CaseDetail.objects.filter(
|
||||
casedetails = CaseDetail.objects.filter(
|
||||
case__in=cases, collection=collection
|
||||
).prefetch_related("case")
|
||||
|
||||
cid_user_answers = CidReportAnswer.objects.filter(question__in=case_details)
|
||||
cid_user_answers = CidReportAnswer.objects.filter(question__in=casedetails)
|
||||
|
||||
cids = set()
|
||||
|
||||
@@ -4126,7 +4126,7 @@ def collection_question_schemas(request, exam_id: int):
|
||||
|
||||
questions = collection.cases.all().prefetch_related()
|
||||
|
||||
case_details = (
|
||||
casedetails = (
|
||||
CaseDetail.objects.filter(case__in=questions, collection=collection)
|
||||
.prefetch_related("case")
|
||||
.order_by("sort_order")
|
||||
@@ -4137,7 +4137,7 @@ def collection_question_schemas(request, exam_id: int):
|
||||
"atlas/collection_question_schemas.html",
|
||||
{
|
||||
"collection": collection,
|
||||
"case_details": case_details,
|
||||
"casedetails": casedetails,
|
||||
},
|
||||
)
|
||||
|
||||
@@ -4255,10 +4255,10 @@ def collection_reset_answers_user(request, exam_id: int, user_id: int):
|
||||
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()
|
||||
casedetails = collection.casedetail_set.all().prefetch_related()
|
||||
|
||||
# Delete all answers
|
||||
for case in case_details:
|
||||
for case in casedetails:
|
||||
user_answers = case.userreportanswer_set.filter(user_id=user_id)
|
||||
user_answers.delete()
|
||||
|
||||
@@ -4276,10 +4276,10 @@ def collection_reset_answers_ciduser(request, exam_id: int, cid: int):
|
||||
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()
|
||||
casedetails = collection.casedetail_set.all().prefetch_related()
|
||||
|
||||
# Delete all answers
|
||||
for case in case_details:
|
||||
for case in casedetails:
|
||||
cid_answers = case.cidreportanswer_set.filter(cid=cid)
|
||||
cid_answers.delete()
|
||||
|
||||
@@ -4297,10 +4297,10 @@ def collection_reset_answers(request, exam_id: int):
|
||||
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()
|
||||
casedetails = collection.casedetail_set.all().prefetch_related()
|
||||
|
||||
# Delete all answers
|
||||
for case in case_details:
|
||||
for case in casedetails:
|
||||
cid_answers = case.cidreportanswer_set.all()
|
||||
|
||||
cid_answers.delete()
|
||||
@@ -4522,22 +4522,38 @@ def collection_case_displaysetup(request, collection_id, case_id):
|
||||
View to set up the display options for a specific case in a collection.
|
||||
This can include setting which series to display, annotations, etc.
|
||||
"""
|
||||
case_detail = get_object_or_404(CaseDetail, case__pk=case_id, collection__pk=collection_id)
|
||||
casedetail = get_object_or_404(CaseDetail, case__pk=case_id, collection__pk=collection_id)
|
||||
|
||||
if request.method == "POST":
|
||||
data = json.loads(request.body.decode("utf-8"))
|
||||
if data.get("reset_viewerstate"):
|
||||
case_detail.default_viewerstate = None
|
||||
case_detail.save()
|
||||
casedetail.default_viewerstate = None
|
||||
casedetail.save()
|
||||
return HttpResponse("<span class='text-success'>Viewer state reset to default.</span>")
|
||||
viewerstate = data.get("viewerstate")
|
||||
if viewerstate is not None:
|
||||
case_detail.default_viewerstate = viewerstate
|
||||
case_detail.save()
|
||||
casedetail.default_viewerstate = viewerstate
|
||||
casedetail.save()
|
||||
return HttpResponse("<span class='text-success'>Viewer state saved.</span>")
|
||||
else:
|
||||
return HttpResponse("<span class='text-danger'>No viewer state provided.</span>", status=400)
|
||||
|
||||
collection = casedetail.collection
|
||||
|
||||
case_number, case_count = collection.get_index_of_case(
|
||||
casedetail.case, case_count=True
|
||||
)
|
||||
|
||||
previous = collection.get_previous_case(casedetail.case)
|
||||
next = collection.get_next_case(casedetail.case)
|
||||
|
||||
return render(request, "atlas/collection_case_displaysetup.html", {
|
||||
"case_detail": case_detail
|
||||
"casedetail": casedetail,
|
||||
"collection": collection,
|
||||
"case_number": case_number,
|
||||
"case_count": case_count,
|
||||
"previous": previous,
|
||||
"next": next,
|
||||
"collection_length": case_count,
|
||||
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user