mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-08 10:22:46 +00:00
Added group rename feature
This commit is contained in:
@@ -6,7 +6,7 @@ from django.conf import settings
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from seaserv import is_valid_filename
|
||||
|
||||
from seahub.utils import validate_group_name
|
||||
from seahub.group.utils import validate_group_name
|
||||
|
||||
class MessageForm(forms.Form):
|
||||
message = forms.CharField(max_length=2048)
|
||||
|
@@ -23,6 +23,7 @@
|
||||
<div class="info-item">
|
||||
<h3 class="info-item-top">{% trans "Operations" %}</h3>
|
||||
<ul class="info-item-bottom op-list">
|
||||
<li><a id="group-rename" href="#" data-url="{% url 'group_rename' group.id %}">{% trans "Rename" %}</a></li>
|
||||
<li><a id="group-dismiss" href="#" data-url="{% url 'group_dismiss' group.id %}">{% trans "Dismiss" %}</a></li>
|
||||
{% if group.is_pub %}
|
||||
<li><a href="{% url 'group_revoke_pub' group.id %}">{% trans "Revoke Public" %}</a></li>
|
||||
@@ -91,6 +92,14 @@
|
||||
<input type="submit" value="{% trans "Submit"%}" />
|
||||
</form>
|
||||
|
||||
<form id="group-rename-form" method="post" action="{% url 'group_rename' group.id %}" class="hide">{% csrf_token %}
|
||||
<h3>{% trans "Rename Group To"%}</h3>
|
||||
<input type="text" name="new_name" value="" class="input" />
|
||||
<br />
|
||||
<p class="error hide"></p>
|
||||
<input type="submit" value="{% trans "Submit"%}" />
|
||||
</form>
|
||||
|
||||
{% include 'group/grpmember_add_form.html' %} {# for member/admin add #}
|
||||
{% include 'group/modules_toggle_form.html' %}
|
||||
|
||||
@@ -127,6 +136,17 @@ $('#group-transfer-form').submit(function() {
|
||||
}
|
||||
});
|
||||
|
||||
$('#group-rename').click(function() {
|
||||
$('#group-rename-form').modal({appendTo: "#main", focus:false});
|
||||
return false;
|
||||
});
|
||||
$('#group-rename-form').submit(function() {
|
||||
if (!$.trim($('[name="new_name"]', $(this)).val())) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
{% include "group/modules_toggle_js.html" %}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
@@ -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_add_discussion, group_rename
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^(?P<group_id>\d+)/$', group_info, name='group_info'),
|
||||
@@ -24,6 +24,7 @@ urlpatterns = patterns('',
|
||||
url(r'^(?P<group_id>\d+)/manage/$', group_manage, name='group_manage'),
|
||||
url(r'^(?P<group_id>\d+)/remove/$', group_remove, name='group_remove'),
|
||||
url(r'^(?P<group_id>\d+)/dismiss/$', group_dismiss, name='group_dismiss'),
|
||||
url(r'^(?P<group_id>\d+)/rename/$', group_rename, name='group_rename'),
|
||||
url(r'^(?P<group_id>\d+)/transfer/$', group_transfer, name='group_transfer'),
|
||||
url(r'^(?P<group_id>\d+)/make_pub/$', group_make_public, name='group_make_pub'),
|
||||
url(r'^(?P<group_id>\d+)/revoke_pub/$', group_revoke_public, name='group_revoke_pub'),
|
||||
|
13
seahub/group/utils.py
Normal file
13
seahub/group/utils.py
Normal file
@@ -0,0 +1,13 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
|
||||
def validate_group_name(group_name):
|
||||
"""
|
||||
Check whether group name is valid.
|
||||
A valid group name only contains alphanumeric character, and the length
|
||||
should less than 255.
|
||||
"""
|
||||
if len(group_name) > 255:
|
||||
return False
|
||||
return re.match('^\w+$', group_name, re.U)
|
||||
|
@@ -42,6 +42,7 @@ from seahub.base.decorators import sys_staff_required
|
||||
from seahub.base.models import FileDiscuss, FileContributors
|
||||
from seahub.contacts.models import Contact
|
||||
from seahub.contacts.signals import mail_sended
|
||||
from seahub.group.utils import validate_group_name
|
||||
from seahub.notifications.models import UserNotification
|
||||
from seahub.wiki import get_group_wiki_repo, get_group_wiki_page, convert_wiki_link,\
|
||||
get_wiki_pages
|
||||
@@ -234,6 +235,26 @@ def group_dismiss(request, group_id):
|
||||
|
||||
return HttpResponseRedirect(reverse('group_list'))
|
||||
|
||||
@login_required
|
||||
@group_staff_required
|
||||
def group_rename(request, group_id):
|
||||
"""Rename a group.
|
||||
"""
|
||||
if request.method != 'POST':
|
||||
raise Http404
|
||||
|
||||
new_name = request.POST.get('new_name', '')
|
||||
if validate_group_name(new_name):
|
||||
ccnet_threaded_rpc.set_group_name(int(group_id), new_name)
|
||||
messages.success(request, _('Successfully renamed group to "%s".') % new_name)
|
||||
else:
|
||||
messages.error(request, _('Failed to rename group, group name can only contain letters, numbers or underscore'))
|
||||
|
||||
next = request.META.get('HTTP_REFERER', None)
|
||||
if not next:
|
||||
next = SITE_ROOT
|
||||
return HttpResponseRedirect(next)
|
||||
|
||||
@login_required
|
||||
@group_staff_required
|
||||
def group_transfer(request, group_id):
|
||||
|
@@ -171,14 +171,6 @@ def normalize_cache_key(value, prefix=None):
|
||||
key = value if prefix is None else prefix + value
|
||||
return urlquote(key)
|
||||
|
||||
def validate_group_name(group_name):
|
||||
"""
|
||||
Check whether group name is valid.
|
||||
A valid group name only contains alphanumeric character.
|
||||
|
||||
"""
|
||||
return re.match('^\w+$', group_name, re.U)
|
||||
|
||||
def get_repo_last_modify(repo):
|
||||
""" Get last modification time for a repo.
|
||||
|
||||
|
Reference in New Issue
Block a user