diff --git a/templates/groups.html b/templates/groups.html new file mode 100644 index 0000000000..92e44bfba4 --- /dev/null +++ b/templates/groups.html @@ -0,0 +1,25 @@ +{% extends "base.html" %} + +{% block title %}Groups{% endblock %} + +{% block left_panel %} + +{% endblock %} + +{% block right_panel %} + + + + + + + {% for group in groups %} + + + + + + {% endfor %} +
NameIDMaintainer
{{ group.props.name }}{{ group.props.id }}{{ group.props.maintainers }}
+ +{% endblock %} diff --git a/thirdpart/seaserv/__init__.py b/thirdpart/seaserv/__init__.py index 9d23115071..c40c010004 100644 --- a/thirdpart/seaserv/__init__.py +++ b/thirdpart/seaserv/__init__.py @@ -1,7 +1,7 @@ import service from service import cclient, ccnet_rpc, seamsg_rpc -from service import translate_peerid, translate_msgtime +from service import translate_peerid, translate_msgtime, translate_groupid from service import get_peers_by_role from service import get_groups, get_group diff --git a/thirdpart/seaserv/service.py b/thirdpart/seaserv/service.py index a4c03836be..657dce3da5 100644 --- a/thirdpart/seaserv/service.py +++ b/thirdpart/seaserv/service.py @@ -31,10 +31,30 @@ def translate_peerid(peer_id): except: peer = ccnet_rpc.get_peer(peer_id) if peer: - peer_db['peer_id'] = peer + peer_db[peer_id] = peer else: - return peer_id - return peer.props.name + "(" + peer_id[:4] + ")" + return peer_id[:8] + if peer.props.name: + return peer.props.name + "(" + peer_id[:4] + ")" + else: + return peer_id[:8] + +group_db = {} + +def translate_groupid(group_id): + try: + group = group_db[group_id] + except: + group = ccnet_rpc.get_group(group_id) + if group: + group_db[group_id] = group + else: + return group_id[:8] + if group.props.name: + return group.props.name + "(" + group_id[:4] + ")" + else: + return group_id[:8] + def translate_msgtime(msgtime): return datetime.fromtimestamp( diff --git a/urls.py b/urls.py index a25641e03e..2240c826e1 100644 --- a/urls.py +++ b/urls.py @@ -1,6 +1,6 @@ from django.conf.urls.defaults import * from django.conf import settings -from seahub.views import root, home, peers +from seahub.views import root, home, peers, groups # Uncomment the next two lines to enable the admin: # from django.contrib import admin @@ -20,6 +20,7 @@ urlpatterns = patterns('', (r'^$', root), (r'^home/$', home), (r'^peers/$', peers), + (r'^groups/$', groups), ) if settings.DEBUG: diff --git a/views.py b/views.py index d99106fd37..7d0671838f 100644 --- a/views.py +++ b/views.py @@ -3,15 +3,17 @@ from django.shortcuts import render_to_response from django.core.urlresolvers import reverse from django.template import RequestContext -from seaserv import cclient, ccnet_rpc +from seaserv import cclient, ccnet_rpc, get_groups def root(request): return HttpResponseRedirect(reverse(home)) + def home(request): return render_to_response('home.html', { }, context_instance=RequestContext(request)) + def peers(request): peer_type = request.REQUEST.get('type', 'all') peer_ids = ccnet_rpc.list_peers() @@ -30,3 +32,11 @@ def peers(request): return render_to_response('peers.html', { 'peers': peers, }, context_instance=RequestContext(request)) + + +def groups(request): + groups = get_groups() + return render_to_response('groups.html', { + 'groups': groups, + }, context_instance=RequestContext(request)) +