|
|
@@ -3,21 +3,24 @@
|
|
|
|
|
|
{% block title %}{{ object }}{% endblock %}
|
|
|
|
|
|
+{% block breadcrumb_main %}
|
|
|
+<nav class="breadcrumb-container" aria-label="breadcrumb">
|
|
|
+ <ol class="breadcrumb">
|
|
|
+ <li class="breadcrumb-item"><a href="{% url 'extras:objectchange_list' %}">Change Log</a></li>
|
|
|
+ {% if object.related_object.get_absolute_url %}
|
|
|
+ <li class="breadcrumb-item"><a href="{{ object.related_object.get_absolute_url }}changelog/">{{ object.related_object }}</a></li>
|
|
|
+ {% elif object.changed_object.get_absolute_url %}
|
|
|
+ <li class="breadcrumb-item"><a href="{{ object.changed_object.get_absolute_url }}changelog/">{{ object.changed_object }}</a></li>
|
|
|
+ {% elif object.changed_object %}
|
|
|
+ <li class="breadcrumb-item">{{ object.changed_object }}</li>
|
|
|
+ {% endif %}
|
|
|
+ <li class="breadcrumb-item">{{ object }}</li>
|
|
|
+ </ol>
|
|
|
+</nav>
|
|
|
+{% endblock %}
|
|
|
+
|
|
|
{% block header %}
|
|
|
<div class="row noprint">
|
|
|
- <div class="col-sm-8 col-md-9">
|
|
|
- <ol class="breadcrumb">
|
|
|
- <li><a href="{% url 'extras:objectchange_list' %}">Change Log</a></li>
|
|
|
- {% if object.related_object.get_absolute_url %}
|
|
|
- <li><a href="{{ object.related_object.get_absolute_url }}changelog/">{{ object.related_object }}</a></li>
|
|
|
- {% elif object.changed_object.get_absolute_url %}
|
|
|
- <li><a href="{{ object.changed_object.get_absolute_url }}changelog/">{{ object.changed_object }}</a></li>
|
|
|
- {% elif object.changed_object %}
|
|
|
- <li>{{ object.changed_object }}</li>
|
|
|
- {% endif %}
|
|
|
- <li>{{ object }}</li>
|
|
|
- </ol>
|
|
|
- </div>
|
|
|
<div class="col-sm-4 col-md-3">
|
|
|
<form action="{% url 'extras:objectchange_list' %}" method="get">
|
|
|
<div class="input-group">
|
|
|
@@ -34,102 +37,105 @@
|
|
|
{% endblock %}
|
|
|
|
|
|
{% block content %}
|
|
|
- <div class="row">
|
|
|
- <div class="col-md-5">
|
|
|
- <div class="card">
|
|
|
- <h5 class="card-header">
|
|
|
- Change
|
|
|
- </h5>
|
|
|
- <div class="card-body">
|
|
|
- <table class="table table-hover attr-table">
|
|
|
- <tr>
|
|
|
- <td>Time</td>
|
|
|
- <td>
|
|
|
- {{ object.time }}
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>User</td>
|
|
|
- <td>
|
|
|
- {{ object.user|default:object.user_name }}
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Action</td>
|
|
|
- <td>
|
|
|
- {{ object.get_action_display }}
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Object Type</td>
|
|
|
- <td>
|
|
|
- {{ object.changed_object_type }}
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Object</td>
|
|
|
- <td>
|
|
|
- {% if object.changed_object.get_absolute_url %}
|
|
|
- <a href="{{ object.changed_object.get_absolute_url }}">{{ object.changed_object }}</a>
|
|
|
- {% else %}
|
|
|
- {{ object.object_repr }}
|
|
|
- {% endif %}
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Request ID</td>
|
|
|
- <td>
|
|
|
- {{ object.request_id }}
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- </table>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="card">
|
|
|
- <div class="card-header">
|
|
|
- <h5>Difference</h5>
|
|
|
- <div class="btn-group btn-group-xs pull-right noprint">
|
|
|
- <a {% if prev_change %}href="{% url 'extras:objectchange' pk=prev_change.pk %}"{% else %}disabled{% endif %} class="btn btn-default">
|
|
|
- <span class="mdi mdi-chevron-left" aria-hidden="true"></span> Previous
|
|
|
- </a>
|
|
|
- <a {% if next_change %}href="{% url 'extras:objectchange' pk=next_change.pk %}"{% else %}disabled{% endif %} class="btn btn-default">
|
|
|
- Next <span class="mdi mdi-chevron-right" aria-hidden="true"></span>
|
|
|
- </a>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="card-body">
|
|
|
- {% if diff_added == diff_removed %}
|
|
|
- <span class="text-muted" style="margin-left: 10px;">
|
|
|
- {% if object.action == 'create' %}
|
|
|
- Object created
|
|
|
- {% elif object.action == 'delete' %}
|
|
|
- Object deleted
|
|
|
+<div class="row mb-3">
|
|
|
+ <div class="col-md-5">
|
|
|
+ <div class="card">
|
|
|
+ <h5 class="card-header">
|
|
|
+ Change
|
|
|
+ </h5>
|
|
|
+ <div class="card-body">
|
|
|
+ <table class="table table-hover attr-table">
|
|
|
+ <tr>
|
|
|
+ <th scope="row">Time</th>
|
|
|
+ <td>
|
|
|
+ {{ object.time }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th scope="row">User</th>
|
|
|
+ <td>
|
|
|
+ {{ object.user|default:object.user_name }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th scope="row">Action</th>
|
|
|
+ <td>
|
|
|
+ {{ object.get_action_display }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th scope="row">Object Type</th>
|
|
|
+ <td>
|
|
|
+ {{ object.changed_object_type }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th scope="row">Object</th>
|
|
|
+ <td>
|
|
|
+ {% if object.changed_object.get_absolute_url %}
|
|
|
+ <a href="{{ object.changed_object.get_absolute_url }}">{{ object.changed_object }}</a>
|
|
|
{% else %}
|
|
|
- No changes
|
|
|
+ {{ object.object_repr }}
|
|
|
{% endif %}
|
|
|
- </span>
|
|
|
- {% else %}
|
|
|
- <pre style="background-color: #ffdce0;">{{ diff_removed|render_json }}</pre>
|
|
|
- <pre style="background-color: #cdffd8;">{{ diff_added|render_json }}</pre>
|
|
|
- {% endif %}
|
|
|
- </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th scope="row">Request ID</th>
|
|
|
+ <td>
|
|
|
+ {{ object.request_id }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="col-md-6">
|
|
|
- <div class="card">
|
|
|
- <h5 class="card-header">
|
|
|
- Pre-Change Data
|
|
|
- </h5>
|
|
|
- <div class="card-body">
|
|
|
- {% if object.prechange_data %}
|
|
|
- <pre>{% for k, v in object.prechange_data.items %}{% spaceless %}
|
|
|
- <span{% if k in diff_removed %} style="background-color: #ffdce0"{% endif %}>{{ k }}: {{ v|render_json }}</span>
|
|
|
- {% endspaceless %}{% endfor %}
|
|
|
- </pre>
|
|
|
+ </div>
|
|
|
+ <div class="col-md-7">
|
|
|
+ <div class="card">
|
|
|
+ <div class="card-header">
|
|
|
+ <h5 class="d-inline">Difference</h5>
|
|
|
+ <div class="btn-group btn-group-sm float-end noprint">
|
|
|
+ <a {% if prev_change %}href="{% url 'extras:objectchange' pk=prev_change.pk %}"{% else %}disabled{% endif %} class="btn btn-outline-secondary">
|
|
|
+ <i class="mdi mdi-chevron-left" aria-hidden="true"></i> Previous
|
|
|
+ </a>
|
|
|
+ <a {% if next_change %}href="{% url 'extras:objectchange' pk=next_change.pk %}"{% else %}disabled{% endif %} class="btn btn-outline-secondary">
|
|
|
+ Next <i class="mdi mdi-chevron-right" aria-hidden="true"></i>
|
|
|
+ </a>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="card-body">
|
|
|
+ {% if diff_added == diff_removed %}
|
|
|
+ <span class="text-muted" style="margin-left: 10px;">
|
|
|
+ {% if object.action == 'create' %}
|
|
|
+ Object Created
|
|
|
+ {% elif object.action == 'delete' %}
|
|
|
+ Object Deleted
|
|
|
+ {% else %}
|
|
|
+ No Changes
|
|
|
+ {% endif %}
|
|
|
+ </span>
|
|
|
{% else %}
|
|
|
- <span class="text-muted">None</span>
|
|
|
+ <pre class="change-diff change-removed">{{ diff_removed|render_json }}</pre>
|
|
|
+ <pre class="change-diff change-added">{{ diff_added|render_json }}</pre>
|
|
|
{% endif %}
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</div>
|
|
|
+<div class="row mb-3">
|
|
|
+ <div class="col-md-6">
|
|
|
+ <div class="card">
|
|
|
+ <h5 class="card-header">
|
|
|
+ Pre-Change Data
|
|
|
+ </h5>
|
|
|
+ <div class="card-body">
|
|
|
+ {% if object.prechange_data %}
|
|
|
+ <pre class="change-data">{% for k, v in object.prechange_data.items %}{% spaceless %}
|
|
|
+ <span{% if k in diff_removed %} class="removed"{% endif %}>{{ k }}: {{ v|render_json }}</span>
|
|
|
+ {% endspaceless %}{% endfor %}
|
|
|
+ </pre>
|
|
|
+ {% else %}
|
|
|
+ <span class="text-muted">None</span>
|
|
|
+ {% endif %}
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -140,8 +146,8 @@
|
|
|
</h5>
|
|
|
<div class="card-body">
|
|
|
{% if object.postchange_data %}
|
|
|
- <pre>{% for k, v in object.postchange_data.items %}{% spaceless %}
|
|
|
- <span{% if k in diff_added %} style="background-color: #cdffd8"{% endif %}>{{ k }}: {{ v|render_json }}</span>
|
|
|
+ <pre class="change-data">{% for k, v in object.postchange_data.items %}{% spaceless %}
|
|
|
+ <span{% if k in diff_added %} class="added"{% endif %}>{{ k }}: {{ v|render_json }}</span>
|
|
|
{% endspaceless %}{% endfor %}
|
|
|
</pre>
|
|
|
{% else %}
|
|
|
@@ -150,14 +156,15 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="row">
|
|
|
- <div class="col-md-12">
|
|
|
- {% include 'panel_table.html' with table=related_changes_table heading='Related Changes' panel_class='default' %}
|
|
|
- {% if related_changes_count > related_changes_table.rows|length %}
|
|
|
- <div class="pull-right">
|
|
|
- <a href="{% url 'extras:objectchange_list' %}?request_id={{ object.request_id }}" class="btn btn-primary">See all {{ related_changes_count|add:"1" }} changes</a>
|
|
|
- </div>
|
|
|
- {% endif %}
|
|
|
- </div>
|
|
|
+</div>
|
|
|
+<div class="row mb-3">
|
|
|
+ <div class="col-md-12">
|
|
|
+ {% include 'panel_table.html' with table=related_changes_table heading='Related Changes' panel_class='default' %}
|
|
|
+ {% if related_changes_count > related_changes_table.rows|length %}
|
|
|
+ <div class="float-end">
|
|
|
+ <a href="{% url 'extras:objectchange_list' %}?request_id={{ object.request_id }}" class="btn btn-primary">See All {{ related_changes_count|add:"1" }} Changes</a>
|
|
|
+ </div>
|
|
|
+ {% endif %}
|
|
|
</div>
|
|
|
+</div>
|
|
|
{% endblock %}
|