Moved grouping logic to view, and added time to stream

This commit is contained in:
David Taylor
2015-05-26 04:34:23 +01:00
parent 83a4b414ad
commit d0f3dc4bec
3 changed files with 28 additions and 10 deletions

View File

@@ -25,13 +25,6 @@
// }, 10000);
moment().twitter();
$('.date').each(function (index, dateElem) {
var $dateElem = $(dateElem);
var formatted = moment($dateElem.attr('data-date'),"DD/MM/YYYY HH:mm").twitterLong();
$dateElem.text(formatted);
});
})
$(document).ready(function() {
$(function () {
@@ -43,6 +36,11 @@
$('#activity [data-toggle="popover"]').popover();
$('.date').each(function (index, dateElem) {
var $dateElem = $(dateElem);
var formatted = moment($dateElem.attr('data-date'),"DD/MM/YYYY HH:mm").twitterLong();
$dateElem.text(formatted);
});
});
});

View File

@@ -10,7 +10,7 @@
<div class="media">
{% for version in object_list %}
{% ifchanged version.revision.user %}
{% if not version.withPrevious %}
{% if not forloop.first %}
</div> {#/.media-body#}
</div> {#/.media#}
@@ -24,8 +24,11 @@
</a>
</div>
<div class="media-body">
<h5>{{ version.revision.user.name }}</h5>
{% endifchanged %}
<h5>{{ version.revision.user.name }}
<span class="pull-right"><small><span class="date" data-date="{{version.revision.date_created}}"></span></small></span>
</h5>
{% endif %}
<p>
<small>
{% if version.old == None %}

View File

@@ -217,6 +217,10 @@ class ActivityFeed(generic.ListView):
return versions
def get_context_data(self, **kwargs):
maxTimeDelta = []
maxTimeDelta.append({ 'maxAge':datetime.timedelta(days=1), 'group':datetime.timedelta(hours=1)})
maxTimeDelta.append({ 'maxAge':None, 'group':datetime.timedelta(days=1)})
# Call the base implementation first to get a context
context = super(ActivityFeed, self).get_context_data(**kwargs)
@@ -226,6 +230,19 @@ class ActivityFeed(generic.ListView):
for thisVersion in context['object_list']:
thisItem = get_changes_for_version(thisVersion, None)
if thisItem['item_changes'] or thisItem['field_changes'] or thisItem['old'] == None:
thisItem['withPrevious'] = False
if len(items)>=1:
timeAgo = datetime.datetime.now(thisItem['revision'].date_created.tzinfo) - thisItem['revision'].date_created
timeDiff = items[-1]['revision'].date_created - thisItem['revision'].date_created
timeTogether = False
for params in maxTimeDelta:
if params['maxAge'] is None or timeAgo <= params['maxAge']:
timeTogether = timeDiff < params['group']
break
sameUser = thisItem['revision'].user == items[-1]['revision'].user
thisItem['withPrevious'] = timeTogether & sameUser
items.append(thisItem)
context ['object_list'] = items