1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-20 10:58:33 +00:00

[sys-admin] add group info page

This commit is contained in:
lian
2015-04-25 10:57:14 +08:00
parent 886e22ec85
commit 69784c0025
4 changed files with 106 additions and 2 deletions

View File

@@ -0,0 +1,88 @@
{% extends "admin_base.html" %}
{% load i18n group_avatar_tags avatar_tags seahub_tags %}
{% load url from future %}
{% block extra_style %}
<style type="text/css">
#left-panel { position:relative; }
</style>
{% endblock %}
{% block left_panel %}
<a class="go-back" title="{% trans "back to group list" %}" href="{% url 'sys_group_admin' %}"><span class="icon-chevron-left"></span></a>
<div class="side-info">
<h3 class="hd">{% trans "Group Info" %}</h3>
{% grp_avatar group.id 48 %}
<dl>
<dt>{% trans "Name" %}</dt>
<dd>{{ group.group_name}}</dd>
<dt>{% trans "Creator" %}</dt>
<dd><a href="{% url 'user_info' group.creator_name %}">{{ group.creator_name }}</a></dd>
</dl>
</div>
{% endblock %}
{% block right_panel %}
<div id="tabs" class="tab-tabs">
<div class="hd ovhd">
<ul class="tab-tabs-nav fleft">
<li class="tab"><a href="#library" class="a">{% trans "Libraries" %}</a></li>
<li class="tab"><a href="#member" class="a">{% trans "Members" %}</a></li>
</ul>
</div>
<div id="library">
{% if repos %}
<table class="repo-list">
<tr>
<th width="4%"><!--icon--></th>
<th width="35%">{% trans "Name" %}</th>
<th width="20%">{% trans "Size" %}</th>
<th width="26%">{% trans "Shared By" %}</th>
<th width="15%">{% trans "Operations" %}</th>
</tr>
{% for repo in repos %}
<tr>
<td><img src="{{MEDIA_URL}}img/sync-folder-20.png?t=1387267140" title="{% trans "Read-Write" %}" alt="{% trans "directory icon" %}" /></td>
<td><a href="{{ SITE_ROOT }}repo/{{ repo.id }}/">{{ repo.name }}</a></td>
<td>{{ repo.size|filesizeformat }}</td>
<td><a href="{% url 'user_info' repo.user %}">{{ repo.user }}</a></td>
<td data-id="{{ repo.id }}" data-name="{{repo.name}}">
<div><a href="#" class="repo-delete-btn op-icon vh" title="{% trans "Delete" %}"><img src="{{MEDIA_URL}}img/rm.png" alt="" /></a></div>
</td>
</tr>
{% endfor %}
</table>
{% else %}
<div class="empty-tips">
<h2 class="alc">{% trans "No library has shared to this group" %}</h2>
</div>
{% endif %}
</div>
<div id="member">
<ul class="user-list">
{% for m in members %}
<li class="user ovhd">
<a href="{% url 'user_info' m.user_name %}" class="pic fleft">{% avatar m.user_name 48 %}</a>
<div class="txt fright">
<a class="name" href="{% url 'user_info' m.user_name %}">{{ m.user_name|email2nickname }}</a>{% if m.is_staff %}<span> ({% trans "admin" %})</span>{% endif %}
<p>{{ m.user_name }}</p>
</div>
</li>
{% endfor %}
</ul>
</div>
</div>
{% include 'snippets/repo_del_popup.html' %}
{% endblock %}
{% block extra_script %}
<script type="text/javascript">
{% include 'snippets/repo_del_js.html' %}
</script>
{% endblock %}

View File

@@ -17,7 +17,7 @@
{% for group in groups %} {% for group in groups %}
<tr> <tr>
<td> <td>
<a href="{{ SITE_ROOT }}group/{{ group.props.id }}/">{{ group.props.group_name }}</a> <a href="{% url 'sys_admin_group_info' group.id %}">{{ group.props.group_name }}</a>
{% if group.org_name %} {% if group.org_name %}
<p style="font-size:11px;"><a href="{% url 'sys_org_info_user' group.org_id %}">({{group.org_name}})</a></p> <p style="font-size:11px;"><a href="{% url 'sys_org_info_user' group.org_id %}">({{group.org_name}})</a></p>
{% endif %} {% endif %}

View File

@@ -217,6 +217,7 @@ urlpatterns = patterns('',
url(r'^sys/useradmin/ldap/$', sys_user_admin_ldap, name='sys_useradmin_ldap'), url(r'^sys/useradmin/ldap/$', sys_user_admin_ldap, name='sys_useradmin_ldap'),
url(r'^sys/useradmin/admins/$', sys_user_admin_admins, name='sys_useradmin_admins'), url(r'^sys/useradmin/admins/$', sys_user_admin_admins, name='sys_useradmin_admins'),
url(r'^sys/groupadmin/$', sys_group_admin, name='sys_group_admin'), url(r'^sys/groupadmin/$', sys_group_admin, name='sys_group_admin'),
url(r'^sys/groupadmin/(?P<group_id>\d+)/$', sys_admin_group_info, name='sys_admin_group_info'),
url(r'^sys/orgadmin/$', sys_org_admin, name='sys_org_admin'), url(r'^sys/orgadmin/$', sys_org_admin, name='sys_org_admin'),
url(r'^sys/orgadmin/(?P<org_id>\d+)/set_quota/$', sys_org_set_quota, name='sys_org_set_quota'), url(r'^sys/orgadmin/(?P<org_id>\d+)/set_quota/$', sys_org_set_quota, name='sys_org_set_quota'),
url(r'^sys/orgadmin/(?P<org_id>\d+)/rename/$', sys_org_rename, name='sys_org_rename'), url(r'^sys/orgadmin/(?P<org_id>\d+)/rename/$', sys_org_rename, name='sys_org_rename'),

View File

@@ -16,7 +16,7 @@ from django.template import RequestContext
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from seaserv import ccnet_threaded_rpc, seafserv_threaded_rpc, get_emailusers, \ from seaserv import ccnet_threaded_rpc, seafserv_threaded_rpc, get_emailusers, \
CALC_SHARE_USAGE, seafile_api CALC_SHARE_USAGE, seafile_api, get_group, get_group_members
from pysearpc import SearpcError from pysearpc import SearpcError
from seahub.base.accounts import User from seahub.base.accounts import User
@@ -977,6 +977,21 @@ def sys_group_admin(request):
'page_next': page_next, 'page_next': page_next,
}, context_instance=RequestContext(request)) }, context_instance=RequestContext(request))
@login_required
@sys_staff_required
def sys_admin_group_info(request, group_id):
group_id = int(group_id)
group = get_group(group_id)
repos = seafile_api.get_repos_by_group(group_id)
members = get_group_members(group_id)
return render_to_response('sysadmin/sys_admin_group_info.html', {
'group': group,
'repos': repos,
'members': members,
}, context_instance=RequestContext(request))
@login_required @login_required
@sys_staff_required @sys_staff_required
def sys_org_admin(request): def sys_org_admin(request):