From 8c806a2a1ee956bad044deadbd0ae97a70cb8f7d Mon Sep 17 00:00:00 2001 From: llj Date: Fri, 13 Dec 2013 20:02:29 +0800 Subject: [PATCH] [group list] added 'lib/discuss/wiki' links, improved code --- media/css/seahub.css | 8 ++ seahub/group/templates/group/groups.html | 2 +- .../templates/group/groups_right_panel.html | 9 +- seahub/group/templates/group/proj_groups.html | 29 ----- seahub/group/urls.py | 3 +- seahub/group/views.py | 101 ++++++++++-------- 6 files changed, 73 insertions(+), 79 deletions(-) delete mode 100644 seahub/group/templates/group/proj_groups.html diff --git a/media/css/seahub.css b/media/css/seahub.css index 37282302e4..c5c4c60861 100644 --- a/media/css/seahub.css +++ b/media/css/seahub.css @@ -1677,6 +1677,14 @@ textarea:-moz-placeholder {/* for FF */ width:5em; color:#666; } +.group .fast .a { + font-size:18px; + color:#FEAC74; + margin-right:5px; +} +.group .fast .a:hover { + text-decoration:none; +} .ru .group .item-name, .de .group .item-name, .it .group .item-name { diff --git a/seahub/group/templates/group/groups.html b/seahub/group/templates/group/groups.html index 66caf946e6..20105c8f65 100644 --- a/seahub/group/templates/group/groups.html +++ b/seahub/group/templates/group/groups.html @@ -15,7 +15,7 @@ {% block extra_script %} -{% endblock %} diff --git a/seahub/group/urls.py b/seahub/group/urls.py index a77c8e9100..d7ecdff26a 100644 --- a/seahub/group/urls.py +++ b/seahub/group/urls.py @@ -7,7 +7,7 @@ from views import group_info, group_members, group_member_operations, group_add_ group_wiki_page_new, group_wiki_page_edit, group_wiki_pages, \ group_wiki_page_delete, group_remove, group_dismiss, group_quit, \ group_make_public, group_revoke_public, group_transfer, group_toggle_modules, \ - group_add_discussion, group_rename + group_add_discussion, group_rename, group_add urlpatterns = patterns('', url(r'^(?P\d+)/$', group_info, name='group_info'), @@ -40,6 +40,7 @@ urlpatterns = patterns('', url(r'^joinrequest/(?P[\d]+)/$', group_joinrequest, name='group_joinrequest'), url(r'^(?P\d+)/modules/toggle/$', group_toggle_modules, name='group_toggle_modules'), url(r'^(?P\d+)/discussion/add/$', group_add_discussion, name='group_add_discussion'), + url(r'^add/$', group_add, name='group_add'), ) import seahub.settings as settings diff --git a/seahub/group/views.py b/seahub/group/views.py index c7a945d235..d056062e74 100644 --- a/seahub/group/views.py +++ b/seahub/group/views.py @@ -125,57 +125,64 @@ def group_check(func): return _decorated +@login_required +def group_add(request): + + if not request.is_ajax() or request.method != 'POST': + raise Http404 + + username = request.user.username + result = {} + content_type = 'application/json; charset=utf-8' + + # check plan + num_of_groups = getattr(request.user, 'num_of_groups', -1) + if num_of_groups > 0: + current_groups = len(get_personal_groups_by_user(username)) + if current_groups > num_of_groups: + result['error'] = _(u'You can only create %d groups.Upgrade account.') % num_of_groups + return HttpResponse(json.dumps(result), status=500, + content_type=content_type) + + form = GroupAddForm(request.POST) + if form.is_valid(): + group_name = form.cleaned_data['group_name'] + + # Check whether group name is duplicated. + if request.cloud_mode: + checked_groups = get_personal_groups_by_user(username) + else: + checked_groups = get_personal_groups(-1, -1) + for g in checked_groups: + if g.group_name == group_name: + result['error'] = _(u'There is already a group with that name.') + return HttpResponse(json.dumps(result), status=400, + content_type=content_type) + + # Group name is valid, create that group. + try: + ccnet_threaded_rpc.create_group(group_name.encode('utf-8'), + username) + return HttpResponse(json.dumps({'success': True}), + content_type=content_type) + except SearpcError, e: + result['error'] = _(e.msg) + return HttpResponse(json.dumps(result), status=500, + content_type=content_type) + else: + return HttpResponseBadRequest(json.dumps(form.errors), + content_type=content_type) + @login_required def group_list(request): username = request.user.username - - if request.method == 'POST': - """ - Add a new group. - """ - result = {} - content_type = 'application/json; charset=utf-8' - - # check plan - num_of_groups = getattr(request.user, 'num_of_groups', -1) - if num_of_groups > 0: - current_groups = len(get_personal_groups_by_user(username)) - if current_groups > num_of_groups: - result['error'] = _(u'You can only create %d groups.Upgrade account.') % num_of_groups - return HttpResponse(json.dumps(result), status=500, - content_type=content_type) - - form = GroupAddForm(request.POST) - if form.is_valid(): - group_name = form.cleaned_data['group_name'] - - # Check whether group name is duplicated. - if request.cloud_mode: - checked_groups = get_personal_groups_by_user(username) - else: - checked_groups = get_personal_groups(-1, -1) - for g in checked_groups: - if g.group_name == group_name: - result['error'] = _(u'There is already a group with that name.') - return HttpResponse(json.dumps(result), status=400, - content_type=content_type) - - # Group name is valid, create that group. - try: - ccnet_threaded_rpc.create_group(group_name.encode('utf-8'), - username) - return HttpResponse(json.dumps({'success': True}), - content_type=content_type) - except SearpcError, e: - result['error'] = _(e.msg) - return HttpResponse(json.dumps(result), status=500, - content_type=content_type) - else: - return HttpResponseBadRequest(json.dumps(form.errors), - content_type=content_type) - - ### GET ### joined_groups = get_personal_groups_by_user(username) + for group in joined_groups: + mods_enabled = get_enabled_mods_by_group(group.id) + if 'group wiki' in mods_enabled: + group.wiki_enabled = True + else: + group.wiki_enabled = False return render_to_response('group/groups.html', { 'joined_groups': joined_groups,