diff --git a/lms/djangoapps/dashboard/views.py b/lms/djangoapps/dashboard/views.py new file mode 100644 index 0000000000..ba6c8ca152 --- /dev/null +++ b/lms/djangoapps/dashboard/views.py @@ -0,0 +1,29 @@ +# Create your views here. +import json +from datetime import datetime +from django.http import HttpResponse, Http404 + +def dictfetchall(cursor): + '''Returns all rows from a cursor as a dict. + Borrowed from Django documentation''' + desc = cursor.description + return [ + dict(zip([col[0] for col in desc], row)) + for row in cursor.fetchall() + ] + +def dashboard(request): + """ + Simple view that a loadbalancer can check to verify that the app is up + """ + if not request.user.is_staff: + raise Http404 + + query = "select count(user_id) as students, course_id from student_courseenrollment group by course_id order by students desc" + + from django.db import connection + cursor = connection.cursor() + results = dictfetchall(cursor.execute(query)) + + + return HttpResponse(json.dumps(results, indent=4)) diff --git a/lms/urls.py b/lms/urls.py index 0785cd96d0..3667397c8c 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -13,6 +13,7 @@ if settings.DEBUG: urlpatterns = ('', url(r'^$', 'student.views.index', name="root"), # Main marketing page, or redirect to courseware url(r'^dashboard$', 'student.views.dashboard', name="dashboard"), + url(r'^admin_dashboard$', 'dashboard.views.dashboard'), url(r'^change_email$', 'student.views.change_email_request'), url(r'^email_confirm/(?P[^/]*)$', 'student.views.confirm_email_change'),