summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hyperkitty/archiver.py2
-rw-r--r--hyperkitty/templates/messages/like_form.html2
-rw-r--r--hyperkitty/templates/messages/message.html10
-rw-r--r--hyperkitty/templates/messages/reply_form.html2
-rw-r--r--hyperkitty/templates/month_view.html2
-rw-r--r--hyperkitty/templates/search.html2
-rw-r--r--hyperkitty/templates/user_profile.html8
-rw-r--r--hyperkitty/tests/test_views.py4
-rw-r--r--hyperkitty/urls.py8
-rw-r--r--hyperkitty/views/compat.py2
-rw-r--r--hyperkitty/views/message.py27
11 files changed, 35 insertions, 34 deletions
diff --git a/hyperkitty/archiver.py b/hyperkitty/archiver.py
index ffb08ff..7e79b08 100644
--- a/hyperkitty/archiver.py
+++ b/hyperkitty/archiver.py
@@ -97,7 +97,7 @@ class Archiver(object):
msg_hash = get_message_id_hash(msg_id)
return urljoin(self.store_url, reverse('message_index',
kwargs={"mlist_fqdn": mlist.fqdn_listname,
- "hashid": msg_hash}))
+ "message_id_hash": msg_hash}))
def archive_message(self, mlist, msg):
"""Send the message to the archiver.
diff --git a/hyperkitty/templates/messages/like_form.html b/hyperkitty/templates/messages/like_form.html
index 3b99987..40b85c0 100644
--- a/hyperkitty/templates/messages/like_form.html
+++ b/hyperkitty/templates/messages/like_form.html
@@ -1,5 +1,5 @@
<form method="post" class="likeform"
- action="{% url message_vote mlist_fqdn=list_address, hashid=hashid %}">
+ action="{% url message_vote mlist_fqdn=list_address, message_id_hash=message_id_hash %}">
{% csrf_token %}
<li class="likestatus {{ object.likestatus }}">
+<span class="likecount">{{ object.likes }}</span>/-<span class="dislikecount">{{ object.dislikes }}</span>
diff --git a/hyperkitty/templates/messages/message.html b/hyperkitty/templates/messages/message.html
index a47d831..89ecda7 100644
--- a/hyperkitty/templates/messages/message.html
+++ b/hyperkitty/templates/messages/message.html
@@ -19,7 +19,7 @@
{% gravatar email.sender_email 40 %}
</div>
<div class="email_author inline-block">
- <span class="name"><a href="{% url message_index mlist_fqdn=list_address, hashid=email.message_id_hash %}">{{email.sender_name|escapeemail}}</a></span>
+ <span class="name"><a href="{% url message_index mlist_fqdn=list_address, message_id_hash=email.message_id_hash %}">{{email.sender_name|escapeemail}}</a></span>
{% if use_mockups %}
<br />
<span class="rank">
@@ -36,7 +36,7 @@
<p class="attachments">Attachments:</p>
<ul class="attachments-list">
{% for attachment in email.attachments %}
- <li><a href="{% url message_attachment mlist_fqdn=list_address, hashid=email.message_id_hash, counter=attachment.counter, filename=attachment.name %}">{{attachment.name}}</a>
+ <li><a href="{% url message_attachment mlist_fqdn=list_address, message_id_hash=email.message_id_hash, counter=attachment.counter, filename=attachment.name %}">{{attachment.name}}</a>
({{attachment.content_type}} &mdash; {{attachment.size|filesizeformat}})
</li>
{% endfor %}
@@ -44,20 +44,20 @@
{% endif %}
<ul class="email_info inline">
- {% include "messages/like_form.html" with hashid=email.message_id_hash object=email %}
+ {% include "messages/like_form.html" with message_id_hash=email.message_id_hash object=email %}
{% if not unfolded and email.attachments|count %}
<li class="attachments">
<a class="attachments" href="#attachments">{{ email.attachments|count }} attachment(s)</a>
<ul class="attachments-list">
{% for attachment in email.attachments %}
- <li><a href="{% url message_attachment mlist_fqdn=list_address, hashid=email.message_id_hash, counter=attachment.counter, filename=attachment.name %}">{{attachment.name}}</a>
+ <li><a href="{% url message_attachment mlist_fqdn=list_address, message_id_hash=email.message_id_hash, counter=attachment.counter, filename=attachment.name %}">{{attachment.name}}</a>
({{attachment.content_type}} &mdash; {{attachment.size|filesizeformat}})
</li>
{% endfor %}
</ul>
</li>
{% endif %}
- {% include "messages/reply_form.html" with mlist_fqdn=list_address message_id=email.message_id_hash %}
+ {% include "messages/reply_form.html" with mlist_fqdn=list_address message_id_hash=email.message_id_hash %}
</ul>
{# vim: set noet: #}
diff --git a/hyperkitty/templates/messages/reply_form.html b/hyperkitty/templates/messages/reply_form.html
index 29bd15b..eca1dc6 100644
--- a/hyperkitty/templates/messages/reply_form.html
+++ b/hyperkitty/templates/messages/reply_form.html
@@ -1,7 +1,7 @@
<a class="reply icon-envelope" href="#">Reply</a>
<div class="reply-form dropdown">
<form method="post"
- action="{% url message_reply mlist_fqdn=mlist_fqdn, message_id=message_id %}">
+ action="{% url message_reply mlist_fqdn=mlist_fqdn, message_id_hash=message_id_hash %}">
{% csrf_token %}
{{ reply_form.as_p }}
<p class="buttons">
diff --git a/hyperkitty/templates/month_view.html b/hyperkitty/templates/month_view.html
index 526eb15..3484a2b 100644
--- a/hyperkitty/templates/month_view.html
+++ b/hyperkitty/templates/month_view.html
@@ -92,7 +92,7 @@
</li>
</ul>
<ul class="inline-block">
- {% include "messages/like_form.html" with hashid=thread.thread_id object=thread %}
+ {% include "messages/like_form.html" with message_id_hash=thread.starting_email.message_id_hash object=thread %}
</ul>
<a href="{% url thread threadid=thread.thread_id, mlist_fqdn=list_address %}"
class="btn">Show discussion</a>
diff --git a/hyperkitty/templates/search.html b/hyperkitty/templates/search.html
index da464b2..facc733 100644
--- a/hyperkitty/templates/search.html
+++ b/hyperkitty/templates/search.html
@@ -68,7 +68,7 @@
</li>
</ul>
<ul class="inline-block">
- {% include "messages/like_form.html" with hashid=email.message_id_hash object=email %}
+ {% include "messages/like_form.html" with message_id_hash=email.message_id_hash object=email %}
</ul>
</div>
</div>
diff --git a/hyperkitty/templates/user_profile.html b/hyperkitty/templates/user_profile.html
index c967be6..8052bce 100644
--- a/hyperkitty/templates/user_profile.html
+++ b/hyperkitty/templates/user_profile.html
@@ -65,11 +65,11 @@
{% for vote in votes_up %}
<li>
{% if vote.message.content|trimString|length > 0 %}
- <a href="{% url message_index mlist_fqdn=vote.list_address, hashid=vote.messageid %}"
+ <a href="{% url message_index mlist_fqdn=vote.list_address, message_id_hash=vote.messageid %}"
>{{ vote.message.subject }}</a> by {{ vote.message.sender_name }}
({{ vote.message|viewer_date|date:"l, j F Y H:i:s" }})
{% else %}
- <a href="{% url message_index mlist_fqdn=vote.list_address, hashid=vote.messageid %}">Message is empty</a>
+ <a href="{% url message_index mlist_fqdn=vote.list_address, message_id_hash=vote.messageid %}">Message is empty</a>
{% endif %}
</li>
{% endfor %}
@@ -84,11 +84,11 @@
{% for vote in votes_down %}
<li>
{% if vote.message.content|trimString|length > 0 %}
- <a href="{% url message_index mlist_fqdn=vote.list_address, hashid=vote.messageid %}"
+ <a href="{% url message_index mlist_fqdn=vote.list_address, message_id_hash=vote.messageid %}"
>{{ vote.message.subject }}</a> by {{ vote.message.sender_name }}
({{ vote.message|viewer_date|date:"l, j F Y H:i:s" }})
{% else %}
- <a href="{% url message_index mlist_fqdn=vote.list_address, hashid=vote.messageid %}">Message is empty</a>
+ <a href="{% url message_index mlist_fqdn=vote.list_address, message_id_hash=vote.messageid %}">Message is empty</a>
{% endif %}
</li>
{% endfor %}
diff --git a/hyperkitty/tests/test_views.py b/hyperkitty/tests/test_views.py
index 83e3e24..b4d897f 100644
--- a/hyperkitty/tests/test_views.py
+++ b/hyperkitty/tests/test_views.py
@@ -83,11 +83,11 @@ class MessageViewsTestCase(TestCase):
User.objects.create_user('testuser', 'syst3m.w0rm+test@gmail.com', 'testPass')
user = self.client.login(username='testuser', password='testPass')
- resp = self.client.post(reverse('message_vote', kwargs={'mlist_fqdn': 'list@list.com'}), {'vote': 1, 'hashid': 123, })
+ resp = self.client.post(reverse('message_vote', kwargs={'mlist_fqdn': 'list@list.com'}), {'vote': 1, 'message_id_hash': 123, })
self.assertEqual(resp.status_code, 200)
def test_unauth_vote(self):
- resp = self.client.post(reverse('message_vote', kwargs={'mlist_fqdn': 'list@list.com'}), {'vote': 1, 'hashid': 123, })
+ resp = self.client.post(reverse('message_vote', kwargs={'mlist_fqdn': 'list@list.com'}), {'vote': 1, 'message_id_hash': 123, })
self.assertEqual(resp.status_code, 403)
diff --git a/hyperkitty/urls.py b/hyperkitty/urls.py
index 591ad41..82a7b72 100644
--- a/hyperkitty/urls.py
+++ b/hyperkitty/urls.py
@@ -55,13 +55,13 @@ urlpatterns = patterns('hyperkitty.views',
'list.overview', name='list_overview'),
# Message
- url(r'^list/(?P<mlist_fqdn>[^/@]+@[^/@]+)/message/(?P<hashid>\w+)/$',
+ url(r'^list/(?P<mlist_fqdn>[^/@]+@[^/@]+)/message/(?P<message_id_hash>\w+)/$',
'message.index', name='message_index'),
- url(r'^list/(?P<mlist_fqdn>[^/@]+@[^/@]+)/message/(?P<hashid>\w+)/attachment/(?P<counter>\d+)/(?P<filename>.+)$',
+ url(r'^list/(?P<mlist_fqdn>[^/@]+@[^/@]+)/message/(?P<message_id_hash>\w+)/attachment/(?P<counter>\d+)/(?P<filename>.+)$',
'message.attachment', name='message_attachment'),
- url(r'^list/(?P<mlist_fqdn>[^/@]+@[^/@]+)/message/(?P<hashid>\w+)/vote$',
+ url(r'^list/(?P<mlist_fqdn>[^/@]+@[^/@]+)/message/(?P<message_id_hash>\w+)/vote$',
'message.vote', name='message_vote'),
- url(r'^list/(?P<mlist_fqdn>[^/@]+@[^/@]+)/message/(?P<message_id>\w+)/reply$',
+ url(r'^list/(?P<mlist_fqdn>[^/@]+@[^/@]+)/message/(?P<message_id_hash>\w+)/reply$',
'message.reply', name='message_reply'),
# Thread
diff --git a/hyperkitty/views/compat.py b/hyperkitty/views/compat.py
index bbfa367..b8c0666 100644
--- a/hyperkitty/views/compat.py
+++ b/hyperkitty/views/compat.py
@@ -108,7 +108,7 @@ def message(request, list_name, year, month_name, msg_num):
raise Http404("No such message in this mailing-list.")
url = reverse('message_index', kwargs={
'mlist_fqdn': mlist.name,
- 'hashid': message.message_id_hash,
+ 'message_id': message.message_id_hash,
})
#return HttpResponse(request.build_absolute_uri(url))
return HttpResponseRedirect(url)
diff --git a/hyperkitty/views/message.py b/hyperkitty/views/message.py
index 509205c..3e6cac3 100644
--- a/hyperkitty/views/message.py
+++ b/hyperkitty/views/message.py
@@ -41,7 +41,7 @@ from hyperkitty.lib import get_store, get_months
from forms import *
-def index(request, mlist_fqdn, hashid):
+def index(request, mlist_fqdn, message_id_hash):
'''
Displays a single message identified by its message_id_hash (derived from
message_id)
@@ -51,14 +51,14 @@ def index(request, mlist_fqdn, hashid):
search_form = SearchForm(auto_id=False)
t = loader.get_template('message.html')
store = get_store(request)
- message = store.get_message_by_hash_from_list(mlist_fqdn, hashid)
+ message = store.get_message_by_hash_from_list(mlist_fqdn, message_id_hash)
if message is None:
raise Http404
message.sender_email = message.sender_email.strip()
# Extract all the votes for this message
try:
- votes = Rating.objects.filter(messageid = hashid)
+ votes = Rating.objects.filter(messageid=message_id_hash)
except Rating.DoesNotExist:
votes = {}
@@ -91,7 +91,7 @@ def index(request, mlist_fqdn, hashid):
'list_name' : list_name,
'list_address': mlist_fqdn,
'message': message,
- 'hashid' : hashid,
+ 'message_id_hash' : message_id_hash,
'archives_length': get_months(store, mlist_fqdn),
'use_mockups': settings.USE_MOCKUPS,
'reply_form': ReplyForm(),
@@ -99,13 +99,13 @@ def index(request, mlist_fqdn, hashid):
return HttpResponse(t.render(c))
-def attachment(request, mlist_fqdn, hashid, counter, filename):
+def attachment(request, mlist_fqdn, message_id_hash, counter, filename):
"""
Sends the numbered attachment for download. The filename is not used for
lookup, but validated nonetheless for security reasons.
"""
store = get_store(request)
- message = store.get_message_by_hash_from_list(mlist_fqdn, hashid)
+ message = store.get_message_by_hash_from_list(mlist_fqdn, message_id_hash)
if message is None:
raise Http404
attachment = store.get_attachment_by_counter(
@@ -124,7 +124,7 @@ def attachment(request, mlist_fqdn, hashid, counter, filename):
return response
-def vote(request, mlist_fqdn, hashid):
+def vote(request, mlist_fqdn, message_id_hash):
""" Add a rating to a given message identified by messageid. """
if not request.user.is_authenticated():
return HttpResponse('You must be logged in to vote',
@@ -134,13 +134,13 @@ def vote(request, mlist_fqdn, hashid):
# Checks if the user has already voted for a this message.
try:
- v = Rating.objects.get(user=request.user, messageid=hashid,
+ v = Rating.objects.get(user=request.user, messageid=message_id_hash,
list_address=mlist_fqdn)
if v.vote == value:
return HttpResponse("You've already cast this vote",
content_type="text/plain", status=403)
except Rating.DoesNotExist:
- v = Rating(list_address=mlist_fqdn, messageid=hashid, vote=value)
+ v = Rating(list_address=mlist_fqdn, messageid=message_id_hash, vote=value)
v.user = request.user
v.vote = value
@@ -148,7 +148,7 @@ def vote(request, mlist_fqdn, hashid):
# Extract all the votes for this message to refresh it
status = { "like": 0, "dislike": 0 }
- for vote in Rating.objects.filter(messageid=hashid):
+ for vote in Rating.objects.filter(messageid=message_id_hash):
if vote.vote == 1:
status["like"] += 1
elif vote.vote == -1:
@@ -159,7 +159,7 @@ def vote(request, mlist_fqdn, hashid):
@login_required
-def reply(request, mlist_fqdn, message_id):
+def reply(request, mlist_fqdn, message_id_hash):
""" Sends a reply to the list.
TODO: unit tests
"""
@@ -169,7 +169,7 @@ def reply(request, mlist_fqdn, message_id):
if not form.is_valid():
return HttpResponse(form.errors.as_text(), content_type="text/plain", status=400)
store = get_store(request)
- message = store.get_message_by_hash_from_list(mlist_fqdn, message_id)
+ message = store.get_message_by_hash_from_list(mlist_fqdn, message_id_hash)
subject = message.subject
if not message.subject.lower().startswith("re:"):
subject = "Re: %s" % subject
@@ -182,7 +182,8 @@ def reply(request, mlist_fqdn, message_id):
to=[mlist_fqdn],
cc=['aurelien@bompard.org'],
headers={
- "In-Reply-To": message.message_id,
+ "In-Reply-To": "<%s>" % message.message_id,
+ "References": "<%s>" % message.message_id,
})
reply.send()
return HttpResponse("The reply has been sent successfully.", mimetype="text/plain")