summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2010-12-06 17:12:36 -0500
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2010-12-06 17:12:36 -0500
commit84f601886ca5e804596003770f45c5726ca9724d (patch)
tree3aab15cb202b4853c3f94b0f796f8f24a7f04a0e
parentdefa2f2f82c71d8cce364927755fcfd88d14c567 (diff)
downloadaskbot-84f601886ca5e804596003770f45c5726ca9724d.tar.gz
askbot-84f601886ca5e804596003770f45c5726ca9724d.tar.bz2
askbot-84f601886ca5e804596003770f45c5726ca9724d.zip
fixed search persistence problem with tags page and some badge issues
-rw-r--r--askbot/__init__.py2
-rw-r--r--askbot/skins/default/templates/tags.html2
-rw-r--r--askbot/skins/default/templates/user_stats.html4
-rw-r--r--askbot/views/meta.py6
-rw-r--r--askbot/views/users.py19
5 files changed, 24 insertions, 9 deletions
diff --git a/askbot/__init__.py b/askbot/__init__.py
index efaf2490..0ff33a76 100644
--- a/askbot/__init__.py
+++ b/askbot/__init__.py
@@ -19,4 +19,4 @@ def get_version():
"""returns version of the askbot app
this version is meaningful for pypi only
"""
- return '0.6.38'
+ return '0.6.39'
diff --git a/askbot/skins/default/templates/tags.html b/askbot/skins/default/templates/tags.html
index ca42a72d..c23b57f9 100644
--- a/askbot/skins/default/templates/tags.html
+++ b/askbot/skins/default/templates/tags.html
@@ -34,7 +34,7 @@
<ul class="tagsList tags">
{% for tag in tags.object_list %}
<li>
- <a href="{% url questions %}?tags={{tag|urlencode}}"
+ <a href="{% url questions %}?tags={{tag|urlencode}}&start_over=true"
title="{% trans %}see questions tagged '{{ tag }}'{% endtrans %}" rel="tag">
{{ tag }}
</a>&nbsp;
diff --git a/askbot/skins/default/templates/user_stats.html b/askbot/skins/default/templates/user_stats.html
index 36bb1d43..6c96d94d 100644
--- a/askbot/skins/default/templates/user_stats.html
+++ b/askbot/skins/default/templates/user_stats.html
@@ -84,8 +84,8 @@
<table>
<tr>
<td width="180" style="line-height:35px">
- {% for award in awards %}{# todo: translate badge name properly #}
- <a href="{{award.badge.get_absolute_url()}}" title="{% trans description=award.badge.description %}{{description}}{% endtrans %}" class="medal"><span class="{{ award.badge.css_class }}">&#9679;</span>&nbsp;{% trans name=award.badge.name %}{{name}}{% endtrans %}</a><span class="tag-number"> &#215; {{ award.count|intcomma }}</span><br/>
+ {% for badge in badges %}{# todo: translate badge name properly #}
+ <a href="{{badge.get_absolute_url()}}" title="{% trans description=badge.description %}{{description}}{% endtrans %}" class="medal"><span class="{{ badge.css_class }}">&#9679;</span>&nbsp;{% trans name=badge.name %}{{name}}{% endtrans %}</a><span class="tag-number"> &#215; {{ awarded_badge_counts[badge.id]|intcomma }}</span><br/>
{% if loop.index is divisibleby 3 %}
</td>
<td width="180" style="line-height:35px">
diff --git a/askbot/views/meta.py b/askbot/views/meta.py
index 07ac213b..8c2063ee 100644
--- a/askbot/views/meta.py
+++ b/askbot/views/meta.py
@@ -95,7 +95,11 @@ def badges(request):#user status/reputation system
badges = BadgeData.objects.filter(slug__in = known_badges).order_by('slug')
my_badges = []
if request.user.is_authenticated():
- my_badges = Award.objects.filter(user=request.user).values('badge_id')
+ my_badges = Award.objects.filter(
+ user=request.user
+ ).values(
+ 'badge_id'
+ ).distinct()
#my_badges.query.group_by = ['badge_id']
template = ENV.get_template('badges.html')
diff --git a/askbot/views/users.py b/askbot/views/users.py
index 0c92b579..14c368fd 100644
--- a/askbot/views/users.py
+++ b/askbot/views/users.py
@@ -336,9 +336,19 @@ def user_stats(request, user):
question_id_set.update([q.id for q in questions])
question_id_set.update([q['id'] for q in answered_questions])
user_tags = models.Tag.objects.filter(questions__id__in = question_id_set)
- awards = models.Award.objects.filter(user=user).order_by('-awarded_at')
- total_awards = awards.count()
- awards = awards.annotate(count = Count('badge__id'))
+ badges = models.BadgeData.objects.filter(
+ award_badge__user=user
+ )
+ total_awards = badges.count()
+ badges = badges.order_by(
+ '-slug'
+ ).distinct()
+ awarded_badge_counts = models.Award.objects.filter(
+ user = user
+ ).annotate(
+ count = Count('badge__id')
+ ).values_list('badge', 'count')
+
user_tags = user_tags.annotate(
user_tag_usage_count=Count('name')
).order_by(
@@ -372,7 +382,8 @@ def user_stats(request, user):
'votes_today_left': votes_total-votes_today,
'votes_total_per_day': votes_total,
'user_tags' : user_tags[:const.USER_VIEW_DATA_SIZE],
- 'awards': awards,
+ 'badges': badges,
+ 'awarded_badge_counts': dict(awarded_badge_counts),
'total_awards' : total_awards,
}
context = RequestContext(request, data)