1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-04 08:28:11 +00:00

Add org user added notification

This commit is contained in:
xiez
2012-07-27 17:54:07 +08:00
parent b517fefde2
commit b1ea10088a
11 changed files with 60 additions and 12 deletions

View File

@@ -385,6 +385,8 @@ table img {
.new-reply { .new-reply {
padding: 5px; padding: 5px;
background-color: #FDF; background-color: #FDF;
margin-bottom: 5px;
display: block;
} }
.new-reply a { .new-reply a {
color: #000; color: #000;

View File

@@ -0,0 +1,4 @@
from signals import *
from handlers import *
org_user_added.connect(org_user_added_cb, sender=None)

View File

@@ -32,7 +32,7 @@
{% for user in users %} {% for user in users %}
<tr> <tr>
<td><a href="{{ SITE_ROOT }}useradmin/info/{{ user.props.email }}/">{{ user.props.email }}</a></td> <td><a href="{% url user_profile user.email %}">{{ user.props.email }}</a></td>
<td> <td>
{% if not user.is_self %} {% if not user.is_self %}
<button class="remove-user-btn" data="{% url org_user_remove org.url_prefix user.email %}">删除</button> <button class="remove-user-btn" data="{% url org_user_remove org.url_prefix user.email %}">删除</button>
@@ -69,8 +69,9 @@
<form id="user-add-form" action="" method="post" name="user-add-form" class="hide"> <form id="user-add-form" action="" method="post" name="user-add-form" class="hide">
<label>邮箱:</label><br /> <label>邮箱:</label><br />
<textarea id="emails" name="emails"></textarea> <textarea id="added-member-name" name="added-member-name"></textarea>
<p class="tip">可以是非网站注册用户,我们会以邮件通知对方。</p> <p class="tip">可以是非网站注册用户,我们会以邮件通知对方。</p>
<p class="tip">(如未收到,请检查垃圾邮件)</p>
<p class="error hide">输入不能为空。</p> <p class="error hide">输入不能为空。</p>
<input type="submit" value="提交" /> <input type="submit" value="提交" />
</form> </form>

View File

@@ -7,6 +7,8 @@ from seahub.views import repo, repo_history, org_seafadmin, \
urlpatterns = patterns('', urlpatterns = patterns('',
url(r'^create/$', create_org, name='create_org'), url(r'^create/$', create_org, name='create_org'),
(r'^change_account/$', change_account), (r'^change_account/$', change_account),
url(r'^messages/$', org_msg, name='org_msg'),
url(r'^(?P<url_prefix>[^/]+)/$', org_info, name='org_info'), url(r'^(?P<url_prefix>[^/]+)/$', org_info, name='org_info'),
url(r'^(?P<url_prefix>[^/]+)/groups/$', org_groups, name='org_groups'), url(r'^(?P<url_prefix>[^/]+)/groups/$', org_groups, name='org_groups'),

View File

@@ -15,8 +15,10 @@ from seaserv import ccnet_threaded_rpc, get_orgs_by_user, get_org_repos, \
get_ccnetuser, remove_org_user, get_org_groups get_ccnetuser, remove_org_user, get_org_groups
from forms import OrgCreateForm from forms import OrgCreateForm
from signals import org_user_added
from settings import ORG_CACHE_PREFIX from settings import ORG_CACHE_PREFIX
from utils import set_org_ctx from utils import set_org_ctx
from notifications.models import UserNotification
from registration.models import RegistrationProfile from registration.models import RegistrationProfile
import seahub.settings as seahub_settings import seahub.settings as seahub_settings
from seahub.utils import go_error, go_permission_error, validate_group_name, \ from seahub.utils import go_error, go_permission_error, validate_group_name, \
@@ -142,7 +144,7 @@ def org_useradmin(request, url_prefix):
raise Http404 raise Http404
if request.method == 'POST': if request.method == 'POST':
emails = request.POST.get('emails') emails = request.POST.get('added-member-name')
email_list = emails2list(emails) email_list = emails2list(emails)
for email in email_list: for email in email_list:
@@ -154,6 +156,11 @@ def org_useradmin(request, url_prefix):
email = email.strip(' ') email = email.strip(' ')
org_id = request.user.org['org_id'] org_id = request.user.org['org_id']
add_org_user(org_id, email, 0) add_org_user(org_id, email, 0)
# send signal
org_user_added.send(sender=None, org_id=org_id,
from_email=request.user.username,
to_email=email)
else: else:
# User is not registered, just create account and # User is not registered, just create account and
# add that account to org # add that account to org
@@ -211,3 +218,22 @@ def org_user_remove(request, user):
remove_org_user(org_id, user) remove_org_user(org_id, user)
return HttpResponseRedirect(reverse('org_useradmin', args=[url_prefix])) return HttpResponseRedirect(reverse('org_useradmin', args=[url_prefix]))
def org_msg(request):
"""
Show organization user added messages
"""
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)
# remove new org msg notification
UserNotification.objects.filter(to_user=request.user.username,
msg_type='org_msg').delete()
print orgmsg_list
return render_to_response('organizations/new_msg.html', {
'orgmsg_list': orgmsg_list,
}, context_instance=RequestContext(request))

View File

@@ -27,7 +27,9 @@
<div class="top-bar-in"> <div class="top-bar-in">
<div class="fleft"> <div class="fleft">
{% if request.user.is_authenticated %} {% if request.user.is_authenticated %}
<a href="#" id="team-account" data="no-popup">团体帐号<span class="bg"></span></a> <a href="#" id="team-account" data="no-popup">
{% if org %} {{ org.org_name }} {% else %} 个人帐号 {% endif %}
<span class="bg"></span></a>
<ul class="hide" id="team-list"> <ul class="hide" id="team-list">
<li><a href="{% url myhome %}">个人帐号</a></li> <li><a href="{% url myhome %}">个人帐号</a></li>
{% for org in request.user.orgs %} {% for org in request.user.orgs %}

View File

@@ -17,15 +17,13 @@
{% if grpmsg_reply_list %} {% if grpmsg_reply_list %}
<span class="new-reply"><a href="{{ SITE_ROOT }}group/reply/new/">{{ grpmsg_reply_list|length }}条留言有新回复</a></span> <span class="new-reply"><a href="{{ SITE_ROOT }}group/reply/new/">{{ grpmsg_reply_list|length }}条留言有新回复</a></span>
{% endif %} {% endif %}
{% if orgmsg_list %}
<span class="new-reply"><a href="{% url org_msg %}">你有{{ orgmsg_list|length }}条团体消息</a></span>
{% endif %}
<h3>已用空间</h3> <h3>已用空间</h3>
<p>{{ quota_usage|filesizeformat }} / 2 GB</p> <p>{{ quota_usage|filesizeformat }} / 2 GB</p>
{% if request.user.org %}
<h3>所属企业</h3>
<p>{{ request.user.org.org_name }}</p>
{% endif %}
<h3>我管理的小组</h3> <h3>我管理的小组</h3>
{% if groups_manage %} {% if groups_manage %}
<ul> <ul>
@@ -159,6 +157,7 @@
<textarea id="email_or_group" name="email_or_group"></textarea> <textarea id="email_or_group" name="email_or_group"></textarea>
<input id="repo_id" type="hidden" name="repo_id" value="" /> <input id="repo_id" type="hidden" name="repo_id" value="" />
<p class="tip">可以是非网站注册用户,我们会以邮件通知对方。</p> <p class="tip">可以是非网站注册用户,我们会以邮件通知对方。</p>
<p class="tip">(如未收到,请检查垃圾邮件)</p>
<p class="error hide">输入不能为空。</p> <p class="error hide">输入不能为空。</p>
<input type="submit" value="提交" id="share-submit-btn" /> <input type="submit" value="提交" id="share-submit-btn" />
</form> </form>

View File

@@ -4,10 +4,10 @@
<ul class="nav"> <ul class="nav">
{% if request.user.org.is_staff %} {% if request.user.org.is_staff %}
<li> <li>
<a href="{% url org_seafadmin request.user.org.url_prefix %}" {% block nav_seafadmin_class %}{% endblock %}>目录管理</a> <a href="{% url org_useradmin request.user.org.url_prefix %}" {% block nav_useradmin_class %}{% endblock %}>用户管理</a>
</li> </li>
<li> <li>
<a href="{% url org_useradmin request.user.org.url_prefix %}" {% block nav_useradmin_class %}{% endblock %}>用户管理</a> <a href="{% url org_seafadmin request.user.org.url_prefix %}" {% block nav_seafadmin_class %}{% endblock %}>目录管理</a>
</li> </li>
<li> <li>
<a href="{% url org_groupadmin request.user.org.url_prefix %}" {% block nav_groupadmin_class %}{% endblock %}>小组管理</a> <a href="{% url org_groupadmin request.user.org.url_prefix %}" {% block nav_groupadmin_class %}{% endblock %}>小组管理</a>

View File

@@ -9,7 +9,7 @@ from service import get_binding_peerids
from service import get_ccnetuser, get_emailusers from service import get_ccnetuser, get_emailusers
from service import get_group_repoids, check_group_staff from service import get_group_repoids, check_group_staff
from service import create_org, get_orgs_by_user, get_org_by_url_prefix, \ from service import create_org, get_orgs_by_user, get_org_by_url_prefix, \
get_user_current_org, add_org_user, remove_org_user get_user_current_org, add_org_user, remove_org_user, get_org_by_id
from service import CCNET_CONF_PATH from service import CCNET_CONF_PATH

View File

@@ -154,6 +154,14 @@ def get_org_by_url_prefix(url_prefix):
return org return org
def get_org_by_id(org_id):
try:
org = ccnet_threaded_rpc.get_org_by_id(org_id)
except SearpcError:
org = None
return org
def get_user_current_org(user, url_prefix): def get_user_current_org(user, url_prefix):
orgs = get_orgs_by_user(user) orgs = get_orgs_by_user(user)
for org in orgs: for org in orgs:

View File

@@ -697,12 +697,15 @@ def myhome(request):
# user notifications # user notifications
grpmsg_list = [] grpmsg_list = []
grpmsg_reply_list = [] grpmsg_reply_list = []
orgmsg_list = []
notes = UserNotification.objects.filter(to_user=request.user.username) notes = UserNotification.objects.filter(to_user=request.user.username)
for n in notes: for n in notes:
if n.msg_type == 'group_msg': if n.msg_type == 'group_msg':
grpmsg_list.append(n.detail) grpmsg_list.append(n.detail)
elif n.msg_type == 'grpmsg_reply': elif n.msg_type == 'grpmsg_reply':
grpmsg_reply_list.append(n.detail) grpmsg_reply_list.append(n.detail)
elif n.msg_type == 'org_msg':
orgmsg_list.append(n.detail)
# my groups # my groups
groups = get_personal_groups(email) groups = get_personal_groups(email)
@@ -738,6 +741,7 @@ def myhome(request):
"contacts": contacts, "contacts": contacts,
"groups": groups, "groups": groups,
"grpmsg_reply_list": grpmsg_reply_list, "grpmsg_reply_list": grpmsg_reply_list,
"orgmsg_list": orgmsg_list,
"groups_manage": groups_manage, "groups_manage": groups_manage,
"groups_join": groups_join, "groups_join": groups_join,
}, context_instance=RequestContext(request)) }, context_instance=RequestContext(request))