summaryrefslogtreecommitdiffstats
path: root/hyperkitty/views
diff options
context:
space:
mode:
Diffstat (limited to 'hyperkitty/views')
-rw-r--r--hyperkitty/views/list.py27
-rw-r--r--hyperkitty/views/message.py23
-rw-r--r--hyperkitty/views/thread.py24
3 files changed, 11 insertions, 63 deletions
diff --git a/hyperkitty/views/list.py b/hyperkitty/views/list.py
index c86b506..3adbebd 100644
--- a/hyperkitty/views/list.py
+++ b/hyperkitty/views/list.py
@@ -40,8 +40,8 @@ from django.contrib.auth.decorators import (login_required,
permission_required,
user_passes_test)
-from hyperkitty.models import Rating, Tag, Favorite
-from hyperkitty.lib import get_months, get_store, get_display_dates
+from hyperkitty.models import Tag, Favorite
+from hyperkitty.lib import get_months, get_store, get_display_dates, get_votes
from forms import *
@@ -84,36 +84,21 @@ def archives(request, mlist_fqdn, year=None, month=None, day=None):
totallikes = 0
totaldislikes = 0
- for message_id in thread.email_ids:
+ for message_id_hash in thread.email_id_hashes:
# Extract all the votes for this message
- try:
- votes = Rating.objects.filter(messageid=message_id)
- except Rating.DoesNotExist:
- votes = {}
-
- likes = 0
- dislikes = 0
-
- for vote in votes:
- if vote.vote == 1:
- likes = likes + 1
- elif vote.vote == -1:
- dislikes = dislikes + 1
- else:
- pass
-
+ likes, dislikes = get_votes(message_id_hash)
totallikes = totallikes + likes
totalvotes = totalvotes + likes + dislikes
totaldislikes = totaldislikes + dislikes
try:
thread.likes = totallikes / totalvotes
- except:
+ except ZeroDivisionError:
thread.likes = 0
try:
thread.dislikes = totaldislikes / totalvotes
- except:
+ except ZeroDivisionError:
thread.dislikes = 0
thread.likestatus = "neutral"
diff --git a/hyperkitty/views/message.py b/hyperkitty/views/message.py
index 3e6cac3..40e1834 100644
--- a/hyperkitty/views/message.py
+++ b/hyperkitty/views/message.py
@@ -36,8 +36,7 @@ from django.contrib.auth.decorators import (login_required,
permission_required,
user_passes_test)
-from hyperkitty.models import Rating
-from hyperkitty.lib import get_store, get_months
+from hyperkitty.lib import get_store, get_months, get_votes
from forms import *
@@ -57,25 +56,7 @@ def index(request, mlist_fqdn, message_id_hash):
message.sender_email = message.sender_email.strip()
# Extract all the votes for this message
- try:
- votes = Rating.objects.filter(messageid=message_id_hash)
- except Rating.DoesNotExist:
- votes = {}
-
- likes = 0
- dislikes = 0
-
- for vote in votes:
- if vote.vote == 1:
- likes = likes + 1
- elif vote.vote == -1:
- dislikes = dislikes + 1
- else:
- pass
-
- message.votes = votes
- message.likes = likes
- message.dislikes = dislikes
+ message.likes, message.dislikes = get_votes(message_id_hash)
message.likestatus = "neutral"
if message.likes - message.dislikes >= 10:
message.likestatus = "likealot"
diff --git a/hyperkitty/views/thread.py b/hyperkitty/views/thread.py
index 549dfe0..2e4f768 100644
--- a/hyperkitty/views/thread.py
+++ b/hyperkitty/views/thread.py
@@ -34,10 +34,10 @@ from django.contrib.auth.decorators import (login_required,
permission_required,
user_passes_test)
-from hyperkitty.models import Rating, Tag, Favorite
+from hyperkitty.models import Tag, Favorite
#from hyperkitty.lib.mockup import *
from forms import *
-from hyperkitty.lib import get_months, get_store, stripped_subject
+from hyperkitty.lib import get_months, get_store, stripped_subject, get_votes
def thread_index(request, mlist_fqdn, threadid, month=None, year=None):
@@ -60,25 +60,7 @@ def thread_index(request, mlist_fqdn, threadid, month=None, year=None):
participants = {}
for email in emails:
# Extract all the votes for this message
- try:
- votes = Rating.objects.filter(messageid=email.message_id)
- except Rating.DoesNotExist:
- votes = {}
-
- likes = 0
- dislikes = 0
-
- for vote in votes:
- if vote.vote == 1:
- likes = likes + 1
- elif vote.vote == -1:
- dislikes = dislikes + 1
- else:
- pass
-
- email.votes = votes
- email.likes = likes
- email.dislikes = dislikes
+ email.likes, email.dislikes = get_votes(email.message_id_hash)
email.likestatus = "neutral"
if email.likes - email.dislikes >= 10:
email.likestatus = "likealot"