diff --git a/lms/static/js/learner_analytics_dashboard/LearnerAnalyticsDashboard.jsx b/lms/static/js/learner_analytics_dashboard/LearnerAnalyticsDashboard.jsx
index e6bfb40d43..3f3bb15089 100644
--- a/lms/static/js/learner_analytics_dashboard/LearnerAnalyticsDashboard.jsx
+++ b/lms/static/js/learner_analytics_dashboard/LearnerAnalyticsDashboard.jsx
@@ -61,7 +61,7 @@ function getStreakString(count) {
}
export function LearnerAnalyticsDashboard(props) {
- const {grading_policy, grades, schedule, week_streak, weekly_active_users, discussion_info, profile_images, passing_grade, percent_grade} = props;
+ const {grading_policy, grades, schedule, schedule_raw, week_streak, weekly_active_users, discussion_info, profile_images, passing_grade, percent_grade} = props;
const gradeBreakdown = grading_policy.GRADER.map(({type, weight}, index) => {
return {
value: weight,
@@ -75,6 +75,9 @@ export function LearnerAnalyticsDashboard(props) {
const assignmentTypes = [...new Set(assignments)];
const assignmentCounts = getAssignmentCounts(assignmentTypes, schedule);
+ console.log(schedule_raw);
+ console.log(grades);
+
return (
@@ -115,8 +118,6 @@ export function LearnerAnalyticsDashboard(props) {
Timing
-
Course due dates
-
Week streak
{week_streak > 0 &&
diff --git a/openedx/features/learner_analytics/templates/learner_analytics/dashboard.html b/openedx/features/learner_analytics/templates/learner_analytics/dashboard.html
index 272fb27e18..2851d16480 100644
--- a/openedx/features/learner_analytics/templates/learner_analytics/dashboard.html
+++ b/openedx/features/learner_analytics/templates/learner_analytics/dashboard.html
@@ -39,8 +39,7 @@ from openedx.features.course_experience import course_home_page_title
${course_home_page_title(course)}
-
${_('Learner Analytics')}
-
+
${_('(Beta) My Stats')}
@@ -54,6 +53,7 @@ from openedx.features.course_experience import course_home_page_title
id="react-learner-analytics-dashboard",
props={
'schedule': assignment_schedule,
+ 'schedule_raw': assignment_schedule_raw,
'grading_policy': grading_policy,
'grades': assignment_grades,
'discussion_info': discussion_info,
diff --git a/openedx/features/learner_analytics/views.py b/openedx/features/learner_analytics/views.py
index 49dca9e64c..17a1b8e9f6 100644
--- a/openedx/features/learner_analytics/views.py
+++ b/openedx/features/learner_analytics/views.py
@@ -92,9 +92,15 @@ class LearnerAnalyticsView(View):
if (has_access):
grading_policy = course.grading_policy
- (grade_data, answered_percent, percent_grade) = self.get_grade_data(request.user, course_key, grading_policy['GRADE_CUTOFFS'])
- schedule_data = self.get_assignments_with_due_date(request, course_key)
- (grade_data, schedule_data) = self.sort_grade_and_schedule_data(grade_data, schedule_data)
+ (raw_grade_data, answered_percent, percent_grade) = self.get_grade_data(request.user, course_key, grading_policy['GRADE_CUTOFFS'])
+ raw_schedule_data = self.get_assignments_with_due_date(request, course_key)
+
+ # TODO: LEARNER-3854: Removed assignment schedule and grade sorting code.
+ # The original code had several problems:
+ # - It dropped one of the surveys from course-v1:Microsoft+DAT206x+1T2018.
+ # - It was dependent on due dates which are not available for self-paced yet.
+ grade_data = raw_grade_data
+ schedule_data = []
# TODO: LEARNER-3854: Fix hacked defaults with real error handling if implementing Learner Analytics.
try:
@@ -112,6 +118,7 @@ class LearnerAnalyticsView(View):
'assignment_grades': grade_data,
'answered_percent': answered_percent,
'assignment_schedule': schedule_data,
+ 'assignment_schedule_raw': raw_schedule_data,
'profile_image_urls': get_profile_image_urls_for_user(request.user, request),
'discussion_info': self.get_discussion_data(request, course_key),
'passing_grade': math.ceil(100 * course.lowest_passing_grade),
@@ -229,9 +236,9 @@ class LearnerAnalyticsView(View):
)
assignment_blocks = []
for (location, block) in all_blocks['blocks'].iteritems():
- if block.get('graded', False) and block.get('due') is not None:
+ if block.get('graded', False):
assignment_blocks.append(block)
- block['due'] = block['due'].isoformat()
+ block['due'] = block['due'].isoformat() if block.get('due') is not None else None
block['location'] = unicode(location)
return assignment_blocks