{% 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." %}

{% translate "Model" %}
{% translate "Action" %}
{% translate "Actor" %}

{% translate "ID" %} | {% translate "Created at" %} | {% translate "Model" %} | {% translate "Object pk" %} | {% translate "Action" %} | {% translate "Actor" %} | {% translate "Payload" %}
--- | --- | --- | --- | --- | --- | ---
{% for row in rows %}

{{ 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" %}

{% translate "Field" %} | {% translate "Before" %} | {% translate "After" %}
--- | --- | ---
{% for field, change in row.diff.changed.items %}
`{{ field }}` | {{ change.before }} | {{ change.after }}
{% endfor %}

{% elif row.diff.kind == "snapshot" %}

    {{ row.diff.json }}

{% else %} {% translate "row deleted (no snapshot)" %} {% endif %}

{% empty %}
{% translate "No config changes to display." %}
{% endfor %}

{% 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 %}