X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/410bfa05ee36ed1d99356c443a5f3f6aa3ee9578..35ebbd77a68be7cb9b774756c24557c1349d9ac9:/forum/views/meta.py diff --git a/forum/views/meta.py b/forum/views/meta.py index 03ffc6d..c143d13 100644 --- a/forum/views/meta.py +++ b/forum/views/meta.py @@ -1,8 +1,9 @@ +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 from django.http import HttpResponseRedirect, HttpResponse -from django.conf import settings +from forum import settings from forum.forms import FeedbackForm from django.core.urlresolvers import reverse from django.utils.translation import ugettext as _ @@ -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))