32 lines
960 B
Python
32 lines
960 B
Python
# 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):
|
|
"""
|
|
Quick hack to show staff enrollment numbers. This should be
|
|
replaced with a real dashboard later. This version is a short-term
|
|
bandaid for the next couple weeks.
|
|
"""
|
|
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()
|
|
cursor.execute(query)
|
|
results = dictfetchall(cursor)
|
|
|
|
return HttpResponse(json.dumps(results, indent=4))
|