add mark_risk_as_reviewd button

This commit is contained in:
Kevin Heyer 2025-09-15 11:12:12 +02:00
parent 9c1fa2afa9
commit 32495e2763

View file

@ -195,6 +195,21 @@ def show_risk(request, id):
logs = LogEntry.objects.filter(content_type=ct, object_id=risk.pk).order_by("-action_time") logs = LogEntry.objects.filter(content_type=ct, object_id=risk.pk).order_by("-action_time")
return render(request, "risks/item_risk.html", {"risk": risk, "logs": logs}) return render(request, "risks/item_risk.html", {"risk": risk, "logs": logs})
@login_required
def mark_risk_reviewed(request, pk):
"""Mark a risk as reviewed and close if all controls are completed."""
risk = get_object_or_404(Risk, pk=pk)
all_done = all(c.status in ("completed", "verified") for c in risk.controls.all())
if all_done:
risk.status = "closed"
risk._changed_by = request.user
risk.save(update_fields=["status", "updated_at"])
messages.success(request, _("Risk has been marked as reviewed and closed."))
else:
messages.error(request, _("Not all controls are completed. Risk cannot be closed yet."))
return redirect("risks:show_risk", id=risk.pk)
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# Web Views: Controls # Web Views: Controls