notifications.html 3.13 KB
Newer Older
1
<%! from django.utils.translation import ugettext as _ %>
2 3 4
<%! from django.core.urlresolvers import reverse %>

<%
Rocky Duan committed
5 6
def url_for_thread(discussion_id, thread_id):
  return reverse('django_comment_client.forum.views.single_thread', args=[course.id, discussion_id, thread_id])
7 8
%>

9
<%
Rocky Duan committed
10 11
def url_for_comment(discussion_id, thread_id, comment_id):
  return url_for_thread(discussion_id, thread_id) + "#" + comment_id
12 13 14 15 16 17 18
%>

<%
def url_for_discussion(discussion_id):
  return reverse('django_comment_client.forum.views.forum_form_discussion', args=[course.id, discussion_id])
%>

19
<%
20 21 22 23
def discussion_title(discussion_id):
  return get_discussion_title(discussion_id=discussion_id)
%>

24 25 26 27 28
<%
def url_for_user(user_id): #TODO
  return "javascript:void(0)"
%>

29 30 31 32 33 34 35

<div class="notifications">
  % for notification in notifications:
    ${render_notification(notification)}
  % endfor
</div>

36 37 38 39 40
<%def name="render_user_link(notification)">
  <% info = notification['info'] %>
  % if notification.get('actor_id', None):
    <a href="${url_for_user(notification['actor_id'])}">${info['actor_username']}</a>
  % else:
41
    ${_("Anonymous")}
42 43 44 45 46 47 48 49 50 51
  % endif
</%def>

<%def name="render_thread_link(notification)">
  <% info = notification['info'] %>
  <a href="${url_for_thread(info['commentable_id'], info['thread_id'])}">${info['thread_title']}</a>
</%def>

<%def name="render_comment_link(notification)">
  <% info = notification['info'] %>
52
  <a href="${url_for_comment(info['commentable_id'], info['thread_id'], info['comment_id'])}">${_("comment")}</a>
53 54 55 56 57 58 59
</%def>

<%def name="render_discussion_link(notification)">
  <% info = notification['info'] %>
  <a href="${url_for_discussion(info['commentable_id'])}">${discussion_title(info['commentable_id'])}</a>
</%def>

60 61 62
<%def name="render_notification(notification)">
  <div class="notification">
    % if notification['notification_type'] == 'post_reply':
63 64 65 66 67 68
    ${_("{user} posted a {comment} to the thread {thread} in discussion {discussion}").format(
      user=render_user_link(notification),
      comment=render_comment_link(notification),
      thread=render_thread_link(notification),
      discussion=render_discussion_link(notification),
    )}
69
    % elif notification['notification_type'] == 'post_topic':
70 71 72 73 74
    ${_("{user} posted a new thread {thread} in discussion {discussion}").format(
      user=render_user_link(notification),
      thread=render_thread_link(notification),
      discussion=render_discussion_link(notification),
    )}
75 76
    % elif notification['notification_type'] == 'at_user':
      % if notification['info']['content_type'] == 'thread':
77 78 79 80 81
        ${_("{user} mentioned you in the thread {thread} in disucssion {discussion}").format(
          user=render_user(info),
          thread=render_thread_link(notification),
          discussion=render_discussion_link(notification),
        )}
82
      % else:
83 84 85 86 87 88
        ${_("{user} mentioned you in {comment} to the thread {thread} in discussion {discussion}").format(
          user=render_user(info),
          comment=render_comment_link(notification),
          thread=render_thread_link(notification),
          discussion=render_discussion_link(notification),
        )}
89
      % endif
90 91 92 93
    % endif
  </div>

</%def>