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