From b10b6e2b3f1ce98d74eb24f51519e2f121334526 Mon Sep 17 00:00:00 2001
From: JM Van Thong
Date: Wed, 5 Dec 2012 23:21:00 -0500
Subject: [PATCH] Added more analytics to instructor dashboard.
---
lms/djangoapps/instructor/views.py | 24 ++++++++++++++++-
.../courseware/instructor_dashboard.html | 26 ++++++++++++++++++-
2 files changed, 48 insertions(+), 2 deletions(-)
diff --git a/lms/djangoapps/instructor/views.py b/lms/djangoapps/instructor/views.py
index ffada9a482..f638d55f61 100644
--- a/lms/djangoapps/instructor/views.py
+++ b/lms/djangoapps/instructor/views.py
@@ -5,6 +5,8 @@ import csv
import logging
import os
import urllib
+import datetime
+from datetime import datetime, timedelta
from django.conf import settings
from django.contrib.auth.models import User, Group
@@ -273,15 +275,33 @@ def instructor_dashboard(request, course_id):
analytics_json = None
students_enrolled_json = None
daily_activity_json = None
+ students_daily_activity_json = None
+ students_per_problem_correct_json = None
if idash_mode == 'Analytics':
req = requests.get(settings.ANALYTICS_SERVER_URL + "get_analytics?aname=StudentsPerHomework&course_id=%s" % course_id)
analytics_json = req.json
+ # get the day
+ to_day = datetime.today().date()
+ from_day = to_day - timedelta(days=7)
+
+ # number of students active in the past 7 days (including current day)
+ req = requests.get(settings.ANALYTICS_SERVER_URL + "get_analytics?aname=StudentsDailyActivity&course_id=%s&from=%s" % (course_id,from_day))
+ students_daily_activity_json = req.json
+
+ # number of students per problem who have problem graded correct
+ req = requests.get(settings.ANALYTICS_SERVER_URL + "get_analytics?aname=StudentsPerProblemCorrect&course_id=%s&from=%s" % (course_id,from_day))
+ students_per_problem_correct_json = req.json
+
+ # number of students enrolled in this course
req = requests.get(settings.ANALYTICS_SERVER_URL + "get_analytics?aname=StudentsEnrolled&course_id=%s" % course_id)
students_enrolled_json = req.json
- req = requests.get(settings.ANALYTICS_SERVER_URL + "get_analytics?aname=DailyActivityAnalyzer&from=2012-11-19&to=2012-12-04&course_id=%s" % course_id)
+ # number of students active in the past 7 days (including current day) --- online version!
+ to_day = datetime.today().date()
+ from_day = to_day - timedelta(days=7)
+ req = requests.get(settings.ANALYTICS_SERVER_URL + "get_analytics?aname=DailyActivityAnalyzer&course_id=%s&from=%s&to=%s" % (course_id,from_day, to_day))
daily_activity_json = req.json
#----------------------------------------
@@ -301,6 +321,8 @@ def instructor_dashboard(request, course_id):
'analytics_json' : analytics_json,
'students_enrolled_json' : students_enrolled_json,
'daily_activity_json' : daily_activity_json,
+ 'students_daily_activity_json' : students_daily_activity_json,
+ 'students_per_problem_correct_json' : students_per_problem_correct_json,
}
return render_to_response('courseware/instructor_dashboard.html', context)
diff --git a/lms/templates/courseware/instructor_dashboard.html b/lms/templates/courseware/instructor_dashboard.html
index 6d696a3558..f15647ccd2 100644
--- a/lms/templates/courseware/instructor_dashboard.html
+++ b/lms/templates/courseware/instructor_dashboard.html
@@ -179,6 +179,30 @@ function goto( mode)
Number of students enrolled: ${students_enrolled_json['data']['nb_students_enrolled']}
+
+
Daily activity for the past 7 days:
+
+ | Day | Number of students |
+ % for k,v in students_daily_activity_json['data'].items():
+
+ | ${k} | ${v} |
+
+ % endfor
+
+
+
+
+
Number of students with correct problems for the past 7 days:
+
+ | Problem | Number of students |
+ % for k,v in students_per_problem_correct_json['data'].items():
+
+ | ${k} | ${v} |
+
+ % endfor
+
+
+
Students who attempted at least one exercise:
@@ -196,7 +220,7 @@ function goto( mode)
-
Daily activity:
+ Daily activity (online version):
| Day | Number of students |
% for k,v in daily_activity_json['data'].items():