From c05b86d61e1f4802f45cab03f8d0002e0fc4dfff Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 4 Apr 2022 13:44:43 +0100 Subject: [PATCH] . --- atlas/forms.py | 11 ++++- .../atlas/collection_mark_question.html | 8 +++- atlas/views.py | 43 +++++++++++++++++++ 3 files changed, 59 insertions(+), 3 deletions(-) diff --git a/atlas/forms.py b/atlas/forms.py index 69fb8692..1a18b2e2 100755 --- a/atlas/forms.py +++ b/atlas/forms.py @@ -405,4 +405,13 @@ class CidReportAnswerForm(ModelForm): def __init__(self, *args, **kwargs): super(CidReportAnswerForm, self).__init__(*args, **kwargs) - self.fields['answer'].required = False \ No newline at end of file + 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 \ No newline at end of file diff --git a/atlas/templates/atlas/collection_mark_question.html b/atlas/templates/atlas/collection_mark_question.html index 6d005ce4..ee1674cf 100644 --- a/atlas/templates/atlas/collection_mark_question.html +++ b/atlas/templates/atlas/collection_mark_question.html @@ -5,10 +5,14 @@

Marking case: {{case_detail.case.title}}

diff --git a/atlas/views.py b/atlas/views.py index 4e2b4f57..5241bb6a 100755 --- a/atlas/views.py +++ b/atlas/views.py @@ -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, }, )