{% extends "allianceauth/base-bs5.html" %} {% load i18n %} {% block page_title %} {% translate "Discord Audit Config Changes" %} {% endblock %} {% block header_nav_brand %} {% translate "Discord Audit" %} {% endblock %} {% block extra_javascript %} {% include "aa_discord_audit/_datatables_init.html" %} {% endblock %} {% block content %} {% include "aa_discord_audit/_subnav.html" with active="changelog" %}
{% translate "Operator config changes" %} {{ total_count }}

{% translate "Append-only forensic log of every operator edit to BotAccountUid, ProtectedDiscordMember, ManagedRoleException, and FindingActionOverride. Survives retention pruning of AuditRun rows." %}

{% for row in rows %} {% empty %} {% endfor %}
{% translate "ID" %} {% translate "Created at" %} {% translate "Model" %} {% translate "Object pk" %} {% translate "Action" %} {% translate "Actor" %} {% translate "Payload" %}
{{ row.obj.pk }} {{ row.created_rel }} {{ row.obj.model_name }} {{ row.obj.object_pk }} {{ row.action_label }} {{ row.obj.actor_username }} {% if row.obj.actor_user_id %} #{{ row.obj.actor_user_id }} {% endif %}
{% translate "show" %} {% if row.diff.kind == "diff" %} {% for field, change in row.diff.changed.items %} {% endfor %}
{% translate "Field" %} {% translate "Before" %} {% translate "After" %}
{{ field }} {{ change.before }} {{ change.after }}
{% elif row.diff.kind == "snapshot" %}
{{ row.diff.json }}
{% else %} {% translate "row deleted (no snapshot)" %} {% endif %}
{% translate "No config changes to display." %}
{% if not client_mode and page_obj %}

{% translate "Showing the first page — narrow your filters to search across all results." %}

{% include "aa_discord_audit/_pagination.html" with page_obj=page_obj pagination_query=pagination_query only %} {% endif %}
{% endblock %}