Skip to content

Commit

Permalink
Added OutboxMessage read view. [bug 656023]
Browse files Browse the repository at this point in the history
  • Loading branch information
rlr committed May 10, 2011
1 parent 73beff8 commit 3e2b041
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 11 deletions.
6 changes: 3 additions & 3 deletions apps/messages/templates/messages/includes/macros.html
Expand Up @@ -7,11 +7,11 @@
{%- endmacro %}

{% macro name_link(user=None, name=None) -%}
{% if user %}
{% if user -%}
<a href="{{ profile_url(user) }}">{% if name %}{{ name }}{% else %}{{ display_name(user) }}{% endif %}</a>
{% else %}
{%- else -%}
{{ name if name else _('System') }}
{% endif %}
{%- endif %}
{%- endmacro %}

{% macro message_tabs(active_tab) -%}
Expand Down
2 changes: 1 addition & 1 deletion apps/messages/templates/messages/outbox.html
Expand Up @@ -27,7 +27,7 @@ <h1>{{ title }}</h1>
{%- endif %}
{{ datetimeformat(message.created) }}
</span>
<a href="{# TODO: url('messages.read_outgoing', message.id) #}">
<a href="{{ url('messages.read_outbox', message.id) }}">
{{ message.message|truncate(length=200) }}
</a>
</li>
Expand Down
32 changes: 32 additions & 0 deletions apps/messages/templates/messages/read-outbox.html
@@ -0,0 +1,32 @@
{% extends "messages/base.html" %}
{% from "messages/includes/macros.html" import avatar_link, name_link %}
{% set title = _('Read Sent Message') %}
{% set crumbs = [(url('messages.inbox'), _('Messages')),
(url('messages.outbox'), _('Sent Messages')),
(None, title)] %}

{% block content %}
<article id="read-message" class="main">
<h1>{{ title }}</h1>
<span class="avatar">
{% if message.recipients > 1 -%}
{{ avatar_link(request.user) }}
{% else %}
{{ avatar_link(message.recipient) }}
{% endif %}
</span>
<span class="to">
{% if message.recipients > 1 -%}
{% set comma = joiner(', ') %}
{% for user in message.to.all() -%}
{{ comma() }}
{{ name_link(user) }}
{%- endfor %}
{% else %}{# Save a query! #}
{{ name_link(message.recipient) }}
{% endif %}
{{ datetimeformat(message.created) }}
</span>
<div class="message">{{ message.message }}</div>
</article>
{% endblock %}
8 changes: 5 additions & 3 deletions apps/messages/urls.py
Expand Up @@ -5,7 +5,9 @@

urlpatterns = patterns('',
url(r'^$', views.inbox, name='messages.inbox'),
url(r'^/read/(?P<msgid>\d+)', views.read, name='messages.read'),
url(r'^/sent', views.outbox, name='messages.outbox'),
url(r'^/new', views.new_message, name='messages.new'),
url(r'^/read/(?P<msgid>\d+)$', views.read, name='messages.read'),
url(r'^/sent$', views.outbox, name='messages.outbox'),
url(r'^/sent/(?P<msgid>\d+)$', views.read_outbox,
name='messages.read_outbox'),
url(r'^/new$', views.new_message, name='messages.new'),
)
22 changes: 18 additions & 4 deletions apps/messages/views.py
@@ -1,5 +1,6 @@
from django.contrib import messages as contrib_messages
from django.http import HttpResponseRedirect
from django.shortcuts import get_object_or_404

import jingo
from tower import ugettext as _
Expand All @@ -25,7 +26,7 @@ def inbox(request):
@waffle_flag('private-messaging')
@login_required
def read(request, msgid):
message = InboxMessage.objects.get(pk=msgid, to=request.user)
message = get_object_or_404(InboxMessage, pk=msgid, to=request.user)
if message.unread:
message.read = True
message.save()
Expand All @@ -35,15 +36,21 @@ def read(request, msgid):
{'message': message, 'form': form})


@waffle_flag('private-messaging')
@login_required
def read_outbox(request, msgid):
message = get_object_or_404(OutboxMessage, pk=msgid, sender=request.user)
return jingo.render(request, 'messages/read-outbox.html',
{'message': _add_recipients(message)})


@waffle_flag('private-messaging')
@login_required
def outbox(request):
user = request.user
messages = OutboxMessage.objects.filter(sender=user).order_by('-created')
for msg in messages:
msg.recipients = msg.to.count()
if msg.recipients == 1:
msg.recipient = msg.to.all()[0]
_add_recipients(msg)
return jingo.render(request, 'messages/outbox.html',
{'msgs': messages})

Expand All @@ -68,3 +75,10 @@ def new_message(request):
return HttpResponseRedirect(reverse('messages.inbox'))

return jingo.render(request, 'messages/new.html', {'form': form})


def _add_recipients(msg):
msg.recipients = msg.to.count()
if msg.recipients == 1:
msg.recipient = msg.to.all()[0]
return msg

0 comments on commit 3e2b041

Please sign in to comment.