Index: lams_tool_assessment/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -rc95c723dea03ae1643682c78dda77366ff8f20a1 -r3c6af4b3a8f2ceb9710a326997d5683d229d26cc --- lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision c95c723dea03ae1643682c78dda77366ff8f20a1) +++ lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 3c6af4b3a8f2ceb9710a326997d5683d229d26cc) @@ -146,6 +146,10 @@ label.monitoring.summary.user.name = Name label.monitoring.summary.total = Total label.monitoring.summary.learner.summary = Learner summary +label.monitoring.summary.completion = Learner progress +label.monitoring.summary.completion.possible = Not started +label.monitoring.summary.completion.started = Started +label.monitoring.summary.completion.completed = Completed label.monitoring.user.summary.history.responses = History of responses label.monitoring.user.summary.user.name = Username label.monitoring.user.summary.number.attempts = Number of attempts Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java =================================================================== diff -u -r5b3b4fd2df1de75d853c5fb9dcf9f02eb2a5ca5a -r3c6af4b3a8f2ceb9710a326997d5683d229d26cc --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 5b3b4fd2df1de75d853c5fb9dcf9f02eb2a5ca5a) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 3c6af4b3a8f2ceb9710a326997d5683d229d26cc) @@ -238,7 +238,7 @@ request.setAttribute("possibleLearners", service.getCountLessonLearnersByContentId(contentId)); request.setAttribute("startedLearners", service.getCountUsersByContentId(contentId)); - request.setAttribute("finishedLearners", service.getCountLearnersWithFinishedCurrentAttempt(contentId)); + request.setAttribute("completedLearners", service.getCountLearnersWithFinishedCurrentAttempt(contentId)); return "pages/monitoring/monitoring"; } Index: lams_tool_assessment/web/pages/monitoring/monitoring.jsp =================================================================== diff -u -ra96bbfd64a27a16ef8c7064ca3569835bb6bc1b6 -r3c6af4b3a8f2ceb9710a326997d5683d229d26cc --- lams_tool_assessment/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision a96bbfd64a27a16ef8c7064ca3569835bb6bc1b6) +++ lams_tool_assessment/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 3c6af4b3a8f2ceb9710a326997d5683d229d26cc) @@ -31,6 +31,11 @@ #time-limit-table td.centered { text-align: center; } + + #completion-chart-container { + width: 400px; + margin: auto; + } @@ -65,6 +70,7 @@ + Index: lams_tool_assessment/web/pages/monitoring/summary.jsp =================================================================== diff -u -rcee5e216e7f8b9aa30dda1b8c6e0c21128513c38 -r3c6af4b3a8f2ceb9710a326997d5683d229d26cc --- lams_tool_assessment/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision cee5e216e7f8b9aa30dda1b8c6e0c21128513c38) +++ lams_tool_assessment/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 3c6af4b3a8f2ceb9710a326997d5683d229d26cc) @@ -310,8 +310,81 @@ } } initInidividualTimeLimitAutocomplete(); + + drawCompletionChart(); }); + + function drawCompletionChart(){ + let ctx = document.getElementById('completion-chart').getContext('2d'); + new Chart(ctx, { + type : 'doughnut', + borderWidth : 0, + data : { + elements : { + arc : { + borderWidth : 0, + fontSize : 0, + } + }, + datasets : [ { + data : [ ${possibleLearners - startedLearners - completedLearners}, + ${startedLearners - completedLearners}, + ${completedLearners} + ], + backgroundColor : [ 'rgba(5, 204, 214, 1)', + 'rgba(255, 195, 55, 1)', + 'rgba(253, 60, 165, 1)', + ], + borderWidth : 0, + } ], + labels : [ '', + '', + '' ] + }, + options : { + responsive : true, + legend : { + display : true, + position: 'right', + labels : { + generateLabels : function(chart) { + var data = chart.data; + if (data.labels.length && data.datasets.length) { + return data.labels.map(function(label, i) { + var meta = chart.getDatasetMeta(0), + style = meta.controller.getStyle(i), + value = data.datasets[0].data[i]; + + return { + text: label + ": " + value, + fillStyle: style.backgroundColor, + strokeStyle: style.borderColor, + lineWidth: style.borderWidth, + hidden: isNaN(value) || meta.data[i].hidden, + + // Extra data used for toggling the correct item + index: i + }; + }); + } + return []; + } + } + }, + title : { + display: true, + fontSize : '15', + text : '' + }, + animation : { + animateScale : true, + animateRotate : true + } + } + }); + } + function resizeJqgrid(jqgrids) { jqgrids.each(function(index) { var gridId = $(this).attr('id'); @@ -675,9 +748,12 @@ +
+ +
+
-