def close_finding(request, fid): finding = get_object_or_404(Finding, id=fid) # in order to close a finding, we need to capture why it was closed # we can do this with a Note if request.method == 'POST': form = CloseFindingForm(request.POST) if form.is_valid(): now = datetime.now(tz=localtz) new_note = form.save(commit=False) new_note.author = request.user new_note.date = now new_note.save() finding.notes.add(new_note) finding.active = False finding.mitigated = now finding.mitigated_by = request.user finding.last_reviewed = finding.mitigated finding.last_reviewed_by = request.user finding.endpoints.clear() finding.save() messages.add_message(request, messages.SUCCESS, 'Finding closed.', extra_tags='alert-success') return HttpResponseRedirect(reverse('view_test', args=(finding.test.id,))) else: form = CloseFindingForm() add_breadcrumb(parent=finding, title="Close", top_level=False, request=request) return render(request, 'dojo/close_finding.html', {'finding': finding, 'user': request.user, 'form': form})