diff --git a/group/views.py b/group/views.py index 53220082f1..0019dc28d6 100644 --- a/group/views.py +++ b/group/views.py @@ -147,6 +147,11 @@ def render_group_info(request, group_id, form): except ValueError: return HttpResponseRedirect(reverse('group_list', args=[])) + # remove user notifications + UserNotification.objects.filter(to_user=request.user.username, + msg_type='group_msg', + detail=str(group_id)).delete() + # Check whether user belong to the group or admin joined = False groups = ccnet_threaded_rpc.get_groups(request.user.username) @@ -185,11 +190,6 @@ def render_group_info(request, group_id, form): else: repos = get_group_repos(group_id_int, request.user.username) - # remove user notifications - UserNotification.objects.filter(to_user=request.user.username, - msg_type='group_msg', - detail=str(group_id)).delete() - """group messages""" # Make sure page request is an int. If not, deliver first page. try: diff --git a/organizations/handlers.py b/organizations/handlers.py index 5a5024cdcc..7fb13d69e3 100644 --- a/organizations/handlers.py +++ b/organizations/handlers.py @@ -1,4 +1,6 @@ # encoding: utf-8 +import simplejson as json + from signals import org_user_added from seahub.notifications.models import UserNotification @@ -13,6 +15,11 @@ def org_user_added_cb(sender, **kwargs): if not org: return - msg = u'%s 将你加入到团体 %s' % (from_email, org.org_name) - n = UserNotification(to_user=to_email, msg_type='org_msg', detail=msg) + msg_dict = {'from_email': from_email, + 'org_name': org.org_name, + 'org_prefix': org.url_prefix, + 'creator': org.creator} + + n = UserNotification(to_user=to_email, msg_type='org_join_msg', + detail=json.dumps(msg_dict)) n.save() diff --git a/organizations/templates/organizations/new_msg.html b/organizations/templates/organizations/new_msg.html index 36fd8ac744..e525020e37 100644 --- a/organizations/templates/organizations/new_msg.html +++ b/organizations/templates/organizations/new_msg.html @@ -2,23 +2,21 @@ {% load seahub_tags avatar_tags %} {% block main_panel %} -
+
{% if orgmsg_list %} -
- {% endblock %} {% block extra_script %} diff --git a/organizations/views.py b/organizations/views.py index 97b1005c16..10f8e09f39 100644 --- a/organizations/views.py +++ b/organizations/views.py @@ -330,12 +330,24 @@ def org_msg(request): orgmsg_list = [] notes = UserNotification.objects.filter(to_user=request.user.username) for n in notes: - if n.msg_type == 'org_msg': - orgmsg_list.append(n.detail) + if n.msg_type == 'org_join_msg': + try: + d = json.loads(n.detail) + from_email = d['from_email'] + org_name = d['org_name'] + org_prefix = d['org_prefix'] + org_url = reverse('org_info', args=[org_prefix]) + + msg = u'%s 将你加入到团体 %s' % ( + from_email, org_url, org_name) + orgmsg_list.append(msg) + except json.decoder.JSONDecodeError: + # This message is not json format, just list to user. + orgmsg_list.append(n.detail) # remove new org msg notification UserNotification.objects.filter(to_user=request.user.username, - msg_type='org_msg').delete() + msg_type='org_join_msg').delete() return render_to_response('organizations/new_msg.html', { 'orgmsg_list': orgmsg_list, diff --git a/templates/error.html b/templates/error.html index 8dcc6030fc..959aa4ad8c 100644 --- a/templates/error.html +++ b/templates/error.html @@ -3,6 +3,7 @@ {% block title %}错误{% endblock %} {% block main_panel %} - -

{{ error_msg }}

+
+

{{ error_msg }}

+
{% endblock %} diff --git a/templates/permission_error.html b/templates/permission_error.html index d4b722ba37..3c9ae59d19 100644 --- a/templates/permission_error.html +++ b/templates/permission_error.html @@ -3,7 +3,7 @@ {% block title %}权限错误{% endblock %} {% block main_panel %} - -

权限不足

-

{{ error_msg }}

+
+

{{ error_msg }}

+
{% endblock %} diff --git a/views.py b/views.py index c22ee90ae4..d5e47fad6e 100644 --- a/views.py +++ b/views.py @@ -653,7 +653,7 @@ def myhome(request): grpmsg_list.append(grp) elif n.msg_type == 'grpmsg_reply': grpmsg_reply_list.append(n.detail) - elif n.msg_type == 'org_msg': + elif n.msg_type == 'org_join_msg': orgmsg_list.append(n.detail) # my groups