Index: lams_build/conf/slim/standalone.xml
===================================================================
diff -u -r4a13950e9817d6f085eba22ec4d685a7a09a36fc -rd411f14ac0e5cf4b3c477df36a2cae4b77cb84c1
--- lams_build/conf/slim/standalone.xml (.../standalone.xml) (revision 4a13950e9817d6f085eba22ec4d685a7a09a36fc)
+++ lams_build/conf/slim/standalone.xml (.../standalone.xml) (revision d411f14ac0e5cf4b3c477df36a2cae4b77cb84c1)
@@ -123,6 +123,16 @@
+
+
+
+
+
+
+
+
+
@@ -262,7 +272,16 @@
-
+
+
+
+
+
+
+
+
+
@@ -489,4 +508,4 @@
-
+
\ No newline at end of file
Index: lams_build/conf/standalone.xml
===================================================================
diff -u -r4a13950e9817d6f085eba22ec4d685a7a09a36fc -rd411f14ac0e5cf4b3c477df36a2cae4b77cb84c1
--- lams_build/conf/standalone.xml (.../standalone.xml) (revision 4a13950e9817d6f085eba22ec4d685a7a09a36fc)
+++ lams_build/conf/standalone.xml (.../standalone.xml) (revision d411f14ac0e5cf4b3c477df36a2cae4b77cb84c1)
@@ -152,6 +152,16 @@
+
+
+
+
+
+
+
+
+
@@ -291,7 +301,16 @@
-
+
+
+
+
+
+
+
+
+
@@ -680,4 +699,4 @@
-
+
\ No newline at end of file
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java
===================================================================
diff -u -r466b430b11cd214ae9c8a4737ea5f6ed9253ed27 -rd411f14ac0e5cf4b3c477df36a2cae4b77cb84c1
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 466b430b11cd214ae9c8a4737ea5f6ed9253ed27)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision d411f14ac0e5cf4b3c477df36a2cae4b77cb84c1)
@@ -157,6 +157,7 @@
implements IAssessmentService, ICommonAssessmentService, ToolContentManager, ToolSessionManager,
ToolRestManager, IQbToolService {
private static Logger log = Logger.getLogger(AssessmentServiceImpl.class.getName());
+ private static Logger logAutosave = Logger.getLogger(AssessmentServiceImpl.class.getName() + "_autosave");
private AssessmentDAO assessmentDao;
@@ -860,6 +861,21 @@
questionResult.getAnswerFloat(), questionDto.getAnswerFloat()) || !Objects.equals(
questionResult.getAnswer(), questionDto.getAnswer());
+ // this is for logging every autosave as requested by Imperial
+ // it produces a lot of logs, so it goes to a separate file
+ StringBuilder autosaveLogBuilder = null;
+ if (logAutosave.isTraceEnabled()) {
+ autosaveLogBuilder = new StringBuilder("For learner ").append(assessmentResult.getUser().getUid())
+ .append(" \"").append(assessmentResult.getUser().getLoginName()).append("\" for question ")
+ .append(questionDto.getUid()).append(" for question result ").append(questionResult.getUid())
+ .append(" answer was \"").append(questionResult.getAnswer()).append("\" and it is now \"")
+ .append(questionDto.getAnswer()).append("\", answerBoolean was \"")
+ .append(questionResult.getAnswerBoolean()).append("\" and it is now \"")
+ .append(questionDto.getAnswerBoolean()).append("\", answerFloat was \"")
+ .append(questionResult.getAnswerFloat()).append("\" and it is now \"")
+ .append(questionDto.getAnswerFloat()).append("\"");
+ }
+
// store question answer values
questionResult.setAnswerBoolean(questionDto.getAnswerBoolean());
questionResult.setAnswerFloat(questionDto.getAnswerFloat());
@@ -887,6 +903,12 @@
isAnswerModified |= !Objects.equals(optionAnswer.getAnswerBoolean(), optionDto.getAnswerBoolean());
}
+ if (logAutosave.isTraceEnabled()) {
+ autosaveLogBuilder.append(", for option ").append(optionDto.getUid()).append(" option result ")
+ .append(optionAnswer.getUid()).append(" was \"").append(optionAnswer.getAnswerBoolean())
+ .append("\" and it is now \"").append(optionDto.getAnswerBoolean()).append("\"");
+ }
+
// store option answer values
optionAnswer.setAnswerBoolean(optionDto.getAnswerBoolean());
if (questionDto.getType() == QbQuestion.TYPE_ORDERING) {
@@ -898,6 +920,10 @@
}
}
+ if (logAutosave.isTraceEnabled()) {
+ logAutosave.trace(autosaveLogBuilder);
+ }
+
// store confidence levels entered by the learner
if (assessment.isEnableConfidenceLevels()) {
isAnswerModified |= !Objects.equals(questionResult.getConfidenceLevel(), questionDto.getConfidenceLevel());