diff --git a/api/views.py b/api/views.py index 6818c75d38..f7dd402597 100644 --- a/api/views.py +++ b/api/views.py @@ -32,7 +32,7 @@ from pysearpc import SearpcError from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_repos, \ get_repo, get_commits, get_branches, \ seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, \ - check_group_staff, check_permission, get_personal_groups, get_group_repos + check_group_staff, check_permission, get_personal_groups_by_user, get_group_repos from seahub.utils import list_to_string, \ get_httpserver_root, gen_token, \ @@ -290,7 +290,7 @@ class ReposView(ResponseMixin, View): } repos_json.append(repo) - groups = get_personal_groups(email) + groups = get_personal_groups_by_user(email) for group in groups: g_repos = get_group_repos(group.id, email) calculate_repo_info (g_repos, email) diff --git a/group/locale/zh_CN/LC_MESSAGES/django.mo b/group/locale/zh_CN/LC_MESSAGES/django.mo index ddace9036a..6dd8c37108 100644 Binary files a/group/locale/zh_CN/LC_MESSAGES/django.mo and b/group/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/group/locale/zh_CN/LC_MESSAGES/django.po b/group/locale/zh_CN/LC_MESSAGES/django.po index 17a07723a4..03a4829fdb 100644 --- a/group/locale/zh_CN/LC_MESSAGES/django.po +++ b/group/locale/zh_CN/LC_MESSAGES/django.po @@ -20,11 +20,11 @@ msgstr "" #: error_msg.py:7 msgid "The group has already created" -msgstr "该小组已经存在。" +msgstr "名称重复,请重新输入。" #: error_msg.py:8 msgid "Failed to create group" -msgstr "创建小组失败。" +msgstr "创建失败。" #: error_msg.py:11 msgid "The group has already created in this org." diff --git a/group/views.py b/group/views.py index c4f85c0c21..94048df671 100644 --- a/group/views.py +++ b/group/views.py @@ -18,8 +18,9 @@ from django.views.generic.edit import BaseFormView, FormMixin from auth.decorators import login_required from seaserv import ccnet_rpc, ccnet_threaded_rpc, seafserv_threaded_rpc, \ get_repo, get_group_repos, check_group_staff, get_commits, is_group_user, \ - get_personal_groups, get_group, get_group_members, create_org_repo, \ - get_org_group_repos, get_org_groups_by_user + get_personal_groups_by_user, get_group, get_group_members, \ + get_personal_groups, create_org_repo, get_org_group_repos, \ + get_org_groups_by_user from pysearpc import SearpcError from models import GroupMessage, MessageReply, MessageAttachment, BusinessGroup @@ -98,68 +99,68 @@ class GroupListView(LoginRequiredMixin, GroupMixin, TemplateResponseMixin, return FormMixin.form_invalid(self, form) def get_context_data(self, **kwargs): - kwargs['groups'] = get_personal_groups(self.get_username()) + kwargs['groups'] = get_personal_groups(-1, -1) return kwargs -class DeptGroupListView(GroupListView): - template_name = 'group/dept_groups.html' +# class DeptGroupListView(GroupListView): +# template_name = 'group/dept_groups.html' - def form_valid(self, form): - group_name = form.cleaned_data['group_name'] - username = self.get_username() - try: - group_id = ccnet_threaded_rpc.create_group( - group_name.encode('utf-8'), username) - bg = BusinessGroup() - bg.group_id = group_id - bg.group_type = 'dept' - bg.save() - except SearpcError, e: - result = {} - result['error'] = _(e.msg) - return HttpResponse(json.dumps(result), - content_type='application/json; charset=utf-8') +# def form_valid(self, form): +# group_name = form.cleaned_data['group_name'] +# username = self.get_username() +# try: +# group_id = ccnet_threaded_rpc.create_group( +# group_name.encode('utf-8'), username) +# bg = BusinessGroup() +# bg.group_id = group_id +# bg.group_type = 'dept' +# bg.save() +# except SearpcError, e: +# result = {} +# result['error'] = _(e.msg) +# return HttpResponse(json.dumps(result), +# content_type='application/json; charset=utf-8') - if self.request.is_ajax(): - return self.ajax_form_valid() - else: - return FormMixin.form_valid(self, form) +# if self.request.is_ajax(): +# return self.ajax_form_valid() +# else: +# return FormMixin.form_valid(self, form) - def get_context_data(self, **kwargs): - groups = [ g for g in get_personal_groups(self.get_username()) \ - if self.is_dept_group(g.id)] - kwargs['groups'] = groups - return kwargs +# def get_context_data(self, **kwargs): +# groups = [ g for g in get_personal_groups_by_user(self.get_username()) \ +# if self.is_dept_group(g.id)] +# kwargs['groups'] = groups +# return kwargs -class ProjGroupListView(GroupListView): - template_name = 'group/proj_groups.html' +# class ProjGroupListView(GroupListView): +# template_name = 'group/proj_groups.html' - def form_valid(self, form): - group_name = form.cleaned_data['group_name'] - username = self.get_username() - try: - group_id = ccnet_threaded_rpc.create_group( - group_name.encode('utf-8'), username) - bg = BusinessGroup() - bg.group_id = group_id - bg.group_type = 'proj' - bg.save() - except SearpcError, e: - result = {} - result['error'] = _(e.msg) - return HttpResponse(json.dumps(result), - content_type='application/json; charset=utf-8') +# def form_valid(self, form): +# group_name = form.cleaned_data['group_name'] +# username = self.get_username() +# try: +# group_id = ccnet_threaded_rpc.create_group( +# group_name.encode('utf-8'), username) +# bg = BusinessGroup() +# bg.group_id = group_id +# bg.group_type = 'proj' +# bg.save() +# except SearpcError, e: +# result = {} +# result['error'] = _(e.msg) +# return HttpResponse(json.dumps(result), +# content_type='application/json; charset=utf-8') - if self.request.is_ajax(): - return self.ajax_form_valid() - else: - return FormMixin.form_valid(self, form) +# if self.request.is_ajax(): +# return self.ajax_form_valid() +# else: +# return FormMixin.form_valid(self, form) - def get_context_data(self, **kwargs): - groups = [ g for g in get_personal_groups(self.get_username()) \ - if self.is_proj_group(g.id)] - kwargs['groups'] = groups - return kwargs +# def get_context_data(self, **kwargs): +# groups = [ g for g in get_personal_groups_by_user(self.get_username()) \ +# if self.is_proj_group(g.id)] +# kwargs['groups'] = groups +# return kwargs @login_required def group_remove(request, group_id): @@ -611,12 +612,6 @@ def group_share_repo(request, repo_id, group_id, from_email, permission): if not group: return render_error(request, u'共享失败:小组不存在') - # Check whether user belongs to the group. - joined = is_group_user(int(group.id), request.user.username) - - if not joined: - return render_error(request, u'共享失败:未加入该小组') - if seafserv_threaded_rpc.group_share_repo(repo_id, group_id, from_email, permission) != 0: return render_error(request, u'共享失败:内部错误') @@ -629,12 +624,6 @@ def group_unshare_repo(request, repo_id, group_id, from_email): group = get_group(group_id) if not group: return render_error(request, u'取消共享失败:小组不存在') - - # Check whether user belongs to the group. - joined = is_group_user(group_id, request.user.username) - - if not joined: - return render_error(request, u'取消共享失败:未加入该小组') # Check whether user is group staff or the one share the repo if not check_group_staff(group_id, from_email) and \ @@ -683,7 +672,7 @@ def group_recommend(request): groups = get_org_groups_by_user(org_id, username) else: - groups = get_personal_groups(request.user.username) + groups = get_personal_groups_by_user(request.user.username) find = False for group in groups: diff --git a/share/views.py b/share/views.py index 5498a473ee..b8be29a273 100644 --- a/share/views.py +++ b/share/views.py @@ -53,26 +53,18 @@ def share_repo(request): to_email_list = string2list(email_or_group) for to_email in to_email_list: - # if to_email is user name, the format is: 'example@mail.com'; - # if to_email is group, the format is 'group_name ' - if (to_email.split(' ')[0].find('@') == -1): + if to_email.find('@') == -1: ''' Share repo to group ''' # TODO: if we know group id, then we can simplly call group_share_repo - if len(to_email.split(' ')) < 2: - msg = u'共享给 %s 失败。' % to_email - messages.add_message(request, messages.ERROR, msg) - continue - - group_name = to_email.split(' ')[0] - group_creator = to_email.split(' ')[1] - # get all the groups the user joined - groups = get_personal_groups(request.user.username) + group_name = to_email + + # get all personal groups + groups = get_personal_groups(-1, -1) find = False for group in groups: - # for every group that user joined, if group name and - # group creator matchs, then has find the group - if group.props.group_name == group_name and \ - group_creator.find(group.props.creator_name) >= 0: + # for every group that user joined, if group name matchs, + # then has find the group + if group.props.group_name == group_name: from seahub.group.views import group_share_repo group_share_repo(request, repo_id, int(group.props.id), from_email, permission) @@ -83,7 +75,7 @@ def share_repo(request): messages.add_message(request, messages.INFO, msg) break if not find: - msg = u'共享到 %s 失败。' % group_name + msg = u'共享到 %s 失败,小组不存在。' % group_name messages.add_message(request, messages.ERROR, msg) else: ''' Share repo to user ''' diff --git a/templates/myhome.html b/templates/myhome.html index a1bb884b50..9b75b53a25 100644 --- a/templates/myhome.html +++ b/templates/myhome.html @@ -30,12 +30,6 @@ {% if grpmsg_reply_list %}
  • {{ grpmsg_reply_list|length }}条小组留言有新回复
  • {% endif %} -{% if new_innerpub_msg %} -
  • 公共页面有新留言
  • -{% endif %} -{% if innerpubmsg_reply_list %} -
  • {{ innerpubmsg_reply_list|length }}条公共留言有新回复
  • -{% endif %} {% if orgmsg_list %}
  • {{ orgmsg_list|length }}条团体消息
  • {% endif %} diff --git a/templates/snippets/myhome_extra_script.html b/templates/snippets/myhome_extra_script.html index 34be0f1172..92b6b5ce7b 100644 --- a/templates/snippets/myhome_extra_script.html +++ b/templates/snippets/myhome_extra_script.html @@ -6,7 +6,7 @@ $(function() { {% endfor %} {% for group in groups %} - share_list.push('{{ group.props.group_name }} <{{ group.props.creator_name }}>'); + share_list.push('{{ group.props.group_name }}'); {% endfor %} $(".repo-share-btn").click(function() { diff --git a/thirdpart/seaserv/__init__.py b/thirdpart/seaserv/__init__.py index d6570ad6a6..48ca2f895b 100644 --- a/thirdpart/seaserv/__init__.py +++ b/thirdpart/seaserv/__init__.py @@ -4,7 +4,8 @@ from service import ccnet_rpc, monitor_rpc, seafserv_rpc, \ seafserv_threaded_rpc, ccnet_threaded_rpc from service import send_command from service import get_emailusers -from service import get_org_groups, get_personal_groups, get_group_repoids, \ +from service import get_org_groups, get_personal_groups_by_user, \ + get_group_repoids, get_personal_groups, \ check_group_staff, remove_group_user, get_group, get_org_id_by_group, \ get_group_members, get_shared_groups_by_repo, is_group_user, \ get_org_group_repos, get_group_repos, get_org_groups_by_user, is_org_group,\ diff --git a/thirdpart/seaserv/service.py b/thirdpart/seaserv/service.py index 5d3318551e..700ea2adb6 100644 --- a/thirdpart/seaserv/service.py +++ b/thirdpart/seaserv/service.py @@ -106,6 +106,26 @@ def get_group(group_id): group = None return group +def get_personal_groups(start, limit): + try: + groups_all = ccnet_threaded_rpc.get_all_groups(start, limit) + except SearpcError: + return [] + return [ x for x in groups_all if not is_org_group(x.id) ] + +def get_personal_groups_by_user(email): + try: + groups_all = ccnet_threaded_rpc.get_groups(email) + except SearpcError: + return [] + + personal_groups = [] + for group in groups_all: + if not is_org_group(group.id): + personal_groups.append(group) + + return personal_groups + # group user def is_group_user(group_id, user): try: @@ -174,19 +194,6 @@ def get_org_groups_by_user(org_id, user): return org_groups -def get_personal_groups(email): - try: - groups_all = ccnet_threaded_rpc.get_groups(email) - except SearpcError: - return [] - - personal_groups = [] - for group in groups_all: - if not is_org_group(group.id): - personal_groups.append(group) - - return personal_groups - # org def create_org(org_name, url_prefix, username): ccnet_threaded_rpc.create_org(org_name, url_prefix, username) diff --git a/urls.py b/urls.py index 35f6b7942e..a393835ecb 100644 --- a/urls.py +++ b/urls.py @@ -5,7 +5,7 @@ from django.views.generic.simple import direct_to_template from seahub.views import * from notifications.views import notification_list from share.views import share_admin -from group.views import GroupListView, DeptGroupListView, ProjGroupListView +from group.views import GroupListView # Uncomment the next two lines to enable the admin: #from django.contrib import admin @@ -90,8 +90,8 @@ urlpatterns = patterns('', (r'^contacts/', include('contacts.urls')), (r'^group/', include('seahub.group.urls')), url(r'^groups/', GroupListView.as_view(), name='group_list'), - url(r'^deptgroups/', DeptGroupListView.as_view(), name='dept_group_list'), - url(r'^projgroups/', ProjGroupListView.as_view(), name='proj_group_list'), + # url(r'^deptgroups/', DeptGroupListView.as_view(), name='dept_group_list'), + # url(r'^projgroups/', ProjGroupListView.as_view(), name='proj_group_list'), (r'^profile/', include('seahub.profile.urls')), ### SeaHub admin ### diff --git a/views.py b/views.py index be8adc6a7f..a685f665d5 100644 --- a/views.py +++ b/views.py @@ -33,8 +33,9 @@ from auth.tokens import default_token_generator from share.models import FileShare from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_repos, get_emailusers, \ get_repo, get_commits, get_branches, is_valid_filename, remove_group_user,\ - seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, is_inner_pub_repo, \ - check_group_staff, get_personal_groups, is_repo_owner, del_org_group_repo,\ + seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, is_repo_owner, \ + check_group_staff, get_personal_groups_by_user, is_inner_pub_repo, \ + del_org_group_repo, get_personal_groups, \ get_group, get_shared_groups_by_repo, is_group_user, check_permission, \ list_personal_shared_repos, is_org_group, get_org_id_by_group, is_org_repo,\ list_inner_pub_repos, get_org_groups_by_repo, is_org_repo_owner, \ @@ -758,8 +759,6 @@ def myhome(request): grpmsg_reply_list = [] orgmsg_list = [] notes = UserNotification.objects.filter(to_user=request.user.username) - new_innerpub_msg = False - innerpubmsg_reply_list = [] for n in notes: if n.msg_type == 'group_msg': grp = get_group(n.detail) @@ -770,13 +769,9 @@ def myhome(request): grpmsg_reply_list.append(n.detail) elif n.msg_type == 'org_join_msg': orgmsg_list.append(n.detail) - elif n.msg_type == 'innerpub_msg': - new_innerpub_msg = True - elif n.msg_type == 'innerpubmsg_reply': - innerpubmsg_reply_list.append(n.detail) - # my groups - groups = get_personal_groups(email) + # Get all personal groups used in autocomplete. + groups = get_personal_groups(-1, -1) # get nickname if not Profile.objects.filter(user=request.user.username): @@ -785,10 +780,6 @@ def myhome(request): profile = Profile.objects.filter(user=request.user.username)[0] nickname = profile.nickname - # ctx_dict = {'base_template': 'myhome_base.html', - # 'org_dict': None} - # set_cur_ctx(request, ctx_dict) - return render_to_response('myhome.html', { "myname": email, "nickname": nickname, @@ -801,8 +792,6 @@ def myhome(request): "grpmsg_list": grpmsg_list, "grpmsg_reply_list": grpmsg_reply_list, "orgmsg_list": orgmsg_list, - "new_innerpub_msg": new_innerpub_msg, - "innerpubmsg_reply_list": innerpubmsg_reply_list, }, context_instance=RequestContext(request)) @login_required