ISO-27001-Risk-Management/templates/risks/item_risk.html

237 lines
8.6 KiB
HTML
Raw Normal View History

{% extends "base.html" %}
{% load risk_extras %}
{% block crumbs %}
<li><a href="{% url 'risks:list_risks' %}">Risikoanalyse</a></li>
<li><a href="{% url 'risks:show_risk' risk.id %}">{{ risk.title }}</a></li>
{% endblock %}
{% block content %}
<div class="container">
<section class="hero is-small">
<div class="hero-body">
<p class="title">Risiko: {{ risk.title }}</p>
<p class="subtitle is-6">{{ risk.description }}</p>
</div>
</section>
<!-- Überblick-->
<div class="card">
<header class="card-header">
<p class="card-header-title">Überblick</p>
{% if request.user.is_staff %}
<a class="card-header-icon has-text-warning" href="{% url 'admin:risks_risk_change' risk.pk %}" title="Risiko bearbeiten">
<span class="icon"><i class="fas fa-edit" aria-hidden="true"></i></span>
</a>
<a class="card-header-icon has-text-danger" href="{% url 'admin:risks_risk_delete' risk.pk %}" title="Risiko Löschen (WARNUNG!)">
<span class="icon"><i class="fas fa-trash" aria-hidden="true"></i></span>
</a>
{% endif %}
</header>
<!-- Inhalt Überblick-->
<div class="card-content">
<div class="columns is-multiline">
<div class="column is-half">
<p><strong>Asset:</strong> {{ risk.asset|default:"-" }}</p>
<p><strong>Prozess:</strong> {{ risk.process|default:"-" }}</p>
<p>
<strong>Schutzziele:</strong>
{% if risk.cia %}
{{ risk.get_cia_display }}
{% else %}
<span class="has-text-grey">Noch nicht zugewiesen</span>
{% endif %}
</p>
</div>
<div class="column is-half">
<p><strong>Kategorie:</strong> {{ risk.category|default:"-" }}</p>
<p><strong>Risikoeigner:</strong> {{ risk.owner|default:"-" }}</p>
<p><strong>Erstellt am:</strong> {{ risk.created_at|date:'d.m.Y H:i' }}</p>
<p><strong>Aktualisiert am:</strong> {{ risk.updated_at|date:'d.m.Y H:i' }}</p>
</div>
</div>
<!-- Risikobewertung -->
<h3>Risikobewertung</h3>
<div class="columns is-multiline">
<!-- Bruttorisiko -->
<div class="column is-half">
<div class="box">
<h4>Brutto (vor Maßnahmen)</h4>
<div class="columns is-multiline">
<!-- Eintrittswahrscheinlichkeit -->
<div class="column is-half has-text-centered">
<p class="heading">Eintrittswahrscheinlichkeit</p>
<button class="button is-small {{ risk.likelihood|likelihood_class }}">
{{ risk.get_likelihood_display }}
</button>
</div> <!-- Eintrittswahrscheinlichkeit Ende -->
<!-- Schadensausmaß -->
<div class="column is-half has-text-centered">
<p class="heading">Schadensausmaß</p>
<button class="button is-small {{ risk.impact|impact_class }}">
{{ risk.get_impact_display }}
</button>
</div> <!-- Schadensausmaß Ende -->
<!-- Stufe -->
<div class="column is-half has-text-centered">
<p class="heading">Stufe</p>
<button class="button is-small {{ risk.level|level_class }}">
{{ risk.level }}
</button>
</div> <!-- Stufe Ende -->
<!-- Score -->
<div class="column is-half has-text-centered">
<p class="heading">Score</p>
<button class="button is-small {{ risk.score|score_class }}">
{{ risk.score }} / 20
</button>
</div> <!-- Score Ende -->
</div>
</div>
</div> <!-- Ende Bruttorisiko -->
<!-- Nettorisiko -->
<div class="column is-half">
<div class="box">
<h4>Netto (nach Maßnahmen)</h4>
{% if risk.residual_risk %}
<div class="columns is-multiline">
<!-- Eintrittswahrscheinlichkeit -->
<div class="column is-half has-text-centered">
<p class="heading">Eintrittswahrscheinlichkeit</p>
<button class="button is-small {{ risk.likelihood|likelihood_class }}">
{{ risk.residual_risk.get_likelihood_display }}
</button>
</div> <!-- Eintrittswahrscheinlichkeit Ende -->
<!-- Schadensausmaß -->
<div class="column is-half has-text-centered">
<p class="heading">Schadensausmaß</p>
<button class="button is-small {{ risk.impact|impact_class }}">
{{ risk.residual_risk.get_impact_display }}
</button>
</div> <!-- Schadensausmaß Ende -->
<!-- Stufe -->
<div class="column is-half has-text-centered">
<p class="heading">Stufe</p>
<button class="button is-small {{ risk.level|level_class }}">
{{ risk.residual_risk.level }}
</button>
</div> <!-- Stufe Ende -->
<!-- Score -->
<div class="column is-half has-text-centered">
<p class="heading">Score</p>
<button class="button is-small {{ risk.score|score_class }}">
{{ risk.residual_risk.score }} / 20
</button>
</div> <!-- Score Ende -->
</div>
{% else %}
<p class="has-text-grey">Noch kein Nettorisiko erfasst.</p>
{% endif %}
</div>
</div> <!-- Ende Nettorisiko -->
</div> <!-- Ende Risikobewertung -->
</div> <!-- Ende Inhalt Überblick -->
</div> <!-- Ende Überblick -->
<!-- Maßnahmen -->
<div class="card">
<header class="card-header">
<p class="card-header-title">Maßnahmen</p>
</header>
<div class="card-content">
{% if risk.controls.exists %}
<table class="table is-striped is-hoverable is-fullwidth">
<thead>
<tr>
<th>Titel</th>
<th>Status</th>
<th>Frist</th>
<th>Verantwortlicher</th>
<th>Link</th>
</tr>
</thead>
<tbody>
{% for control in risk.controls.all %}
<tr onclick="window.location.href='/risks/controls/{{ control.id }}';" style="cursor:pointer;">
<td>{{ control.title }}</td>
<td>{{ control.get_status_display }}</td>
<td>
{% if control.due_date %}
{{ control.due_date|date:"d.m.Y" }}
{% else %}
{% endif %}
</td>
<td>
{% if control.responsible %}
{{ control.responsible.get_full_name|default:control.responsible.username }}
{% else %}
{% endif %}
</td>
<td>
{% if control.wiki_link %}
<a href="{{ control.wiki_link }}" target="_blank">🔗</a>
{% else %}
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p class="has-text-grey">Keine Maßnahmen erfasst.</p>
{% endif %}
</div>
</div>
<!-- Ende Maßnahmen -->
<!-- Historie -->
<div class="card">
<header class="card-header">
<p class="card-header-title">Historie</p>
</header>
<div class="card-content">
{% if logs %}
<table class="table is-striped is-fullwidth">
<thead>
<tr>
<th>Zeitpunkt</th>
<th>Benutzer</th>
<th>Aktion</th>
</tr>
</thead>
<tbody>
{% for log in logs %}
<tr>
<td>{{ log.action_time|date:"d.m.Y H:i" }}</td>
<td>{{ log.user.get_full_name|default:log.user.username }}</td>
<td>{{ log.get_change_message }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p class="has-text-grey">Keine Historie vorhanden.</p>
{% endif %}
</div>
</div> <!-- Ende Historie -->
<br><br>
</div>
{% endblock %}