This commit is contained in:
Ross
2022-04-04 13:44:43 +01:00
parent 562d12abc7
commit c05b86d61e
3 changed files with 59 additions and 3 deletions
+10 -1
View File
@@ -405,4 +405,13 @@ class CidReportAnswerForm(ModelForm):
def __init__(self, *args, **kwargs):
super(CidReportAnswerForm, self).__init__(*args, **kwargs)
self.fields['answer'].required = False
self.fields['answer'].required = False
class CidReportAnswerMarkForm(ModelForm):
class Meta:
model = CidReportAnswer
fields = ["score"]
def __init__(self, *args, **kwargs):
super(CidReportAnswerMarkForm, self).__init__(*args, **kwargs)
self.fields['score'].required = False
@@ -5,10 +5,14 @@
<h3>Marking case: {{case_detail.case.title}}</h3>
<ul>
{% for answer in answers %}
{% for answer, form in answer_forms %}
<li>
{{answer.answer}}: {{answer.score}}
{{answer.cid}}<br />
Answer: {{answer.answer}} <br />
Score: {{answer.score}}<br />
{{form}}
</li>
{% endfor %}
</ul>
+43
View File
@@ -34,6 +34,7 @@ from .forms import (
CaseCollectionForm,
CaseForm,
CidReportAnswerForm,
CidReportAnswerMarkForm,
ConditionForm,
FindingForm,
SeriesForm,
@@ -1121,6 +1122,47 @@ def collection_mark_question(request, pk, case_number):
answers = CidReportAnswer.objects.filter(question__in=case_detail)
answer_forms = []
if request.method == "POST":
for answer in answers:
if answer:
form = CidReportAnswerMarkForm(request.POST, instance=answer)
else:
form = CidReportAnswerMarkForm(request.POST)
if form.is_valid():
answer = form.save(commit=False)
#answer.cid = cid
#answer.question = case_detail
# answer.published_date = timezone.now()
answer.save()
kwargs = {"pk": pk}
if "save" in request.POST:
return redirect(
"atlas:collection_case_view_take",
case_number=case_number + 1,
**kwargs
)
elif "previous" in request.POST:
return redirect(
"atlas:collection_case_view_take",
case_number=case_number - 1,
**kwargs
)
elif "finish" in request.POST:
return redirect("atlas:collection_take_overview", **kwargs)
elif "goto" in request.POST:
return redirect(
"atlas:collection_case_view_take",
case_number=int(request.POST.get("goto")),
**kwargs
)
else:
for answer in answers:
form = CidReportAnswerMarkForm(instance=answer)
answer_forms.append((answer, form))
return render(
request,
"atlas/collection_mark_question.html",
@@ -1129,6 +1171,7 @@ def collection_mark_question(request, pk, case_number):
"answers": answers,
"case_detail": case_detail,
"case_number": case_number,
"answer_forms": answer_forms,
},
)