diff options
author | Aurélien Bompard <aurelien@bompard.org> | 2012-09-12 09:31:21 +0200 |
---|---|---|
committer | Aurélien Bompard <aurelien@bompard.org> | 2012-09-12 09:31:21 +0200 |
commit | bf62d083d818f074522f7fb095f93987afbb5bdc (patch) | |
tree | 87a26e868eec95f6d1a65a224f159731143a7b45 /hyperkitty/views/accounts.py | |
parent | 643a4a97ff7cd5013e25d2eeb6bcc68cf524c1d7 (diff) | |
download | hyperkitty-bf62d083d818f074522f7fb095f93987afbb5bdc.tar.gz hyperkitty-bf62d083d818f074522f7fb095f93987afbb5bdc.tar.xz hyperkitty-bf62d083d818f074522f7fb095f93987afbb5bdc.zip |
Improve the user voting display (only one SQL query)
Diffstat (limited to 'hyperkitty/views/accounts.py')
-rw-r--r-- | hyperkitty/views/accounts.py | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/hyperkitty/views/accounts.py b/hyperkitty/views/accounts.py index 2c68315..49d726f 100644 --- a/hyperkitty/views/accounts.py +++ b/hyperkitty/views/accounts.py @@ -29,7 +29,7 @@ from django.contrib.auth.decorators import (login_required, permission_required, user_passes_test) from django.contrib.auth.forms import AuthenticationForm -from hyperkitty.models import UserProfile +from hyperkitty.models import UserProfile, Rating from django.contrib.auth.models import User from django.core.urlresolvers import reverse from django.http import HttpResponse, HttpResponseRedirect @@ -41,6 +41,8 @@ from urlparse import urlparse from forms import RegistrationForm from hyperkitty.utils import log +from hyperkitty.lib import get_store + def user_logout(request): logout(request) @@ -74,6 +76,7 @@ def user_login(request, template='login.html'): def user_profile(request, user_email=None): if not request.user.is_authenticated(): return redirect('user_login') + t = loader.get_template('user_profile.html') # try to render the user profile. try: @@ -82,10 +85,29 @@ def user_profile(request, user_email=None): except: user_profile = UserProfile.objects.create(user=request.user) - t = loader.get_template('user_profile.html') + try: + votes = Rating.objects.filter(user=request.user) + except Rating.DoesNotExist: + votes = {} + store = get_store(request) + votes_up = [] + votes_down = [] + for vote in votes: + message = store.get_message_by_id_from_list( + vote.list_address, vote.message_id) + vote_data = {"list_address": vote.list_address, + "message_id": vote.message_id, + "message": message, + } + if vote.vote == 1: + votes_up.append(vote_data) + elif vote.vote == -1: + votes_down.append(vote_data) c = RequestContext(request, { 'user_profile' : user_profile, + 'votes_up': votes_up, + 'votes_down': votes_down, }) return HttpResponse(t.render(c)) |