diff --git a/templates/snippets/pubinfo.html b/templates/snippets/pubinfo.html
index d33f91de51..7f1cae0c50 100644
--- a/templates/snippets/pubinfo.html
+++ b/templates/snippets/pubinfo.html
@@ -2,8 +2,8 @@
{% trans "Organization Info"%}
- - 0
{% trans 'Libraries' %}
- - 0
{% trans 'Groups' %}
- - 0
{% trans 'Users' %}
+ - {{ pubrepos_count }}
{% trans 'Libraries' %}
+ - {{ groups_count }}
{% trans 'Groups' %}
+ - {{ emailusers_count}}
{% trans 'Users' %}
diff --git a/thirdpart/seaserv/__init__.py b/thirdpart/seaserv/__init__.py
index abd71b8111..c67eb3a4af 100644
--- a/thirdpart/seaserv/__init__.py
+++ b/thirdpart/seaserv/__init__.py
@@ -3,7 +3,7 @@ import service
from service import ccnet_rpc, monitor_rpc, seafserv_rpc, \
seafserv_threaded_rpc, ccnet_threaded_rpc
from service import send_command, check_quota, web_get_access_token, unset_repo_passwd
-from service import get_emailusers, get_session_info
+from service import get_emailusers, count_emailusers, get_session_info
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, \
@@ -16,7 +16,7 @@ from service import get_repos, get_repo, get_commits, get_branches, remove_repo,
list_personal_shared_repos, is_personal_repo, list_inner_pub_repos, \
is_org_repo_owner, get_org_repo_owner, is_org_repo, get_file_size,\
list_personal_repos_by_owner, get_repo_token_nonnull, get_repo_owner, \
- server_repo_size, get_file_id_by_path, get_commit, \
+ server_repo_size, get_file_id_by_path, get_commit, count_inner_pub_repos,\
get_repo_history_limit, set_repo_history_limit
from service import get_binding_peerids, is_valid_filename, check_permission,\
diff --git a/thirdpart/seaserv/service.py b/thirdpart/seaserv/service.py
index bf3767a208..a56a36d018 100644
--- a/thirdpart/seaserv/service.py
+++ b/thirdpart/seaserv/service.py
@@ -153,6 +153,13 @@ def get_emailusers(start, limit):
users = []
return users
+def count_emailusers():
+ try:
+ ret = ccnet_threaded_rpc.count_emailusers()
+ except SearpcError:
+ ret = 0
+ return ret
+
def get_session_info():
return ccnet_rpc.get_session_info()
@@ -627,6 +634,13 @@ def list_inner_pub_repos(username):
shared_repos.sort(lambda x, y: cmp(y.props.last_modified, x.props.last_modified))
return shared_repos
+def count_inner_pub_repos():
+ try:
+ ret = seafserv_threaded_rpc.count_inner_pub_repos()
+ except SearpcError:
+ ret = 0
+ return ret
+
def is_inner_pub_repo(repo_id):
"""
Check whether a repo is public.
diff --git a/views.py b/views.py
index 6610b78cde..4893936448 100644
--- a/views.py
+++ b/views.py
@@ -47,7 +47,8 @@ from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_repos, get_emailusers, \
get_related_users_by_repo, get_related_users_by_org_repo, HtmlDiff, \
get_session_info, get_group_repoids, get_repo_owner, get_file_id_by_path, \
get_repo_history_limit, set_repo_history_limit, MAX_UPLOAD_FILE_SIZE, \
- get_commit, MAX_DOWNLOAD_DIR_SIZE, CALC_SHARE_USAGE
+ get_commit, MAX_DOWNLOAD_DIR_SIZE, CALC_SHARE_USAGE, count_emailusers, \
+ count_inner_pub_repos
from pysearpc import SearpcError
from signals import repo_created, repo_deleted
@@ -2745,11 +2746,18 @@ def pubrepo(request):
raise Http404
else:
public_repos = list_inner_pub_repos(request.user.username)
+ pubrepos_count = len(public_repos)
+ groups_count = len(get_personal_groups(-1, -1))
+ emailusers_count = count_emailusers()
return render_to_response('pubrepo.html', {
'public_repos': public_repos,
'create_shared_repo': True,
+ 'pubrepos_count': pubrepos_count,
+ 'groups_count': groups_count,
+ 'emailusers_count': emailusers_count,
}, context_instance=RequestContext(request))
+@login_required
def pubgrp(request):
"""
Show public groups.
@@ -2759,10 +2767,17 @@ def pubgrp(request):
raise Http404
else:
groups = get_personal_groups(-1, -1)
+ pubrepos_count = count_inner_pub_repos()
+ groups_count = len(groups)
+ emailusers_count = count_emailusers()
return render_to_response('pubgrp.html', {
'groups': groups,
+ 'pubrepos_count': pubrepos_count,
+ 'groups_count': groups_count,
+ 'emailusers_count': emailusers_count,
}, context_instance=RequestContext(request))
+@login_required
def pubuser(request):
"""
Show public users.
@@ -2772,8 +2787,14 @@ def pubuser(request):
raise Http404
else:
users = get_emailusers(-1, -1)
+ pubrepos_count = count_inner_pub_repos()
+ groups_count = len(get_personal_groups(-1, -1))
+ emailusers_count = count_emailusers()
return render_to_response('pubuser.html', {
'users': users,
+ 'pubrepos_count': pubrepos_count,
+ 'groups_count': groups_count,
+ 'emailusers_count': emailusers_count,
}, context_instance=RequestContext(request))
def repo_set_password(request):