From d593f7577b53790f4494c994cca7f45edc4d3acc Mon Sep 17 00:00:00 2001 From: Patrick Smith Date: Mon, 3 Dec 2018 15:54:07 -0500 Subject: [PATCH] Attempt to look up template for each audit event type --- atst/filters.py | 12 +++++- templates/audit_log/audit_log.html | 56 ++----------------------- templates/audit_log/events/_base.html | 22 ++++++++++ templates/audit_log/events/default.html | 39 +++++++++++++++++ 4 files changed, 75 insertions(+), 54 deletions(-) create mode 100644 templates/audit_log/events/_base.html create mode 100644 templates/audit_log/events/default.html diff --git a/atst/filters.py b/atst/filters.py index c172a3df..f8b8d2d3 100644 --- a/atst/filters.py +++ b/atst/filters.py @@ -1,6 +1,7 @@ import re import datetime -from flask import current_app as app +from flask import current_app as app, render_template +from jinja2.exceptions import TemplateNotFound def iconSvg(name): @@ -86,6 +87,14 @@ def pageWindow(pagination, size=2): return (max(1, (page - size) - over), min(num_pages, (page + size) - under)) +def renderAuditEvent(event): + template_name = 'audit_log/events/{}.html'.format(event.resource_type) + try: + return render_template(template_name, event=event) + except TemplateNotFound: + return render_template('audit_log/events/default.html', event=event) + + def register_filters(app): app.jinja_env.filters["iconSvg"] = iconSvg app.jinja_env.filters["dollars"] = dollars @@ -98,3 +107,4 @@ def register_filters(app): app.jinja_env.filters["formattedDate"] = formattedDate app.jinja_env.filters["dateFromString"] = dateFromString app.jinja_env.filters["pageWindow"] = pageWindow + app.jinja_env.filters["renderAuditEvent"] = renderAuditEvent diff --git a/templates/audit_log/audit_log.html b/templates/audit_log/audit_log.html index cacd164b..3b505135 100644 --- a/templates/audit_log/audit_log.html +++ b/templates/audit_log/audit_log.html @@ -12,59 +12,9 @@ diff --git a/templates/audit_log/events/_base.html b/templates/audit_log/events/_base.html new file mode 100644 index 00000000..03bd5a94 --- /dev/null +++ b/templates/audit_log/events/_base.html @@ -0,0 +1,22 @@ +
+
+ +
+ +
+ {% block header %} +

+ {{ event.user.full_name if event.user else "ATAT System" }} +

+ {{ event.action }} {{ event.resource_type }} {{ event.resource_id }} + {% if event.display_name %} + ({{ event.display_name }}) + {% endif %} + {% endblock %} + +
+ + {% block content %}{% endblock %} +
+
+ diff --git a/templates/audit_log/events/default.html b/templates/audit_log/events/default.html new file mode 100644 index 00000000..1fae5e5b --- /dev/null +++ b/templates/audit_log/events/default.html @@ -0,0 +1,39 @@ +{% extends "audit_log/events/_base.html" %} + +{% block content %} + {% if event.event_details and event.resource_type == "user" %} + for User {{ event.event_details.updated_user_id }} ({{ event.event_details.updated_user_name }}) + + {% if event.event_details["environment"] %} +
+ in Environment {{ event.event_details["environment_id"] }} ({{ event.event_details["environment"] }}) +
+ in Project {{ event.event_details["project_id"] }} ({{ event.event_details["project"] }}) +
+ in Workspace {{ event.event_details["workspace_id"] }} ({{ event.event_details["workspace"] }}) + {% endif %} +
+ + {% elif event.event_details and event.resource_type == "invitation" %} + {% set accepted = event.changed_state.status and event.changed_state.status.1 == "ACCEPTED" %} + {% if accepted %} + accepted by {{ event.event_details.email }} (DOD {{ event.event_details.dod_id }}) + {% endif %} + {% endif %} + + {% if event.changed_state and event.resource_type == 'environment_role' %} + from {{ event.changed_state.role[0] }} to {{ event.changed_state.role[1] }} +
+ {% endif %} + + {% if event.workspace %} + in Workspace {{ event.workspace_id }} ({{ event.workspace.name }}) + {% elif event.request %} + on Request {{ event.request_id }} ({{ event.request.displayname }}) + {% endif %} + + {% if event.changed_state.role %} + from {{ event.changed_state.role[0] }} to {{ event.changed_state.role[1] }} +
+ {% endif %} +{% endblock %}