diff --git a/main/views.py b/main/views.py index e8cb0f2..6911fe4 100755 --- a/main/views.py +++ b/main/views.py @@ -100,9 +100,11 @@ def get_users(): """ try: pipe = os.popen("who |" + "awk '{print $1, $2, $6}'") - data = pipe.read().strip().split() + data = pipe.read().strip().split('\n') pipe.close() + data = [i.split(None, 3) for i in data] + except Exception, err: data = str(err) @@ -231,7 +233,7 @@ def getall(request): #'getdisk': get_disk(), 'getip': get_ipaddress(), 'gettraffic': get_traffic('eth0'), - 'getusers': get_users(), + #'getusers': get_users(), 'getcpuusage': get_cpu_usage(), 'time_refresh': time_refresh }, context_instance=RequestContext(request)) diff --git a/pydash/urls.py b/pydash/urls.py index 0891220..90bd6f6 100644 --- a/pydash/urls.py +++ b/pydash/urls.py @@ -19,6 +19,7 @@ urlpatterns = patterns('', url(r'^info/users/$', 'usage.views.getusers', name='getusers'), url(r'^info/cpuusage/$', 'usage.views.cpuusage', name='cpuusage'), url(r'^info/getdisk/$', 'usage.views.getdisk', name='getdisk'), + url(r'^info/getusers/$', 'usage.views.getusers', name='getusers'), url(r'^info/loadaverage/$', 'usage.views.loadaverage', name='loadaverage') ) diff --git a/templates/main.html b/templates/main.html index 35c1744..2602f87 100644 --- a/templates/main.html +++ b/templates/main.html @@ -177,7 +177,17 @@
- {% include 'users.html' %} + + + + + + + + + + +
UserTTYLogged in from
@@ -283,6 +293,17 @@ dashboard.getDisk = function() { $("#get-disk").html( tr ); }); } +dashboard.getUsers = function() { + $.getJSON('/info/getusers/{{ getusers }}', function(data) { + var tr=''; + $.each( data, function( index, item){ + tr+=''+item[0]+''+item[1]+''+item[2]+''; + }) + tr+=''; + $("#get-users").html( tr ); + }); + } + var mem_ctx = $("#memoryChart").get(0).getContext("2d"); var memChart = new Chart(mem_ctx); @@ -328,6 +349,7 @@ var load_ctx = $("#loadChart").get(0).getContext("2d"); window.setInterval('load_average()', {{ time_refresh }}); window.setInterval('dashboard.getOs()', {{ time_refresh }}); window.setInterval('dashboard.getDisk()', {{ time_refresh }}); + window.setInterval('dashboard.getUsers()', {{ time_refresh }}); window.setInterval('cpuu_usage()', {{ time_refresh }}); }); diff --git a/templates/users.html b/templates/users.html index 7bd1896..c072b2f 100644 --- a/templates/users.html +++ b/templates/users.html @@ -6,11 +6,6 @@ Logged in from - - {% for user in getusers %} - {% cycle '' '' ''%} - {{user}} - {% cycle '' '' '' %} - {% endfor %} + diff --git a/usage/views.py b/usage/views.py index 8dac725..0253f9a 100755 --- a/usage/views.py +++ b/usage/views.py @@ -43,6 +43,24 @@ def getdisk(request): response['Content-Type'] = "text/javascript" response.write(data) return response + +def getusers(request): + """ + Return the online users + """ + if not request.user.is_authenticated(): + return HttpResponseRedirect('/login') + + try: + getusers = get_users() + except Exception: + getusers = None + + data = simplejson.dumps(getusers) + response = HttpResponse() + response['Content-Type'] = "text/javascript" + response.write(data) + return response def getusers(request):