Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
c1447955
Commit
c1447955
authored
Mar 07, 2013
by
David Ormsbee
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Re-enable a couple of analytics on the dashboard to test layout
parent
d0bff1ed
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
73 additions
and
38 deletions
+73
-38
lms/djangoapps/instructor/views.py
+46
-38
lms/templates/courseware/instructor_dashboard.html
+27
-0
No files found.
lms/djangoapps/instructor/views.py
View file @
c1447955
...
...
@@ -8,6 +8,7 @@ import logging
import
os
import
re
import
requests
from
requests.status_codes
import
codes
import
urllib
import
datetime
from
datetime
import
datetime
,
timedelta
...
...
@@ -612,40 +613,46 @@ def instructor_dashboard(request, course_id):
# use instead: json.loads(req.content, object_pairs_hook=OrderedDict)
# number of students enrolled in this course
req
=
requests
.
get
(
settings
.
ANALYTICS_SERVER_URL
+
"get?aname=StudentsEnrolled&course_id=
%
s"
%
course_id
)
if
req
.
content
!=
'None'
:
students_enrolled_json
=
json
.
loads
(
req
.
content
,
object_pairs_hook
=
OrderedDict
)
# number of students active in the past 7 days (including current day), i.e. with at least one activity for the period
#req = requests.get(settings.ANALYTICS_SERVER_URL + "get_analytics?aname=StudentsActive&course_id=%s&from=%s" % (course_id,from_day))
req
=
requests
.
get
(
settings
.
ANALYTICS_SERVER_URL
+
"get?aname=StudentsActive&course_id=
%
s"
%
(
course_id
,))
# default is active past 7 days
if
req
.
content
!=
'None'
:
students_active_json
=
json
.
loads
(
req
.
content
,
object_pairs_hook
=
OrderedDict
)
res
=
requests
.
get
(
settings
.
ANALYTICS_SERVER_URL
+
"get?aname=StudentsEnrolled&course_id=
%
s"
%
course_id
)
if
res
.
status_code
==
codes
.
OK
:
students_enrolled_json
=
json
.
loads
(
res
.
content
,
object_pairs_hook
=
OrderedDict
)
else
:
students_enrolled_json
=
None
# # number of students active in the past 7 days (including current day), i.e. with at least one activity for the period
# #req = requests.get(settings.ANALYTICS_SERVER_URL + "get_analytics?aname=StudentsActive&course_id=%s&from=%s" % (course_id,from_day))
# req = requests.get(settings.ANALYTICS_SERVER_URL + "get?aname=StudentsActive&course_id=%s" % (course_id,)) # default is active past 7 days
# if req.content != 'None':
# students_active_json = json.loads(req.content, object_pairs_hook=OrderedDict)
#
# number of students per problem who have problem graded correct
req
=
requests
.
get
(
settings
.
ANALYTICS_SERVER_URL
+
"get?aname=StudentsPerProblemCorrect&course_id=
%
s"
%
(
course_id
,))
if
req
.
content
!=
'None'
:
students_per_problem_correct_json
=
json
.
loads
(
req
.
content
,
object_pairs_hook
=
OrderedDict
)
# number of students per problem who have problem graded correct <<< THIS IS FOR ACTIVE STUDENTS
# req = requests.get(settings.ANALYTICS_SERVER_URL + "get?aname=StudentsPerProblemCorrect&course_id=%s&from=%s" % (course_id,from_day))
# if req.content != 'None':
# students_per_problem_correct_json = json.loads(req.content, object_pairs_hook=OrderedDict)
# grade distribution for the course +++ this is not the desired distribution +++
req
=
requests
.
get
(
settings
.
ANALYTICS_SERVER_URL
+
"get?aname=OverallGradeDistribution&course_id=
%
s"
%
(
course_id
,))
if
req
.
content
!=
'None'
:
overall_grade_distribution
=
json
.
loads
(
req
.
content
,
object_pairs_hook
=
OrderedDict
)
# number of students distribution drop off per day
req
=
requests
.
get
(
settings
.
ANALYTICS_SERVER_URL
+
"get?aname=StudentsDropoffPerDay&course_id=
%
s&from=
%
s"
%
(
course_id
,
from_day
))
if
req
.
content
!=
'None'
:
dropoff_per_day
=
json
.
loads
(
req
.
content
,
object_pairs_hook
=
OrderedDict
)
# number of students per problem who attempted this problem at least once
req
=
requests
.
get
(
settings
.
ANALYTICS_SERVER_URL
+
"get?aname=StudentsAttemptedProblems&course_id=
%
s"
%
course_id
)
if
req
.
content
!=
'None'
:
attempted_problems
=
json
.
loads
(
req
.
content
,
object_pairs_hook
=
OrderedDict
)
res
=
requests
.
get
(
settings
.
ANALYTICS_SERVER_URL
+
"get?aname=StudentsPerProblemCorrect&course_id=
%
s"
%
(
course_id
,))
if
res
.
status_code
==
codes
.
OK
:
students_per_problem_correct_json
=
json
.
loads
(
res
.
content
,
object_pairs_hook
=
OrderedDict
)
else
:
students_per_problem_correct_json
=
None
# # number of students per problem who have problem graded correct <<< THIS IS FOR ACTIVE STUDENTS
# # req = requests.get(settings.ANALYTICS_SERVER_URL + "get?aname=StudentsPerProblemCorrect&course_id=%s&from=%s" % (course_id,from_day))
# # if req.content != 'None':
# # students_per_problem_correct_json = json.loads(req.content, object_pairs_hook=OrderedDict)
#
# # grade distribution for the course +++ this is not the desired distribution +++
# req = requests.get(settings.ANALYTICS_SERVER_URL + "get?aname=OverallGradeDistribution&course_id=%s" % (course_id,))
# if req.content != 'None':
# overall_grade_distribution = json.loads(req.content, object_pairs_hook=OrderedDict)
#
# # number of students distribution drop off per day
# req = requests.get(settings.ANALYTICS_SERVER_URL + "get?aname=StudentsDropoffPerDay&course_id=%s&from=%s" % (course_id,from_day))
# if req.content != 'None':
# dropoff_per_day = json.loads(req.content, object_pairs_hook=OrderedDict)
#
# # number of students per problem who attempted this problem at least once
# req = requests.get(settings.ANALYTICS_SERVER_URL + "get?aname=StudentsAttemptedProblems&course_id=%s" % course_id)
# if req.content != 'None':
# attempted_problems = json.loads(req.content, object_pairs_hook=OrderedDict)
# number of students active in the past 7 days (including current day) --- online version! experimental
...
...
@@ -684,12 +691,13 @@ def instructor_dashboard(request, course_id):
# The following are specific analytics metrics that should be
# put in their own space...
'students_enrolled_json'
:
students_enrolled_json
,
'students_active_json'
:
students_active_json
,
'daily_activity_json'
:
daily_activity_json
,
#
'students_active_json' : students_active_json,
#
'daily_activity_json' : daily_activity_json,
'students_per_problem_correct_json'
:
students_per_problem_correct_json
,
'overall_grade_distribution'
:
overall_grade_distribution
,
'dropoff_per_day'
:
dropoff_per_day
,
'attempted_problems'
:
attempted_problems
,
# 'overall_grade_distribution' : overall_grade_distribution,
# 'dropoff_per_day' : dropoff_per_day,
# 'attempted_problems' : attempted_problems
}
return
render_to_response
(
'courseware/instructor_dashboard.html'
,
context
)
...
...
lms/templates/courseware/instructor_dashboard.html
View file @
c1447955
...
...
@@ -372,6 +372,33 @@ function goto( mode)
%if modeflag.get('Analytics'):
<p>
Students enrolled:
% if students_enrolled_json and "data" in students_enrolled_json:
${students_enrolled_json['data'][0]['students']}
<!-- ${students_enrolled_json['time']} -->
% endif
</p>
<p>
<p>
Number of students per problem who have this problem graded as correct, as of ${students_per_problem_correct_json['time']}
</p>
% if students_per_problem_correct_json and "data" in students_per_problem_correct_json:
<div
class=
"divScroll"
>
<table
class=
"stat_table"
>
<tr><th>
Problem
</th><th>
Number of students
</th></tr>
% for row in students_per_problem_correct_json['data']:
<tr>
<td>
${row['module_id']}
</td>
<td>
${row['count']}
</td>
</tr>
% endfor
</table>
</div>
% endif
</p>
%endif
%if modeflag.get('Analytics 2'):
<p>
Number of students enrolled for ${students_enrolled_json['data'][0]['course_id']}:
% if students_enrolled_json is not None:
% if students_enrolled_json['status'] == 'success':
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment