Move selection logic from template to view

Required adding some extra data to the dict directly.
In theory this should produce better performance.
This commit is contained in:
Tom Price
2015-05-26 00:20:09 +01:00
parent a866aaa148
commit 1eb7ea1181
2 changed files with 15 additions and 10 deletions

View File

@@ -9,10 +9,9 @@
<div class="list-group-item">
<div class="media">
{% for version in object_list %}
{% if version.item_changes or version.field_changes or version.old == None %}
{% ifchanged version.revision.user %}
{% if version != object_list|first %}
{% if not forloop.first %}
</div> {#/.media-body#}
</div> {#/.media#}
</div>
@@ -38,8 +37,7 @@
{% include 'RIGS/object_button.html' with object=version.new %}
</small>
</p>
{% endif %}
{% endfor %}
</div>
</div>

View File

@@ -128,11 +128,17 @@ def get_changes_for_version(newVersion, oldVersion=None):
modelClass = newVersion.content_type.model_class()
compare = {}
compare['revision'] = newVersion.revision
compare['new'] = newVersion.object_version.object
compare['current'] = modelClass.objects.filter(pk=compare['new'].pk).first()
compare['version'] = newVersion
compare = {
'revision': newVersion.revision,
'new': newVersion.object_version.object,
'current': modelClass.objects.filter(pk=newVersion.pk).first(),
'version': newVersion,
# Old things that may not be used
'old': None,
'field_changes': None,
'item_changes': None,
}
if oldVersion:
compare['old'] = oldVersion.object_version.object
@@ -219,7 +225,8 @@ class ActivityFeed(generic.ListView):
for thisVersion in context['object_list']:
thisItem = get_changes_for_version(thisVersion, None)
items.append(thisItem)
if thisItem['item_changes'] or thisItem['field_changes'] or thisItem['old'] == None:
items.append(thisItem)
context ['object_list'] = items