mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-08 18:30:53 +00:00
Clean code, move org_group_admin and org_seafadmin into organizations/
This commit is contained in:
@@ -1,8 +1,7 @@
|
|||||||
from django.conf.urls.defaults import *
|
from django.conf.urls.defaults import *
|
||||||
|
|
||||||
from views import *
|
from views import *
|
||||||
from seahub.views import repo, repo_history, org_seafadmin, \
|
from seahub.views import repo, repo_history
|
||||||
org_group_admin
|
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^create/$', create_org, name='create_org'),
|
url(r'^create/$', create_org, name='create_org'),
|
||||||
|
@@ -271,3 +271,71 @@ def org_repo_create(request, url_prefix):
|
|||||||
else:
|
else:
|
||||||
return HttpResponseBadRequest(json.dumps(form.errors),
|
return HttpResponseBadRequest(json.dumps(form.errors),
|
||||||
content_type=content_type)
|
content_type=content_type)
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
def org_seafadmin(request, url_prefix):
|
||||||
|
if not request.user.org:
|
||||||
|
raise Http404
|
||||||
|
|
||||||
|
# Make sure page request is an int. If not, deliver first page.
|
||||||
|
try:
|
||||||
|
current_page = int(request.GET.get('page', '1'))
|
||||||
|
per_page= int(request.GET.get('per_page', '25'))
|
||||||
|
except ValueError:
|
||||||
|
current_page = 1
|
||||||
|
per_page = 25
|
||||||
|
|
||||||
|
repos_all = get_org_repos(request.user.org['org_id'],
|
||||||
|
per_page * (current_page -1),
|
||||||
|
per_page + 1)
|
||||||
|
|
||||||
|
repos = repos_all[:per_page]
|
||||||
|
|
||||||
|
if len(repos_all) == per_page + 1:
|
||||||
|
page_next = True
|
||||||
|
else:
|
||||||
|
page_next = False
|
||||||
|
|
||||||
|
return render_to_response(
|
||||||
|
'organizations/org_seafadmin.html', {
|
||||||
|
'repos': repos,
|
||||||
|
'current_page': current_page,
|
||||||
|
'prev_page': current_page-1,
|
||||||
|
'next_page': current_page+1,
|
||||||
|
'per_page': per_page,
|
||||||
|
'page_next': page_next,
|
||||||
|
},
|
||||||
|
context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
def org_group_admin(request, url_prefix):
|
||||||
|
if not request.user.org['is_staff']:
|
||||||
|
raise Http404
|
||||||
|
|
||||||
|
# Make sure page request is an int. If not, deliver first page.
|
||||||
|
try:
|
||||||
|
current_page = int(request.GET.get('page', '1'))
|
||||||
|
per_page= int(request.GET.get('per_page', '25'))
|
||||||
|
except ValueError:
|
||||||
|
current_page = 1
|
||||||
|
per_page = 25
|
||||||
|
|
||||||
|
groups_plus_one = get_org_groups (request.user.org['org_id'],
|
||||||
|
per_page * (current_page -1),
|
||||||
|
per_page +1)
|
||||||
|
|
||||||
|
groups = groups_plus_one[:per_page]
|
||||||
|
|
||||||
|
if len(groups_plus_one) == per_page + 1:
|
||||||
|
page_next = True
|
||||||
|
else:
|
||||||
|
page_next = False
|
||||||
|
|
||||||
|
return render_to_response('organizations/org_group_admin.html', {
|
||||||
|
'groups': groups,
|
||||||
|
'current_page': current_page,
|
||||||
|
'prev_page': current_page-1,
|
||||||
|
'next_page': current_page+1,
|
||||||
|
'per_page': per_page,
|
||||||
|
'page_next': page_next,
|
||||||
|
}, context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
@@ -1,60 +0,0 @@
|
|||||||
{% extends "org_admin_base.html" %}
|
|
||||||
{% load seahub_tags %}
|
|
||||||
|
|
||||||
{% block nav_groupadmin_class %}class="cur"{% endblock %}
|
|
||||||
|
|
||||||
{% block right_panel %}
|
|
||||||
<h3>所有小组</h3>
|
|
||||||
{% if groups %}
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th width="30%">名字</th>
|
|
||||||
<th width="40%">创建者</th>
|
|
||||||
<th width="23%">创建时间</th>
|
|
||||||
<th width="7%">操作</th>
|
|
||||||
</tr>
|
|
||||||
{% for group in groups %}
|
|
||||||
<tr>
|
|
||||||
<td><a href="{{ SITE_ROOT }}group/{{ group.props.id }}/">{{ group.props.group_name }}</a></td>
|
|
||||||
<td>{{ group.props.creator_name }}</td>
|
|
||||||
<td>{{ group.props.timestamp|tsstr_sec }}</td>
|
|
||||||
<td><button data="{{ SITE_ROOT}}group/{{ group.id }}/?op=delete&src=orggroupadmin" class="group-remove-btn">删除</button></td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<div id="paginator">
|
|
||||||
{% if current_page != 1 %}
|
|
||||||
<a href="{{ SITE_ROOT }}groupadmin/?page={{ prev_page }}&per_page={{ per_page }}">上一页</a>
|
|
||||||
{% endif %}
|
|
||||||
{% if page_next %}
|
|
||||||
<a href="{{ SITE_ROOT }}groupadmin/?page={{ next_page }}&per_page={{ per_page }}">下一页</a>
|
|
||||||
{% endif %}
|
|
||||||
<span>每页:</span>
|
|
||||||
{% if per_page == 25 %}
|
|
||||||
<span> 25 </span>
|
|
||||||
{% else %}
|
|
||||||
<a href="{{ SITE_ROOT }}groupadmin/?per_page=25" class="per-page">25</a>
|
|
||||||
{% endif %}
|
|
||||||
{% if per_page == 50 %}
|
|
||||||
<span> 50 </span>
|
|
||||||
{% else %}
|
|
||||||
<a href="{{ SITE_ROOT }}groupadmin/?per_page=50" class="per-page">50</a>
|
|
||||||
{% endif %}
|
|
||||||
{% if per_page == 100 %}
|
|
||||||
<span> 100 </span>
|
|
||||||
{% else %}
|
|
||||||
<a href="{{ SITE_ROOT }}groupadmin/?per_page=100" class="per-page">100</a>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
{% else %}
|
|
||||||
<p>暂无</p>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block extra_script %}
|
|
||||||
<script type="text/javascript">
|
|
||||||
addConfirmTo($('.group-remove-btn'), '确定要删除小组?')
|
|
||||||
</script>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
@@ -1,58 +0,0 @@
|
|||||||
{% extends base_template %}
|
|
||||||
{% block nav_seafadmin_class %}class="cur"{% endblock %}
|
|
||||||
|
|
||||||
{% block right_panel %}
|
|
||||||
<h3>所有同步目录</h3>
|
|
||||||
{% if repos %}
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th width="25%">名字</th>
|
|
||||||
<th width="28%">拥有者</th>
|
|
||||||
<th width="40%">描述</th>
|
|
||||||
<th width="7%">操作</th>
|
|
||||||
</tr>
|
|
||||||
{% for repo in repos %}
|
|
||||||
<tr>
|
|
||||||
<td><a href="{{ SITE_ROOT }}repo/{{ repo.props.id }}/">{{ repo.props.name }}</a></td>
|
|
||||||
<td><a href="{{ SITE_ROOT }}useradmin/info/{{ repo.owner }}/">{{ repo.owner}}</a></td>
|
|
||||||
<td>{{ repo.props.desc }}</td>
|
|
||||||
<td><button data="{{ SITE_ROOT }}repo/remove/{{ repo.props.id }}/?next={{ request.path }}" class="repo-delete-btn">删除</button></td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<div id="paginator">
|
|
||||||
{% if current_page != 1 %}
|
|
||||||
<a href="{{ SITE_ROOT }}seafadmin/?page={{ prev_page }}&per_page={{ per_page }}">上一页</a>
|
|
||||||
{% endif %}
|
|
||||||
{% if page_next %}
|
|
||||||
<a href="{{ SITE_ROOT }}seafadmin/?page={{ next_page }}&per_page={{ per_page }}">下一页</a>
|
|
||||||
{% endif %}
|
|
||||||
<span>每页:</span>
|
|
||||||
{% if per_page == 25 %}
|
|
||||||
<span> 25 </span>
|
|
||||||
{% else %}
|
|
||||||
<a href="{{ SITE_ROOT }}seafadmin/?per_page=25" class="per-page">25</a>
|
|
||||||
{% endif %}
|
|
||||||
{% if per_page == 50 %}
|
|
||||||
<span> 50 </span>
|
|
||||||
{% else %}
|
|
||||||
<a href="{{ SITE_ROOT }}seafadmin/?per_page=50" class="per-page">50</a>
|
|
||||||
{% endif %}
|
|
||||||
{% if per_page == 100 %}
|
|
||||||
<span> 100 </span>
|
|
||||||
{% else %}
|
|
||||||
<a href="{{ SITE_ROOT }}seafadmin/?per_page=100" class="per-page">100</a>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
{% else %}
|
|
||||||
<p>暂无</p>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block extra_script %}
|
|
||||||
<script type="text/javascript">
|
|
||||||
addConfirmTo($('.repo-delete-btn'));
|
|
||||||
</script>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
3
urls.py
3
urls.py
@@ -4,9 +4,8 @@ from django.views.generic.simple import direct_to_template
|
|||||||
|
|
||||||
from seahub.views import root, myhome, \
|
from seahub.views import root, myhome, \
|
||||||
repo, repo_history, modify_token, remove_repo, sys_seafadmin, sys_useradmin, \
|
repo, repo_history, modify_token, remove_repo, sys_seafadmin, sys_useradmin, \
|
||||||
org_seafadmin, org_group_admin, org_remove, \
|
|
||||||
activate_user, user_add, user_remove, sys_group_admin, sys_org_admin, \
|
activate_user, user_add, user_remove, sys_group_admin, sys_org_admin, \
|
||||||
ownerhome, repo_history_revert, repo_file_get, \
|
ownerhome, repo_history_revert, repo_file_get, org_remove, \
|
||||||
user_info, repo_set_access_property, repo_access_file, \
|
user_info, repo_set_access_property, repo_access_file, \
|
||||||
repo_remove_share, repo_download, org_info, repo_view_file, pdf_full_view, \
|
repo_remove_share, repo_download, org_info, repo_view_file, pdf_full_view, \
|
||||||
seafile_access_check, back_local, repo_history_changes, \
|
seafile_access_check, back_local, repo_history_changes, \
|
||||||
|
73
views.py
73
views.py
@@ -1143,47 +1143,6 @@ def sys_seafadmin(request):
|
|||||||
},
|
},
|
||||||
context_instance=RequestContext(request))
|
context_instance=RequestContext(request))
|
||||||
|
|
||||||
@login_required
|
|
||||||
def org_seafadmin(request, url_prefix):
|
|
||||||
if not request.user.org:
|
|
||||||
raise Http404
|
|
||||||
|
|
||||||
# Make sure page request is an int. If not, deliver first page.
|
|
||||||
try:
|
|
||||||
current_page = int(request.GET.get('page', '1'))
|
|
||||||
per_page= int(request.GET.get('per_page', '25'))
|
|
||||||
except ValueError:
|
|
||||||
current_page = 1
|
|
||||||
per_page = 25
|
|
||||||
|
|
||||||
repos_all = seafserv_threaded_rpc.get_org_repo_list(request.user.org['org_id'],
|
|
||||||
per_page * (current_page -1),
|
|
||||||
per_page + 1)
|
|
||||||
|
|
||||||
repos = repos_all[:per_page]
|
|
||||||
|
|
||||||
if len(repos_all) == per_page + 1:
|
|
||||||
page_next = True
|
|
||||||
else:
|
|
||||||
page_next = False
|
|
||||||
|
|
||||||
for repo in repos:
|
|
||||||
try:
|
|
||||||
repo.owner = seafserv_threaded_rpc.get_repo_owner(repo.props.id)
|
|
||||||
except:
|
|
||||||
repo.owner = None
|
|
||||||
|
|
||||||
return render_to_response(
|
|
||||||
'org_seafadmin.html', {
|
|
||||||
'repos': repos,
|
|
||||||
'current_page': current_page,
|
|
||||||
'prev_page': current_page-1,
|
|
||||||
'next_page': current_page+1,
|
|
||||||
'per_page': per_page,
|
|
||||||
'page_next': page_next,
|
|
||||||
},
|
|
||||||
context_instance=RequestContext(request))
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def sys_useradmin(request):
|
def sys_useradmin(request):
|
||||||
if not request.user.is_staff:
|
if not request.user.is_staff:
|
||||||
@@ -1385,38 +1344,6 @@ def sys_org_admin(request):
|
|||||||
'orgs': orgs,
|
'orgs': orgs,
|
||||||
}, context_instance=RequestContext(request))
|
}, context_instance=RequestContext(request))
|
||||||
|
|
||||||
def org_group_admin(request, url_prefix):
|
|
||||||
if not request.user.is_staff and not request.user.org['is_staff']:
|
|
||||||
raise Http404
|
|
||||||
|
|
||||||
# Make sure page request is an int. If not, deliver first page.
|
|
||||||
try:
|
|
||||||
current_page = int(request.GET.get('page', '1'))
|
|
||||||
per_page= int(request.GET.get('per_page', '25'))
|
|
||||||
except ValueError:
|
|
||||||
current_page = 1
|
|
||||||
per_page = 25
|
|
||||||
|
|
||||||
groups_plus_one = ccnet_threaded_rpc.get_org_groups (request.user.org['org_id'],
|
|
||||||
per_page * (current_page -1),
|
|
||||||
per_page +1)
|
|
||||||
|
|
||||||
groups = groups_plus_one[:per_page]
|
|
||||||
|
|
||||||
if len(groups_plus_one) == per_page + 1:
|
|
||||||
page_next = True
|
|
||||||
else:
|
|
||||||
page_next = False
|
|
||||||
|
|
||||||
return render_to_response('org_group_admin.html', {
|
|
||||||
'groups': groups,
|
|
||||||
'current_page': current_page,
|
|
||||||
'prev_page': current_page-1,
|
|
||||||
'next_page': current_page+1,
|
|
||||||
'per_page': per_page,
|
|
||||||
'page_next': page_next,
|
|
||||||
}, context_instance=RequestContext(request))
|
|
||||||
|
|
||||||
def org_remove(request, org_id):
|
def org_remove(request, org_id):
|
||||||
if not request.user.is_staff:
|
if not request.user.is_staff:
|
||||||
raise Http404
|
raise Http404
|
||||||
|
Reference in New Issue
Block a user