Files
edx-platform/lms/templates/class_dashboard/all_section_metrics.js
Calen Pennington 18c91d0f1d Merge remote-tracking branch 'edx/master' into opaque-keys-merge-master
Conflicts:
	cms/djangoapps/contentstore/tests/utils.py
	cms/djangoapps/contentstore/views/import_export.py
	cms/djangoapps/contentstore/views/tests/test_import_export.py
	common/djangoapps/student/views.py
	lms/djangoapps/class_dashboard/dashboard_data.py
	lms/djangoapps/instructor/views/instructor_dashboard.py
	lms/static/js/staff_debug_actions.js
	lms/templates/notes.html
	lms/templates/staff_problem_info.html
2014-05-16 14:01:20 -04:00

107 lines
3.5 KiB
JavaScript

<%page args="id_opened_prefix, id_grade_prefix, id_attempt_prefix, id_tooltip_prefix, course_id, allSubsectionTooltipArr, allProblemTooltipArr, **kwargs"/>
<%!
import json
from django.core.urlresolvers import reverse
%>
$(function () {
d3.json("${reverse('all_sequential_open_distrib', kwargs=dict(course_id=course_id.to_deprecated_string()))}", function(error, json) {
var section, paramOpened, barGraphOpened, error;
var i, curr_id;
var errorMessage = gettext('Unable to retrieve data, please try again later.');
error = json.error;
if (error) {
$('.metrics-left .loading').text(errorMessage);
return
}
i = 0;
for (section in json) {
curr_id = "#${id_opened_prefix}"+i;
paramOpened = {
data: json[section].data,
width: $(curr_id).width(),
height: $(curr_id).height()-25, // Account for header
tag: "opened"+i,
bVerticalXAxisLabel : true,
bLegend : false,
margin: {left:0},
};
// Construct array of tooltips for all sections for the "Download Subsection Data" button.
var sectionTooltipArr = new Array();
paramOpened.data.forEach( function(element, index, array) {
sectionTooltipArr[index] = element.stackData[0].tooltip;
});
allSubsectionTooltipArr[i] = sectionTooltipArr;
barGraphOpened = edx_d3CreateStackedBarGraph(paramOpened, d3.select(curr_id).append("svg"),
d3.select("#${id_tooltip_prefix}"+i));
barGraphOpened.scale.stackColor.range(["#555555","#555555"]);
if (paramOpened.data.length > 0) {
barGraphOpened.drawGraph();
$('svg').siblings('.loading').remove();
} else {
$('svg').siblings('.loading').text(errorMessage);
}
i+=1;
}
});
d3.json("${reverse('all_problem_grade_distribution', kwargs=dict(course_id=course_id.to_deprecated_string()))}", function(error, json) {
var section, paramGrade, barGraphGrade, error;
var i, curr_id;
var errorMessage = gettext('Unable to retrieve data, please try again later.');
error = json.error;
if (error) {
$('.metrics-right .loading').text(errorMessage);
return
}
i = 0;
for (section in json) {
curr_id = "#${id_grade_prefix}"+i;
paramGrade = {
data: json[section].data,
width: $(curr_id).width(),
height: $(curr_id).height()-25, // Account for header
tag: "grade"+i,
bVerticalXAxisLabel : true,
};
// Construct array of tooltips for all sections for the "Download Problem Data" button.
var sectionTooltipArr = new Array();
paramGrade.data.forEach( function(element, index, array) {
var stackDataArr = new Array();
for (var j = 0; j < element.stackData.length; j++) {
stackDataArr[j] = element.stackData[j].tooltip
}
sectionTooltipArr[index] = stackDataArr;
});
allProblemTooltipArr[i] = sectionTooltipArr;
barGraphGrade = edx_d3CreateStackedBarGraph(paramGrade, d3.select(curr_id).append("svg"),
d3.select("#${id_tooltip_prefix}"+i));
barGraphGrade.scale.stackColor.domain([0,50,100]).range(["#e13f29","#cccccc","#17a74d"]);
barGraphGrade.legend.width += 2;
if ( paramGrade.data.length > 0 ) {
barGraphGrade.drawGraph();
$('svg').siblings('.loading').remove();
} else {
$('svg').siblings('.loading').text(errorMessage);
}
i+=1;
}
});
});