Skip to content

Commit

Permalink
New views for android application (returning JSON data)
Browse files Browse the repository at this point in the history
  • Loading branch information
rsaikali committed Sep 16, 2012
1 parent 9fc0189 commit ec57b39
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 7 deletions.
3 changes: 2 additions & 1 deletion skwissh/static/skwissh/javascripts/plots.js
Expand Up @@ -13,7 +13,8 @@ function refreshGraph(url, period, graphtype, probe_id, display_name, labels, un
success : function(mesures) {
if (mesures.length === 0)
showError("No data found for sensor \'" + display_name + "\'.", probe_id);
updateGraph(mesures, graphtype, probe_id, labels, units, period);
else
updateGraph(mesures, graphtype, probe_id, labels, units, period);
},
error : function(mesures) {
showError("An error occured while building sensor graph \'" + display_name + "\'.", probe_id);
Expand Down
5 changes: 4 additions & 1 deletion skwissh/urls.py
Expand Up @@ -66,7 +66,10 @@ def get_groups():
url(r'^mesures/(\d+)/(\d+)/(\w+)/$', 'skwissh.views.mesures', name='mesures'),

# Ajax for Android
url(r'^servers/$', 'skwissh.views.servers', name='servers'),
url(r'^graphtypes/$', 'skwissh.views.graphtypes', name='graphtypes'),
url(r'^server_groups/$', 'skwissh.views.server_groups', name='server-groups'),
url(r'^servers/(\d+)/$', 'skwissh.views.servers', name='servers'),
url(r'^sensors/(\d+)/$', 'skwissh.views.sensors', name='sensors'),
)

if settings.DEBUG:
Expand Down
52 changes: 47 additions & 5 deletions skwissh/views.py
Expand Up @@ -12,7 +12,6 @@
get_probe_list_context_data
from skwissh.models import Server, Measure, ServerGroup, Probe, MeasureDay, \
MeasureWeek, MeasureMonth, GraphType
from skwissh.urls import staff_required
import datetime


Expand Down Expand Up @@ -67,7 +66,7 @@ def mesures(request, server_id, probe_id, period):
probe = get_object_or_404(Probe, pk=probe_id)
server = get_object_or_404(Server, pk=server_id)
now = datetime.datetime.utcnow().replace(tzinfo=utc)
if period == 'last':
if period == 'last' or probe.graph_type.name == "text":
data = Measure.objects.filter(server=server, probe=probe)[0:1]
elif period == 'hour':
data = Measure.objects.filter(server=server, probe=probe, timestamp__gte=now - datetime.timedelta(hours=1))
Expand All @@ -82,6 +81,49 @@ def mesures(request, server_id, probe_id, period):
return HttpResponseServerError()


#@staff_required
def servers(request):
return HttpResponse(serializers.serialize('json', Server.objects.all().select_related()), 'application/javascript')
@login_required
@cache_page(60)
def server_groups(request):
if request.is_ajax():
return HttpResponse(serializers.serialize('json', ServerGroup.objects.all()), 'application/javascript')
else:
return HttpResponseServerError()


@login_required
@cache_page(60)
def servers(request, group_id):
if request.is_ajax():
if group_id == '999999':
servers = Server.objects.filter(servergroup__isnull=True)
else:
server_group = ServerGroup.objects.get(pk=group_id)
servers = Server.objects.filter(servergroup=server_group)

for server in servers:
server.ip = "you_should_not_see_that_hahaha"
server.username = "you_should_not_see_that_hahaha"
server.password = "you_should_not_see_that_hahaha"

return HttpResponse(serializers.serialize('json', servers), 'application/javascript')
else:
return HttpResponseServerError()


@login_required
@cache_page(60)
def sensors(request, server_id):
if request.is_ajax():
server = Server.objects.get(pk=server_id)
return HttpResponse(serializers.serialize('json', Probe.objects.all().filter(server=server)), 'application/javascript')
else:
return HttpResponseServerError()


@login_required
@cache_page(60)
def graphtypes(request):
if request.is_ajax():
return HttpResponse(serializers.serialize('json', GraphType.objects.all()), 'application/javascript')
else:
return HttpResponseServerError()

0 comments on commit ec57b39

Please sign in to comment.