Instructor Dashboard
[ Grades |
%if settings.MITX_FEATURES.get('ENABLE_PSYCHOMETRICS'):
Psychometrics |
%endif
Admin |
Forum Admin |
Enrollment |
DataDump |
Manage Groups
%if settings.MITX_FEATURES.get('ENABLE_INSTRUCTOR_ANALYTICS'):
| Analytics
%endif
]
${djangopid}
| ${mitx_version}
##-----------------------------------------------------------------------------
%if msg:
${msg}
%endif
##-----------------------------------------------------------------------------
%if modeflag.get('Analytics'):
%if not any(analytics_results.values()):
No Analytics are available at this time.
%endif
%if analytics_results.get("StudentsEnrolled"):
Students enrolled:
${analytics_results["StudentsEnrolled"]['data'][0]['students']}
%endif
%if analytics_results.get("StudentsActive"):
Students active in the last week:
${analytics_results["StudentsActive"]['data'][0]['active']}
%endif
%if analytics_results.get("StudentsDropoffPerDay"):
Student activity day by day
Day |
Students |
%for row in analytics_results['StudentsDropoffPerDay']['data']:
## For now, just discard the non-date portion
${row['last_day'].split("T")[0]} |
${row['num_students']} |
%endfor
%endif
%if analytics_results.get("ProblemGradeDistribution"):
Answer distribution for problems
Problem |
Max |
Points Earned (Num Students) |
%for row in analytics_results['ProblemGradeDistribution']['data']:
${row['module_id'].split('/')[-1]} |
${max(grade_record['max_grade'] for grade_record in row["grade_info"])}
%for grade_record in row["grade_info"]:
|
%if isinstance(grade_record["grade"], float):
${"{grade:.2f}".format(**grade_record)}
%else:
${"{grade}".format(**grade_record)}
%endif
(${grade_record["num_students"]})
|
%endfor
%endfor
%endif
%endif
%if modeflag.get('Analytics In Progress'):
##This is not as helpful as it could be -- let's give full point distribution
##instead.
%if analytics_results.get("StudentsPerProblemCorrect"):
Students answering correctly
%endif
Student distribution per country, all courses, Sep-12 to Oct-17, 1 server (shown here as an example):
## Number of students who dropped off per day before becoming inactive:
##
## % if dropoff_per_day is not None:
## % if dropoff_per_day['status'] == 'success':
##
## % else:
## ${dropoff_per_day['error']}
## % endif
## % else:
## null data
## % endif
##
##
##
##
Daily activity (online version):
##
## Day | Number of students |
## % for k,v in daily_activity_json['data'].items():
##
## ${k} | ${v} |
##
## % endfor
##
##
%endif
##-----------------------------------------------------------------------------
%if datatable and modeflag.get('Psychometrics') is None:
${datatable['title']}
%for hname in datatable['header']:
${hname} |
%endfor
%for row in datatable['data']:
%for value in row:
${value} |
%endfor
%endfor
%endif
##-----------------------------------------------------------------------------
%if modeflag.get('Psychometrics'):
%for plot in plots:
${plot['title']}
${plot['info']}
%endfor
%endif
##-----------------------------------------------------------------------------
## always show msg
##-----------------------------------------------------------------------------
%if modeflag.get('Admin'):
% if course_errors is not UNDEFINED:
Course errors
%if not course_errors:
None
%else:
% for (summary, err) in course_errors:
- ${summary | h}
% if err:
% else:
% endif
% endfor
%endif
% endif
%endif