X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/410bfa05ee36ed1d99356c443a5f3f6aa3ee9578..e945778bce1d0af9091f7be2503b06756298b905:/forum/views/meta.py?ds=sidebyside diff --git a/forum/views/meta.py b/forum/views/meta.py index 03ffc6d..885b8b6 100644 --- a/forum/views/meta.py +++ b/forum/views/meta.py @@ -1,3 +1,4 @@ +from itertools import groupby from django.shortcuts import render_to_response, get_object_or_404 from django.core.urlresolvers import reverse from django.template import RequestContext @@ -76,9 +77,14 @@ def badges(request): def badge(request, id, slug): badge = Badge.objects.get(id=id) - awards = Award.objects.filter(badge=badge).annotate(count=Count('user')).distinct('user').order_by('-count') + awards = list(Award.objects.filter(badge=badge).order_by('user', 'awarded_at')) + award_count = len(awards) + + awards = sorted([dict(count=len(list(g)), user=k) for k, g in groupby(awards, lambda a: a.user)], + lambda c1, c2: c2['count'] - c1['count']) return render_to_response('badge.html', { + 'award_count': award_count, 'awards' : awards, 'badge' : badge, }, context_instance=RequestContext(request))