diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-12-06 17:12:36 -0500 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-12-06 17:12:36 -0500 |
commit | 84f601886ca5e804596003770f45c5726ca9724d (patch) | |
tree | 3aab15cb202b4853c3f94b0f796f8f24a7f04a0e | |
parent | defa2f2f82c71d8cce364927755fcfd88d14c567 (diff) | |
download | askbot-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__.py | 2 | ||||
-rw-r--r-- | askbot/skins/default/templates/tags.html | 2 | ||||
-rw-r--r-- | askbot/skins/default/templates/user_stats.html | 4 | ||||
-rw-r--r-- | askbot/views/meta.py | 6 | ||||
-rw-r--r-- | askbot/views/users.py | 19 |
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> 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 }}">●</span> {% trans name=award.badge.name %}{{name}}{% endtrans %}</a><span class="tag-number"> × {{ 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 }}">●</span> {% trans name=badge.name %}{{name}}{% endtrans %}</a><span class="tag-number"> × {{ 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) |