diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 543bf48..830a622 100644 Binary files a/locale/de/LC_MESSAGES/django.mo and b/locale/de/LC_MESSAGES/django.mo differ diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index bc0ede0..7f1d4d4 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: wira-risk-management\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-16 14:08+0200\n" +"POT-Creation-Date: 2025-09-19 11:02+0200\n" "PO-Revision-Date: 2025-09-09 13:45+0200\n" "Last-Translator: Kevin Heyer \n" "Language-Team: German\n" @@ -49,7 +49,7 @@ msgid "Users" msgstr "Benutzer" #: risks/admin.py:166 risks/models.py:370 templates/risks/item_control.html:96 -#: templates/risks/item_incident.html:88 templates/risks/item_risk.html:245 +#: templates/risks/item_incident.html:88 templates/risks/item_risk.html:260 msgid "User" msgstr "Benutzer" @@ -114,10 +114,11 @@ msgid "Risk Management" msgstr "Risikomanagement" #: risks/forms.py:13 risks/models.py:87 templates/risks/dashboard.html:83 -#: templates/risks/dashboard.html:108 templates/risks/item_control.html:35 -#: templates/risks/item_incident.html:36 templates/risks/item_risk.html:51 -#: templates/risks/item_risk.html:189 templates/risks/item_risk.html:219 -#: templates/risks/list_controls.html:48 templates/risks/list_controls.html:100 +#: templates/risks/dashboard.html:108 templates/risks/dashboard.html:133 +#: templates/risks/item_control.html:35 templates/risks/item_incident.html:36 +#: templates/risks/item_risk.html:54 templates/risks/item_risk.html:204 +#: templates/risks/item_risk.html:234 templates/risks/list_controls.html:48 +#: templates/risks/list_controls.html:100 #: templates/risks/list_incidents.html:48 #: templates/risks/list_incidents.html:99 templates/risks/list_risks.html:128 msgid "Status" @@ -197,7 +198,7 @@ msgid "Availability" msgstr "Verfügbarkeit" #: risks/models.py:78 risks/models.py:201 risks/models.py:270 -#: templates/risks/item_risk.html:188 +#: templates/risks/item_risk.html:203 msgid "Title" msgstr "Titel" @@ -207,34 +208,34 @@ msgid "Description" msgstr "Beschreibung" #: risks/models.py:80 templates/risks/item_control.html:68 -#: templates/risks/item_incident.html:60 templates/risks/item_risk.html:40 +#: templates/risks/item_incident.html:60 templates/risks/item_risk.html:42 #: templates/risks/list_risks.html:119 msgid "Asset" msgstr "Asset" #: risks/models.py:81 templates/risks/item_control.html:69 -#: templates/risks/item_incident.html:61 templates/risks/item_risk.html:41 +#: templates/risks/item_incident.html:61 templates/risks/item_risk.html:43 #: templates/risks/list_risks.html:125 msgid "Process" msgstr "Prozess" #: risks/models.py:82 templates/risks/item_control.html:67 -#: templates/risks/item_incident.html:59 templates/risks/item_risk.html:42 +#: templates/risks/item_incident.html:59 templates/risks/item_risk.html:44 #: templates/risks/list_risks.html:122 msgid "Category" msgstr "Kategorie" #: risks/models.py:83 templates/risks/item_control.html:46 -#: templates/risks/item_incident.html:39 templates/risks/item_risk.html:55 +#: templates/risks/item_incident.html:39 templates/risks/item_risk.html:70 msgid "Created at" msgstr "Erstellt am" #: risks/models.py:84 templates/risks/item_control.html:47 -#: templates/risks/item_incident.html:40 templates/risks/item_risk.html:56 +#: templates/risks/item_incident.html:40 templates/risks/item_risk.html:71 msgid "Updated at" msgstr "Aktualisiert am" -#: risks/models.py:85 templates/risks/item_risk.html:63 +#: risks/models.py:85 templates/risks/item_risk.html:78 msgid "Effects" msgstr "Auswirkungen" @@ -280,7 +281,7 @@ msgid "Auditlogs" msgstr "Audit-Logs" #: risks/models.py:261 templates/risks/item_incident.html:33 -#: templates/risks/item_risk.html:218 templates/risks/list_incidents.html:97 +#: templates/risks/item_risk.html:233 templates/risks/list_incidents.html:97 msgid "Incident" msgstr "Vorfall" @@ -374,7 +375,7 @@ msgstr "Benutzer gelöscht" msgid "Notification" msgstr "Nachricht" -#: risks/models.py:322 templates/base.html:96 +#: risks/models.py:322 templates/base.html:98 #: templates/risks/notifications.html:4 msgid "Notifications" msgstr "Nachrichten" @@ -409,7 +410,8 @@ msgstr "Sende an alle App-Mitarbeiter" #: risks/models.py:438 msgid "Extra recipients (emails, comma or newline separated)" -msgstr "Zusätzliche Empfänger (E-Mails, durch Komma oder Zeilenumbruch getrennt)" +msgstr "" +"Zusätzliche Empfänger (E-Mails, durch Komma oder Zeilenumbruch getrennt)" #: risks/signals.py:71 #, python-brace-format @@ -457,7 +459,8 @@ msgstr "Maßnahme gelöscht: {t}" #: risks/signals.py:218 #, python-brace-format msgid "Residual review required for risk '{t}' due to control change" -msgstr "Restrisikoprüfung nötig für das Risiko: '{t}', da Maßnahmen geändert wurden" +msgstr "" +"Restrisikoprüfung nötig für das Risiko: '{t}', da Maßnahmen geändert wurden" #: risks/signals.py:245 #, python-brace-format @@ -505,29 +508,23 @@ msgstr "Das Risiko wurde geprüft und als geschlossen markiert" #: risks/views.py:220 msgid "Not all controls are completed. Risk cannot be closed yet." -msgstr "Nicht alle Maßnhamen sind abgeschlossen, das Risiko kann nicht geschlossen werden." +msgstr "" +"Nicht alle Maßnhamen sind abgeschlossen, das Risiko kann nicht geschlossen " +"werden." -#: risks/views.py:378 -msgid "Notification marked as read." -msgstr "Nachricht als gelesen markiert" - -#: risks/views.py:388 -msgid "All notifications marked as read." -msgstr "Alle Benachrichtigungen wurden als gelesen Markiert" - -#: risks/views.py:407 +#: risks/views.py:409 msgid "Risk status updated." msgstr "Risikostatus Aktualisiert" -#: risks/views.py:423 +#: risks/views.py:425 msgid "Control status updated." msgstr "Maßnahmenstatus Aktualisiert" -#: risks/views.py:439 +#: risks/views.py:441 msgid "Incident status updated." msgstr "Vorfallstatus Aktualisiert" -#: risks/views.py:456 +#: risks/views.py:458 msgid "Residual review flag updated." msgstr "Restrisiko geprüft" @@ -549,27 +546,27 @@ msgstr "Risikomatrix" msgid "Risk analysis" msgstr "Risikoanalyse" -#: templates/base.html:91 +#: templates/base.html:93 msgid "AdminCP" msgstr "Adminbereich" -#: templates/base.html:104 +#: templates/base.html:106 msgid "Derk Mode" msgstr "Dark Mode" -#: templates/base.html:110 +#: templates/base.html:112 msgid "Logout" msgstr "Logout" -#: templates/base.html:125 +#: templates/base.html:127 msgid "Login" msgstr "Login" -#: templates/base.html:160 templates/base.html:167 +#: templates/base.html:162 templates/base.html:169 msgid "Light Mode" msgstr "Light Mode" -#: templates/base.html:170 +#: templates/base.html:172 msgid "Dark Mode" msgstr "Dark Mode" @@ -583,7 +580,7 @@ msgstr "Risiken" #: templates/risks/dashboard.html:36 msgid "Residual Risks Needing Review" -msgstr "Restrisiken ohne Verifizierung" +msgstr "Fehlende Restrisiken" #: templates/risks/dashboard.html:44 msgid "Unread Notifications" @@ -594,23 +591,28 @@ msgid "Risks by CIA" msgstr "CIA Risiken" #: templates/risks/dashboard.html:78 -msgid "Controls by Status" -msgstr "Maßnahmen nach Status" +msgid "Risks by Status" +msgstr "Risiken nach Status" #: templates/risks/dashboard.html:84 templates/risks/dashboard.html:109 +#: templates/risks/dashboard.html:134 msgid "Count" msgstr "Anzahl" #: templates/risks/dashboard.html:94 templates/risks/dashboard.html:119 -#: templates/risks/list_risks.html:185 +#: templates/risks/dashboard.html:144 templates/risks/list_risks.html:185 msgid "No data" msgstr "Keine Daten" #: templates/risks/dashboard.html:103 +msgid "Controls by Status" +msgstr "Maßnahmen nach Status" + +#: templates/risks/dashboard.html:128 msgid "Incidents by Status" msgstr "Vorfälle nach Status" -#: templates/risks/dashboard.html:127 +#: templates/risks/dashboard.html:152 msgid "Risk Trend (per Month)" msgstr "Risikotrend (pro Monat)" @@ -637,17 +639,17 @@ msgstr "Maßnahme bearbeiten" msgid "Delete Control" msgstr "Maßnahme löschen" -#: templates/risks/item_control.html:34 templates/risks/item_risk.html:191 +#: templates/risks/item_control.html:34 templates/risks/item_risk.html:206 #: templates/risks/list_controls.html:63 templates/risks/list_controls.html:99 msgid "Responsible" msgstr "Verantwortliche/r" -#: templates/risks/item_control.html:37 templates/risks/item_risk.html:192 +#: templates/risks/item_control.html:37 templates/risks/item_risk.html:207 #: templates/risks/list_controls.html:102 msgid "Link" msgstr "Link" -#: templates/risks/item_control.html:48 templates/risks/item_risk.html:190 +#: templates/risks/item_control.html:48 templates/risks/item_risk.html:205 #: templates/risks/list_controls.html:101 msgid "Deadline" msgstr "Frist" @@ -661,17 +663,17 @@ msgid "No linked risks." msgstr "Keine zugehörigen Risiken" #: templates/risks/item_control.html:95 templates/risks/item_incident.html:87 -#: templates/risks/item_risk.html:244 +#: templates/risks/item_risk.html:259 msgid "Time" msgstr "Zeitpunkt" #: templates/risks/item_control.html:97 templates/risks/item_incident.html:89 -#: templates/risks/item_risk.html:246 +#: templates/risks/item_risk.html:261 msgid "Action" msgstr "Aktion" #: templates/risks/item_control.html:108 templates/risks/item_incident.html:100 -#: templates/risks/item_risk.html:257 +#: templates/risks/item_risk.html:272 msgid "No history found." msgstr "Keine Historie vorhanden" @@ -683,7 +685,7 @@ msgstr "Vorfall bearbeiten" msgid "Delete Incident" msgstr "Vorfall löschen" -#: templates/risks/item_incident.html:35 templates/risks/item_risk.html:220 +#: templates/risks/item_incident.html:35 templates/risks/item_risk.html:235 #: templates/risks/list_incidents.html:100 msgid "Reported on" msgstr "Gemeldet am" @@ -700,67 +702,67 @@ msgstr "Risiko bearbeiten" msgid "Delete Risk" msgstr "Risiko löschen" -#: templates/risks/item_risk.html:26 templates/risks/item_risk.html:27 +#: templates/risks/item_risk.html:27 templates/risks/item_risk.html:28 msgid "Mark Risk as reviewed" msgstr "Risiko als geprüft markieren" -#: templates/risks/item_risk.html:44 +#: templates/risks/item_risk.html:46 msgid "Protection goals" msgstr "Schutzziele" -#: templates/risks/item_risk.html:48 +#: templates/risks/item_risk.html:50 msgid "Not yet assigned" msgstr "Keine Zugewiesenen Ziele" -#: templates/risks/item_risk.html:54 +#: templates/risks/item_risk.html:69 msgid "Risk owner" msgstr "Risikoeigner" -#: templates/risks/item_risk.html:57 +#: templates/risks/item_risk.html:72 msgid "Resubmission" msgstr "Wiedervorlagedatum" -#: templates/risks/item_risk.html:70 +#: templates/risks/item_risk.html:85 msgid "Risk assessment" msgstr "Risikomanagement" -#: templates/risks/item_risk.html:79 +#: templates/risks/item_risk.html:94 msgid "Gross (before measures)" msgstr "Brutto (vor Maßnahmen)" -#: templates/risks/item_risk.html:85 templates/risks/item_risk.html:131 +#: templates/risks/item_risk.html:100 templates/risks/item_risk.html:146 #: templates/risks/risk_matrix.html:21 templates/risks/risk_matrix.html:79 #: templates/risks/risk_matrix.html:121 msgid "Likelihood" msgstr "Eintritt" -#: templates/risks/item_risk.html:94 templates/risks/item_risk.html:140 +#: templates/risks/item_risk.html:109 templates/risks/item_risk.html:155 #: templates/risks/risk_matrix.html:21 templates/risks/risk_matrix.html:79 #: templates/risks/risk_matrix.html:121 msgid "Impact" msgstr "Schaden" -#: templates/risks/item_risk.html:103 templates/risks/item_risk.html:149 +#: templates/risks/item_risk.html:118 templates/risks/item_risk.html:164 msgid "Level" msgstr "Stufe" -#: templates/risks/item_risk.html:112 templates/risks/item_risk.html:158 +#: templates/risks/item_risk.html:127 templates/risks/item_risk.html:173 msgid "Score" msgstr "Score" -#: templates/risks/item_risk.html:125 +#: templates/risks/item_risk.html:140 msgid "Net (after measures)" msgstr "Netto (nach Maßnahmen)" -#: templates/risks/item_risk.html:169 +#: templates/risks/item_risk.html:184 msgid "Add net Risk" msgstr "Restrisiko hinzufügen" -#: templates/risks/item_risk.html:205 +#: templates/risks/item_risk.html:220 msgid "No measures recorded." msgstr "Keine Maßnahmen gefunden." -#: templates/risks/item_risk.html:231 +#: templates/risks/item_risk.html:246 msgid "No incidents recorded." msgstr "Keine Vorfälle gefunden." @@ -862,6 +864,12 @@ msgstr "Brutto" msgid "Net" msgstr "Netto" +#~ msgid "Notification marked as read." +#~ msgstr "Nachricht als gelesen markiert" + +#~ msgid "All notifications marked as read." +#~ msgstr "Alle Benachrichtigungen wurden als gelesen Markiert" + #~ msgid "No net risk recorded yet." #~ msgstr "Kein Restrisiko vergeben" diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 35fb559..0cc6167 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-16 14:08+0200\n" +"POT-Creation-Date: 2025-09-19 11:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -55,7 +55,7 @@ msgid "Users" msgstr "" #: risks/admin.py:166 risks/models.py:370 templates/risks/item_control.html:96 -#: templates/risks/item_incident.html:88 templates/risks/item_risk.html:245 +#: templates/risks/item_incident.html:88 templates/risks/item_risk.html:260 msgid "User" msgstr "" @@ -120,10 +120,11 @@ msgid "Risk Management" msgstr "" #: risks/forms.py:13 risks/models.py:87 templates/risks/dashboard.html:83 -#: templates/risks/dashboard.html:108 templates/risks/item_control.html:35 -#: templates/risks/item_incident.html:36 templates/risks/item_risk.html:51 -#: templates/risks/item_risk.html:189 templates/risks/item_risk.html:219 -#: templates/risks/list_controls.html:48 templates/risks/list_controls.html:100 +#: templates/risks/dashboard.html:108 templates/risks/dashboard.html:133 +#: templates/risks/item_control.html:35 templates/risks/item_incident.html:36 +#: templates/risks/item_risk.html:54 templates/risks/item_risk.html:204 +#: templates/risks/item_risk.html:234 templates/risks/list_controls.html:48 +#: templates/risks/list_controls.html:100 #: templates/risks/list_incidents.html:48 #: templates/risks/list_incidents.html:99 templates/risks/list_risks.html:128 msgid "Status" @@ -203,7 +204,7 @@ msgid "Availability" msgstr "" #: risks/models.py:78 risks/models.py:201 risks/models.py:270 -#: templates/risks/item_risk.html:188 +#: templates/risks/item_risk.html:203 msgid "Title" msgstr "" @@ -213,34 +214,34 @@ msgid "Description" msgstr "" #: risks/models.py:80 templates/risks/item_control.html:68 -#: templates/risks/item_incident.html:60 templates/risks/item_risk.html:40 +#: templates/risks/item_incident.html:60 templates/risks/item_risk.html:42 #: templates/risks/list_risks.html:119 msgid "Asset" msgstr "" #: risks/models.py:81 templates/risks/item_control.html:69 -#: templates/risks/item_incident.html:61 templates/risks/item_risk.html:41 +#: templates/risks/item_incident.html:61 templates/risks/item_risk.html:43 #: templates/risks/list_risks.html:125 msgid "Process" msgstr "" #: risks/models.py:82 templates/risks/item_control.html:67 -#: templates/risks/item_incident.html:59 templates/risks/item_risk.html:42 +#: templates/risks/item_incident.html:59 templates/risks/item_risk.html:44 #: templates/risks/list_risks.html:122 msgid "Category" msgstr "" #: risks/models.py:83 templates/risks/item_control.html:46 -#: templates/risks/item_incident.html:39 templates/risks/item_risk.html:55 +#: templates/risks/item_incident.html:39 templates/risks/item_risk.html:70 msgid "Created at" msgstr "" #: risks/models.py:84 templates/risks/item_control.html:47 -#: templates/risks/item_incident.html:40 templates/risks/item_risk.html:56 +#: templates/risks/item_incident.html:40 templates/risks/item_risk.html:71 msgid "Updated at" msgstr "" -#: risks/models.py:85 templates/risks/item_risk.html:63 +#: risks/models.py:85 templates/risks/item_risk.html:78 msgid "Effects" msgstr "" @@ -286,7 +287,7 @@ msgid "Auditlogs" msgstr "" #: risks/models.py:261 templates/risks/item_incident.html:33 -#: templates/risks/item_risk.html:218 templates/risks/list_incidents.html:97 +#: templates/risks/item_risk.html:233 templates/risks/list_incidents.html:97 msgid "Incident" msgstr "" @@ -380,7 +381,7 @@ msgstr "" msgid "Notification" msgstr "" -#: risks/models.py:322 templates/base.html:96 +#: risks/models.py:322 templates/base.html:98 #: templates/risks/notifications.html:4 msgid "Notifications" msgstr "" @@ -513,27 +514,19 @@ msgstr "" msgid "Not all controls are completed. Risk cannot be closed yet." msgstr "" -#: risks/views.py:378 -msgid "Notification marked as read." -msgstr "" - -#: risks/views.py:388 -msgid "All notifications marked as read." -msgstr "" - -#: risks/views.py:407 +#: risks/views.py:409 msgid "Risk status updated." msgstr "" -#: risks/views.py:423 +#: risks/views.py:425 msgid "Control status updated." msgstr "" -#: risks/views.py:439 +#: risks/views.py:441 msgid "Incident status updated." msgstr "" -#: risks/views.py:456 +#: risks/views.py:458 msgid "Residual review flag updated." msgstr "" @@ -555,27 +548,27 @@ msgstr "" msgid "Risk analysis" msgstr "" -#: templates/base.html:91 +#: templates/base.html:93 msgid "AdminCP" msgstr "" -#: templates/base.html:104 +#: templates/base.html:106 msgid "Derk Mode" msgstr "" -#: templates/base.html:110 +#: templates/base.html:112 msgid "Logout" msgstr "" -#: templates/base.html:125 +#: templates/base.html:127 msgid "Login" msgstr "" -#: templates/base.html:160 templates/base.html:167 +#: templates/base.html:162 templates/base.html:169 msgid "Light Mode" msgstr "" -#: templates/base.html:170 +#: templates/base.html:172 msgid "Dark Mode" msgstr "" @@ -600,23 +593,28 @@ msgid "Risks by CIA" msgstr "" #: templates/risks/dashboard.html:78 -msgid "Controls by Status" +msgid "Risks by Status" msgstr "" #: templates/risks/dashboard.html:84 templates/risks/dashboard.html:109 +#: templates/risks/dashboard.html:134 msgid "Count" msgstr "" #: templates/risks/dashboard.html:94 templates/risks/dashboard.html:119 -#: templates/risks/list_risks.html:185 +#: templates/risks/dashboard.html:144 templates/risks/list_risks.html:185 msgid "No data" msgstr "" #: templates/risks/dashboard.html:103 +msgid "Controls by Status" +msgstr "" + +#: templates/risks/dashboard.html:128 msgid "Incidents by Status" msgstr "" -#: templates/risks/dashboard.html:127 +#: templates/risks/dashboard.html:152 msgid "Risk Trend (per Month)" msgstr "" @@ -643,17 +641,17 @@ msgstr "" msgid "Delete Control" msgstr "" -#: templates/risks/item_control.html:34 templates/risks/item_risk.html:191 +#: templates/risks/item_control.html:34 templates/risks/item_risk.html:206 #: templates/risks/list_controls.html:63 templates/risks/list_controls.html:99 msgid "Responsible" msgstr "" -#: templates/risks/item_control.html:37 templates/risks/item_risk.html:192 +#: templates/risks/item_control.html:37 templates/risks/item_risk.html:207 #: templates/risks/list_controls.html:102 msgid "Link" msgstr "" -#: templates/risks/item_control.html:48 templates/risks/item_risk.html:190 +#: templates/risks/item_control.html:48 templates/risks/item_risk.html:205 #: templates/risks/list_controls.html:101 msgid "Deadline" msgstr "" @@ -667,17 +665,17 @@ msgid "No linked risks." msgstr "" #: templates/risks/item_control.html:95 templates/risks/item_incident.html:87 -#: templates/risks/item_risk.html:244 +#: templates/risks/item_risk.html:259 msgid "Time" msgstr "" #: templates/risks/item_control.html:97 templates/risks/item_incident.html:89 -#: templates/risks/item_risk.html:246 +#: templates/risks/item_risk.html:261 msgid "Action" msgstr "" #: templates/risks/item_control.html:108 templates/risks/item_incident.html:100 -#: templates/risks/item_risk.html:257 +#: templates/risks/item_risk.html:272 msgid "No history found." msgstr "" @@ -689,7 +687,7 @@ msgstr "" msgid "Delete Incident" msgstr "" -#: templates/risks/item_incident.html:35 templates/risks/item_risk.html:220 +#: templates/risks/item_incident.html:35 templates/risks/item_risk.html:235 #: templates/risks/list_incidents.html:100 msgid "Reported on" msgstr "" @@ -706,67 +704,67 @@ msgstr "" msgid "Delete Risk" msgstr "" -#: templates/risks/item_risk.html:26 templates/risks/item_risk.html:27 +#: templates/risks/item_risk.html:27 templates/risks/item_risk.html:28 msgid "Mark Risk as reviewed" msgstr "" -#: templates/risks/item_risk.html:44 +#: templates/risks/item_risk.html:46 msgid "Protection goals" msgstr "" -#: templates/risks/item_risk.html:48 +#: templates/risks/item_risk.html:50 msgid "Not yet assigned" msgstr "" -#: templates/risks/item_risk.html:54 +#: templates/risks/item_risk.html:69 msgid "Risk owner" msgstr "" -#: templates/risks/item_risk.html:57 +#: templates/risks/item_risk.html:72 msgid "Resubmission" msgstr "" -#: templates/risks/item_risk.html:70 +#: templates/risks/item_risk.html:85 msgid "Risk assessment" msgstr "" -#: templates/risks/item_risk.html:79 +#: templates/risks/item_risk.html:94 msgid "Gross (before measures)" msgstr "" -#: templates/risks/item_risk.html:85 templates/risks/item_risk.html:131 +#: templates/risks/item_risk.html:100 templates/risks/item_risk.html:146 #: templates/risks/risk_matrix.html:21 templates/risks/risk_matrix.html:79 #: templates/risks/risk_matrix.html:121 msgid "Likelihood" msgstr "" -#: templates/risks/item_risk.html:94 templates/risks/item_risk.html:140 +#: templates/risks/item_risk.html:109 templates/risks/item_risk.html:155 #: templates/risks/risk_matrix.html:21 templates/risks/risk_matrix.html:79 #: templates/risks/risk_matrix.html:121 msgid "Impact" msgstr "" -#: templates/risks/item_risk.html:103 templates/risks/item_risk.html:149 +#: templates/risks/item_risk.html:118 templates/risks/item_risk.html:164 msgid "Level" msgstr "" -#: templates/risks/item_risk.html:112 templates/risks/item_risk.html:158 +#: templates/risks/item_risk.html:127 templates/risks/item_risk.html:173 msgid "Score" msgstr "" -#: templates/risks/item_risk.html:125 +#: templates/risks/item_risk.html:140 msgid "Net (after measures)" msgstr "" -#: templates/risks/item_risk.html:169 +#: templates/risks/item_risk.html:184 msgid "Add net Risk" msgstr "" -#: templates/risks/item_risk.html:205 +#: templates/risks/item_risk.html:220 msgid "No measures recorded." msgstr "" -#: templates/risks/item_risk.html:231 +#: templates/risks/item_risk.html:246 msgid "No incidents recorded." msgstr "" diff --git a/risks/templatetags/risk_extras.py b/risks/templatetags/risk_extras.py index 79dc5ec..872ce70 100644 --- a/risks/templatetags/risk_extras.py +++ b/risks/templatetags/risk_extras.py @@ -4,6 +4,7 @@ from ..models import Control, Incident, Risk register = template.Library() +_RISK_STATUS_MAP = dict(Risk.STATUS_CHOICES) _CONTROL_STATUS_MAP = dict(Control.STATUS_CHOICES) _INCIDENT_STATUS_MAP = dict(Incident.STATUS_CHOICES) _LIKELIHOOD_LABELS = dict(Risk.LIKELIHOOD_CHOICES) @@ -75,6 +76,9 @@ def impact_id_label(val): short = _short(str(label)) if label else "" return format_html("{} ({})", i, short) if label else format_html("{}", i) +@register.filter +def risk_status_label(code): + return _RISK_STATUS_MAP.get(code, code) @register.filter def control_status_label(code): diff --git a/risks/views.py b/risks/views.py index 60e615f..1c1b862 100644 --- a/risks/views.py +++ b/risks/views.py @@ -314,7 +314,8 @@ def dashboard(request): # Residual Risks residual_review_required = ResidualRisk.objects.filter(review_required=True).count() - # Controls & Incidents + # Risks, Controls & Incidents + risks_by_status = Risk.objects.values("status").annotate(count=Count("id")) controls_by_status = Control.objects.values("status").annotate(count=Count("id")) incidents_status = Incident.objects.values("status").annotate(count=Count("id")) @@ -344,6 +345,7 @@ def dashboard(request): "risks_by_level": risks_by_level, "risks_by_cia": dict(cia_counter), "residual_review_required": residual_review_required, + "risks_by_status": risks_by_status, "controls_by_status": controls_by_status, "incidents_status": incidents_status, "notifications_unread": notifications_unread, diff --git a/templates/risks/dashboard.html b/templates/risks/dashboard.html index d9bd70f..6220700 100644 --- a/templates/risks/dashboard.html +++ b/templates/risks/dashboard.html @@ -73,55 +73,89 @@ - -
-

{% trans "Controls by Status" %}

-
- - - - - - - - - {% for row in controls_by_status %} - - - - - {% empty %} - - {% endfor %} - -
{% trans "Status" %}{% trans "Count" %}
{{ row.status|control_status_label }}{{ row.count }}
{% trans "No data" %}
-
-
+
+ +
+
+

{% trans "Risks by Status" %}

+
+ + + + + + + + + {% for row in risks_by_status %} + + + + + {% empty %} + + {% endfor %} + +
{% trans "Status" %}{% trans "Count" %}
{{ row.status|risk_status_label }}{{ row.count }}
{% trans "No data" %}
+
+
+
- -
-

{% trans "Incidents by Status" %}

-
- - - - - - - - - {% for row in incidents_status %} - - - - - {% empty %} - - {% endfor %} - -
{% trans "Status" %}{% trans "Count" %}
{{ row.status|incident_status_label }}{{ row.count }}
{% trans "No data" %}
-
-
+ +
+
+

{% trans "Controls by Status" %}

+
+ + + + + + + + + {% for row in controls_by_status %} + + + + + {% empty %} + + {% endfor %} + +
{% trans "Status" %}{% trans "Count" %}
{{ row.status|control_status_label }}{{ row.count }}
{% trans "No data" %}
+
+
+
+ + +
+
+

{% trans "Incidents by Status" %}

+
+ + + + + + + + + {% for row in incidents_status %} + + + + + {% empty %} + + {% endfor %} + +
{% trans "Status" %}{% trans "Count" %}
{{ row.status|incident_status_label }}{{ row.count }}
{% trans "No data" %}
+
+
+
+ +

{% trans "Risk Trend (per Month)" %}