Add diff for pre-/post- change data

This commit is contained in:
JCWasmx86 2024-04-23 18:38:56 +02:00
parent f149f1f994
commit 6507b7e803
2 changed files with 16 additions and 2 deletions

View File

@ -720,13 +720,19 @@ class ObjectChangeView(generic.ObjectView):
if prechange_data and instance.postchange_data:
diff_added, diff_removed = deep_compare_dict(prechange_data, instance.postchange_data, exclude=('last_updated'))
custom_fields_added = diff_added['custom_fields'] if 'custom_fields' in diff_added else None
custom_fields_removed = diff_removed['custom_fields'] if 'custom_fields' in diff_removed else None
else:
diff_added = None
diff_removed = None
custom_fields_added = None
custom_fields_removed = None
return {
'diff_added': diff_added,
'diff_removed': diff_removed,
'custom_fields_added': custom_fields_added,
'custom_fields_removed': custom_fields_removed,
'next_change': next_change,
'prev_change': prev_change,
'related_changes_table': related_changes_table,

View File

@ -119,7 +119,11 @@
<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|json }}</span>
{% if k != 'custom_fields' or not custom_fields_removed %}
<span{% if k in diff_removed %} class="removed"{% endif %}>{{ k }}: {{ v|json }}</span>
{% else %}
<span class="removed">{{ k }}: {{ custom_fields_removed|json }}</span>
{% endif %}
{% endspaceless %}{% endfor %}
</pre>
{% elif non_atomic_change %}
@ -138,7 +142,11 @@
<div class="card-body">
{% if object.postchange_data %}
<pre class="change-data">{% for k, v in object.postchange_data.items %}{% spaceless %}
<span{% if k in diff_added %} class="added"{% endif %}>{{ k }}: {{ v|json }}</span>
{% if k != 'custom_fields' or not custom_fields_added %}
<span{% if k in diff_added %} class="added"{% endif %}>{{ k }}: {{ v|json }}</span>
{% else %}
<span class="added">{{ k }}: {{ custom_fields_added|json }}</span>
{% endif %}
{% endspaceless %}{% endfor %}
</pre>
{% else %}