Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml
===================================================================
diff -u -r37945afeca0f748fbb1f1608d8317bea73234a5e -r5e40c22a096ef6175b11206e276600782348306d
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml (.../assessmentApplicationContext.xml) (revision 37945afeca0f748fbb1f1608d8317bea73234a5e)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml (.../assessmentApplicationContext.xml) (revision 5e40c22a096ef6175b11206e276600782348306d)
@@ -139,7 +139,7 @@
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
- PROPAGATION_REQUIRED,-java.lang.Exception
+ PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java
===================================================================
diff -u -r37945afeca0f748fbb1f1608d8317bea73234a5e -r5e40c22a096ef6175b11206e276600782348306d
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 37945afeca0f748fbb1f1608d8317bea73234a5e)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 5e40c22a096ef6175b11206e276600782348306d)
@@ -29,6 +29,7 @@
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
@@ -3124,4 +3125,19 @@
public AssessmentQuestion getAssessmentQuestionByUid(Long questionUid) {
return assessmentQuestionDao.getByUid(questionUid);
}
+
+ @Override
+ public void notifyLearnersOnAnswerDisclose(long toolContentId) throws JSONException {
+ List sessions = assessmentSessionDao.getByContentId(toolContentId);
+ Set userIds = new HashSet();
+ for (AssessmentSession session : sessions) {
+ for (AssessmentUser user : session.getAssessmentUsers()) {
+ userIds.add(user.getUserId().intValue());
+ }
+ }
+
+ JSONObject jsonCommand = new JSONObject();
+ jsonCommand.put("hookTrigger", "assessment-results-refresh-" + toolContentId);
+ learnerService.createCommandForLearners(toolContentId, userIds, jsonCommand.toString());
+ }
}
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java
===================================================================
diff -u -r37945afeca0f748fbb1f1608d8317bea73234a5e -r5e40c22a096ef6175b11206e276600782348306d
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 37945afeca0f748fbb1f1608d8317bea73234a5e)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 5e40c22a096ef6175b11206e276600782348306d)
@@ -29,6 +29,7 @@
import java.util.Map;
import java.util.Set;
+import org.apache.tomcat.util.json.JSONException;
import org.lamsfoundation.lams.confidencelevel.ConfidenceLevelDTO;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
import org.lamsfoundation.lams.tool.assessment.dto.AssessmentResultDTO;
@@ -533,4 +534,10 @@
Long getPortraitId(Long userId);
AssessmentQuestion getAssessmentQuestionByUid(Long questionUid);
+
+ /**
+ * Sends a websocket command to learners who have assessment results open
+ * to refresh page because new data is available
+ */
+ void notifyLearnersOnAnswerDisclose(long toolContentId) throws JSONException;
}
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/TblMonitoringAction.java
===================================================================
diff -u -r37945afeca0f748fbb1f1608d8317bea73234a5e -r5e40c22a096ef6175b11206e276600782348306d
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/TblMonitoringAction.java (.../TblMonitoringAction.java) (revision 37945afeca0f748fbb1f1608d8317bea73234a5e)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/TblMonitoringAction.java (.../TblMonitoringAction.java) (revision 5e40c22a096ef6175b11206e276600782348306d)
@@ -349,31 +349,41 @@
/**
* Allows displaying correct answers to learners
+ *
+ * @throws JSONException
*/
public ActionForward discloseCorrectAnswers(ActionMapping mapping, ActionForm form, HttpServletRequest request,
- HttpServletResponse response) {
- initAssessmentService();
-
+ HttpServletResponse response) throws JSONException {
Long questionUid = WebUtil.readLongParam(request, "questionUid");
+ Long toolContentId = WebUtil.readLongParam(request, AssessmentConstants.PARAM_TOOL_CONTENT_ID);
+
+ initAssessmentService();
AssessmentQuestion question = assessmentService.getAssessmentQuestionByUid(questionUid);
question.setCorrectAnswersDisclosed(true);
assessmentService.updateAssessmentQuestion(question);
+ assessmentService.notifyLearnersOnAnswerDisclose(toolContentId);
+
return null;
}
/**
* Allows displaying other groups' answers to learners
+ *
+ * @throws JSONException
*/
public ActionForward discloseGroupsAnswers(ActionMapping mapping, ActionForm form, HttpServletRequest request,
- HttpServletResponse response) {
- initAssessmentService();
-
+ HttpServletResponse response) throws JSONException {
Long questionUid = WebUtil.readLongParam(request, "questionUid");
+ Long toolContentId = WebUtil.readLongParam(request, AssessmentConstants.PARAM_TOOL_CONTENT_ID);
+
+ initAssessmentService();
AssessmentQuestion question = assessmentService.getAssessmentQuestionByUid(questionUid);
question.setGroupsAnswersDisclosed(true);
assessmentService.updateAssessmentQuestion(question);
+ assessmentService.notifyLearnersOnAnswerDisclose(toolContentId);
+
return null;
}
Index: lams_tool_assessment/web/pages/learning/results/tblsummary.jsp
===================================================================
diff -u -r37945afeca0f748fbb1f1608d8317bea73234a5e -r5e40c22a096ef6175b11206e276600782348306d
--- lams_tool_assessment/web/pages/learning/results/tblsummary.jsp (.../tblsummary.jsp) (revision 37945afeca0f748fbb1f1608d8317bea73234a5e)
+++ lams_tool_assessment/web/pages/learning/results/tblsummary.jsp (.../tblsummary.jsp) (revision 5e40c22a096ef6175b11206e276600782348306d)
@@ -1,3 +1,14 @@
+
+
+
Index: lams_tool_assessment/web/pages/tblmonitoring/assessment.jsp
===================================================================
diff -u -r85ec7090c5fa9da3cde91c145d90f3b4d3068dee -r5e40c22a096ef6175b11206e276600782348306d
--- lams_tool_assessment/web/pages/tblmonitoring/assessment.jsp (.../assessment.jsp) (revision 85ec7090c5fa9da3cde91c145d90f3b4d3068dee)
+++ lams_tool_assessment/web/pages/tblmonitoring/assessment.jsp (.../assessment.jsp) (revision 5e40c22a096ef6175b11206e276600782348306d)
@@ -46,8 +46,9 @@
$.ajax({
'url' : 'tblmonitoring.do',
'data' : {
- 'method' : isCorrectButton ? 'discloseCorrectAnswers' : 'discloseGroupsAnswers',
- 'questionUid' : button.closest('.disclose-button-group').attr('questionUid')
+ 'method' : isCorrectButton ? 'discloseCorrectAnswers' : 'discloseGroupsAnswers',
+ 'questionUid' : button.closest('.disclose-button-group').attr('questionUid'),
+ 'toolContentID' : $('#selected-content-id').val()
}
}).done(function(){
// disable the button after click