From 3f7fc3d94cb208c4ce5abda856ca8a18bd52c26b Mon Sep 17 00:00:00 2001 From: Evgeny Fadeev Date: Tue, 7 Dec 2010 16:56:46 -0500 Subject: fixed one more query for the badge page --- askbot/skins/default/templates/badge.html | 10 +++++----- askbot/views/meta.py | 19 +++++++------------ 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/askbot/skins/default/templates/badge.html b/askbot/skins/default/templates/badge.html index 6d4c956e..ef5d3a89 100644 --- a/askbot/skins/default/templates/badge.html +++ b/askbot/skins/default/templates/badge.html @@ -12,14 +12,14 @@

{% if badge.awarded_count %} -

{{ awards|length|intcomma }} - {% trans num_awardees=awards|length %}user received this badge:{% pluralize %}users received this badge:{% endtrans %}

+

{{ badge_recipients|length|intcomma }} + {% trans num_awardees=badge_recipients|length %}user received this badge:{% pluralize %}users received this badge:{% endtrans %}

{% endif %}
- {% for award in awards %} -

{{ award.user.username }} - {{ macros.user_score_and_badge_summary(award.user) }} + {% for recipient in badge_recipients %} +

{{ recipient.username }} + {{ macros.user_score_and_badge_summary(recipient) }}

{% endfor %}
diff --git a/askbot/views/meta.py b/askbot/views/meta.py index 4aba646d..72d479c6 100644 --- a/askbot/views/meta.py +++ b/askbot/views/meta.py @@ -13,7 +13,7 @@ from django.views import static from askbot.forms import FeedbackForm from askbot.utils.forms import get_next_url from askbot.utils.mail import mail_moderators -from askbot.models import BadgeData, Award +from askbot.models import BadgeData, Award, User from askbot.models import badges as badge_data from askbot.skins.loaders import ENV from askbot import skins @@ -116,22 +116,17 @@ def badges(request):#user status/reputation system def badge(request, id): #todo: supplement database data with the stuff from badges.py badge = get_object_or_404(BadgeData, id=id) - awards = Award.objects.filter( - badge = badge, - ).select_related( - 'user__id', - 'user__username', - 'user__reputation', - 'user__gold', - 'user__silver', - 'user__bronze' - ).distinct('user') + badge_recipients = User.objects.filter( + award_user__badge = badge + ).order_by( + '-award_user__awarded_at' + ).distinct() template = ENV.get_template('badge.html') data = { 'view_name': badge, 'active_tab': 'badges', - 'awards' : awards, + 'badge_recipients' : badge_recipients, 'badge' : badge, } context = RequestContext(request, data) -- cgit v1.2.3-1-g7c22