Index: lams_common/src/java/org/lamsfoundation/lams/qb/model/QbQuestion.java =================================================================== diff -u -r6bab11b98a1dfdcebfb7e11b8dcfab3128a2ff83 -r3b83454706f152d81a25b6c08444ceb3ce964638 --- lams_common/src/java/org/lamsfoundation/lams/qb/model/QbQuestion.java (.../QbQuestion.java) (revision 6bab11b98a1dfdcebfb7e11b8dcfab3128a2ff83) +++ lams_common/src/java/org/lamsfoundation/lams/qb/model/QbQuestion.java (.../QbQuestion.java) (revision 3b83454706f152d81a25b6c08444ceb3ce964638) @@ -492,6 +492,18 @@ this.codeStyle = codeStyle; } + public String getCodeStyleMime() { + switch (codeStyle) { + case 1: + return "text/x-java"; + case 2: + return "text/javascript"; + case 3: + return "text/x-python"; + } + return null; + } + public boolean isHedgingJustificationEnabled() { return hedgingJustificationEnabled; } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/QuestionDTO.java =================================================================== diff -u -rf86d00ef0e3fc17667feabcec9a04b4b3ca4d619 -r3b83454706f152d81a25b6c08444ceb3ce964638 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/QuestionDTO.java (.../QuestionDTO.java) (revision f86d00ef0e3fc17667feabcec9a04b4b3ca4d619) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/QuestionDTO.java (.../QuestionDTO.java) (revision 3b83454706f152d81a25b6c08444ceb3ce964638) @@ -342,6 +342,18 @@ this.codeStyle = codeStyle; } + public String getCodeStyleMime() { + switch (codeStyle) { + case 1: + return "text/x-java"; + case 2: + return "text/javascript"; + case 3: + return "text/x-python"; + } + return null; + } + public boolean isHedgingJustificationEnabled() { return hedgingJustificationEnabled; } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java =================================================================== diff -u -rf299a43b38f1c06f1c9a0810b3ae6205b10e0269 -r3b83454706f152d81a25b6c08444ceb3ce964638 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision f299a43b38f1c06f1c9a0810b3ae6205b10e0269) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 3b83454706f152d81a25b6c08444ceb3ce964638) @@ -72,6 +72,7 @@ import org.lamsfoundation.lams.tool.assessment.dto.QuestionSummary; import org.lamsfoundation.lams.tool.assessment.dto.ReflectDTO; import org.lamsfoundation.lams.tool.assessment.dto.UserSummary; +import org.lamsfoundation.lams.tool.assessment.dto.UserSummaryItem; import org.lamsfoundation.lams.tool.assessment.model.Assessment; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestion; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestionResult; @@ -206,6 +207,7 @@ // display student choices only if all questions are multiple choice boolean displayStudentChoices = true; int maxOptionsInQuestion = 0; + for (AssessmentQuestion question : assessment.getQuestions()) { if (question.getType() == QbQuestion.TYPE_MULTIPLE_CHOICE) { int optionsInQuestion = question.getQbQuestion().getQbOptions().size(); @@ -240,6 +242,14 @@ request.setAttribute("questions", questionDtos); } + // lists all code styles used in this assessment + Set codeStyles = questionList.stream().filter(q -> q.getQbQuestion().getCodeStyle() != null) + .collect(Collectors.mapping(q -> q.getQbQuestion().getCodeStyle(), Collectors.toSet())); + + if (!codeStyles.isEmpty()) { + request.setAttribute(AssessmentConstants.ATTR_CODE_STYLES, codeStyles); + } + return "pages/monitoring/monitoring"; } @@ -355,6 +365,15 @@ request.setAttribute(AssessmentConstants.ATTR_IS_QUESTION_ETHERPAD_ENABLED, questionEtherpadEnabled); request.setAttribute(AssessmentConstants.ATTR_TOOL_SESSION_ID, sessionId); + // lists all code styles used in this assessment + Set codeStyles = userSummary.getUserSummaryItems().stream().map(UserSummaryItem::getQuestionDto) + .filter(q -> q.getCodeStyle() != null) + .collect(Collectors.mapping(q -> q.getCodeStyle(), Collectors.toSet())); + + if (!codeStyles.isEmpty()) { + request.setAttribute(AssessmentConstants.ATTR_CODE_STYLES, codeStyles); + } + return "pages/monitoring/parts/usersummary"; } Index: lams_tool_assessment/web/pages/learning/parts/essay.jsp =================================================================== diff -u -r755036878445ffcbb4eae88f620229662e881fbb -r3b83454706f152d81a25b6c08444ceb3ce964638 --- lams_tool_assessment/web/pages/learning/parts/essay.jsp (.../essay.jsp) (revision 755036878445ffcbb4eae88f620229662e881fbb) +++ lams_tool_assessment/web/pages/learning/parts/essay.jsp (.../essay.jsp) (revision 3b83454706f152d81a25b6c08444ceb3ce964638) @@ -58,19 +58,9 @@ $(document).ready(function() { var codeArea = $('#essay-question${status.index}'), codeMirror = CodeMirror.fromTextArea(codeArea[0], { - 'mode' : - - - 'text/x-java' - - - 'text/javascript' - - - 'text/x-python' - - + 'mode' : '${question.codeStyleMime}' }), + // on the back end we keep essay answer lines
-separated, but CodeMirror uses \n content = codeMirror.getValue().replaceAll('
', '\n'); codeMirror.setValue(content); }); Index: lams_tool_assessment/web/pages/learning/results.jsp =================================================================== diff -u -rbfe812441181f7772a30d7ec2c6b043e1603fd2a -r3b83454706f152d81a25b6c08444ceb3ce964638 --- lams_tool_assessment/web/pages/learning/results.jsp (.../results.jsp) (revision bfe812441181f7772a30d7ec2c6b043e1603fd2a) +++ lams_tool_assessment/web/pages/learning/results.jsp (.../results.jsp) (revision 3b83454706f152d81a25b6c08444ceb3ce964638) @@ -9,9 +9,11 @@ + Index: lams_tool_assessment/web/pages/learning/results/essay.jsp =================================================================== diff -u -rbfe812441181f7772a30d7ec2c6b043e1603fd2a -r3b83454706f152d81a25b6c08444ceb3ce964638 --- lams_tool_assessment/web/pages/learning/results/essay.jsp (.../essay.jsp) (revision bfe812441181f7772a30d7ec2c6b043e1603fd2a) +++ lams_tool_assessment/web/pages/learning/results/essay.jsp (.../essay.jsp) (revision 3b83454706f152d81a25b6c08444ceb3ce964638) @@ -13,15 +13,9 @@ ${question.answer} - -
${question.answer}
-
- -
${question.answer}
-
- -
${question.answer}
-
+ +
${question.answer}
+
Index: lams_tool_assessment/web/pages/monitoring/monitoring.jsp =================================================================== diff -u -r1a6408137fed60838b5744155f0884381c37d2c0 -r3b83454706f152d81a25b6c08444ceb3ce964638 --- lams_tool_assessment/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 1a6408137fed60838b5744155f0884381c37d2c0) +++ lams_tool_assessment/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 3b83454706f152d81a25b6c08444ceb3ce964638) @@ -14,7 +14,10 @@ - + + + + @@ -101,8 +109,26 @@ - + + + + + <%-- codeStyles is a set, so each code style will be listed only once --%> + + + + + + + + + + + + + + Index: lams_tool_assessment/web/pages/monitoring/parts/questionsummary.jsp =================================================================== diff -u -rcf0eebcaab1317079c30cb1d4e056ba9dd4ec048 -r3b83454706f152d81a25b6c08444ceb3ce964638 --- lams_tool_assessment/web/pages/monitoring/parts/questionsummary.jsp (.../questionsummary.jsp) (revision cf0eebcaab1317079c30cb1d4e056ba9dd4ec048) +++ lams_tool_assessment/web/pages/monitoring/parts/questionsummary.jsp (.../questionsummary.jsp) (revision 3b83454706f152d81a25b6c08444ceb3ce964638) @@ -14,6 +14,9 @@ + + + - + + + + + + + + + + + + + + + + + + Index: lams_tool_assessment/web/pages/monitoring/parts/userresponse.jsp =================================================================== diff -u -r10e6a1f74ecf6ba2d60569e9b9677b88ed39650a -r3b83454706f152d81a25b6c08444ceb3ce964638 --- lams_tool_assessment/web/pages/monitoring/parts/userresponse.jsp (.../userresponse.jsp) (revision 10e6a1f74ecf6ba2d60569e9b9677b88ed39650a) +++ lams_tool_assessment/web/pages/monitoring/parts/userresponse.jsp (.../userresponse.jsp) (revision 3b83454706f152d81a25b6c08444ceb3ce964638) @@ -37,7 +37,7 @@ responseStr +="${fn:escapeXml(questionResult.answerEscaped)}"; - + responseStr +="${questionResult.answerEscaped}"; @@ -48,10 +48,14 @@ - + responseStr +="${questionResult.answerEscaped}"; - + + + responseStr +="
${questionResult.answerEscaped}
"; +
+ Index: lams_tool_assessment/web/pages/monitoring/parts/usersummary.jsp =================================================================== diff -u -rcf0eebcaab1317079c30cb1d4e056ba9dd4ec048 -r3b83454706f152d81a25b6c08444ceb3ce964638 --- lams_tool_assessment/web/pages/monitoring/parts/usersummary.jsp (.../usersummary.jsp) (revision cf0eebcaab1317079c30cb1d4e056ba9dd4ec048) +++ lams_tool_assessment/web/pages/monitoring/parts/usersummary.jsp (.../usersummary.jsp) (revision 3b83454706f152d81a25b6c08444ceb3ce964638) @@ -10,6 +10,10 @@ + + + + + + + + + + <%-- codeStyles is a set, so each code style will be listed only once --%> + + + + + + + + + + + + + +