Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r4a3f535791663e116bc76960f4fc1a4933eacabd -rcf0eebcaab1317079c30cb1d4e056ba9dd4ec048 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 4a3f535791663e116bc76960f4fc1a4933eacabd) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision cf0eebcaab1317079c30cb1d4e056ba9dd4ec048) @@ -1955,177 +1955,6 @@ } } - /* - * ------------------------------------------------------------------ - * // -------------- Third tab: User Summary --------------------------- - * - * ExcelSheet userSummarySheet = new ExcelSheet(getMessage("label.export.summary.by.user")); - * sheets.add(userSummarySheet); - * - * // Create the question summary - * ExcelRow userSummaryTitle = userSummarySheet.initRow(); - * userSummaryTitle.addCell(getMessage("label.export.user.summary"), true); - * - * ExcelRow summaryRowTitle = userSummarySheet.initRow(); - * summaryRowTitle.addCell("#", true, ExcelCell.BORDER_STYLE_BOTTOM_THIN); - * summaryRowTitle.addCell(getMessage("label.monitoring.question.summary.question"), true, - * ExcelCell.BORDER_STYLE_BOTTOM_THIN); - * summaryRowTitle.addCell(getMessage("label.authoring.basic.list.header.type"), true, - * ExcelCell.BORDER_STYLE_BOTTOM_THIN); - * summaryRowTitle.addCell(getMessage("label.authoring.basic.penalty.factor"), true, - * ExcelCell.BORDER_STYLE_BOTTOM_THIN); - * summaryRowTitle.addCell(getMessage("label.monitoring.question.summary.default.mark"), true, - * ExcelCell.BORDER_STYLE_BOTTOM_THIN); - * summaryRowTitle.addCell(getMessage("label.monitoring.question.summary.average.mark"), true, - * ExcelCell.BORDER_STYLE_BOTTOM_THIN); - * - * Float totalGradesPossible = 0F; - * Float totalAverage = 0F; - * int questionIndex = 1; - * if (assessment.getQuestionReferences() != null) { - * Set questionReferences = new TreeSet<>(new SequencableComparator()); - * questionReferences.addAll(assessment.getQuestionReferences()); - * - * int randomQuestionsCount = 1; - * for (QuestionReference questionReference : questionReferences) { - * - * String title; - * String questionType; - * Float penaltyFactor; - * Float averageMark = null; - * if (questionReference.isRandomQuestion()) { - * - * title = getMessage("label.authoring.basic.type.random.question") + randomQuestionsCount++; - * questionType = getMessage("label.authoring.basic.type.random.question"); - * penaltyFactor = null; - * averageMark = null; - * } else { - * - * AssessmentQuestion question = questionReference.getQuestion(); - * title = question.getQbQuestion().getName(); - * questionType = AssessmentServiceImpl.getQuestionTypeLanguageLabel(question.getType()); - * penaltyFactor = question.getQbQuestion().getPenaltyFactor(); - * - * QuestionSummary questionSummary = questionSummaries.get(question.getUid()); - * if (questionSummary != null) { - * averageMark = questionSummary.getAverageMark(); - * totalAverage += questionSummary.getAverageMark(); - * } - * } - * - * int maxGrade = questionReference.getMaxMark(); - * totalGradesPossible += maxGrade; - * - * ExcelRow questCellRow = userSummarySheet.initRow(); - * questCellRow.addCell(questionIndex++); - * questCellRow.addCell(title); - * questCellRow.addCell(questionType); - * questCellRow.addCell(penaltyFactor); - * questCellRow.addCell(maxGrade); - * questCellRow.addCell(averageMark); - * } - * - * if (totalGradesPossible.floatValue() > 0) { - * ExcelRow totalCellRow = userSummarySheet.initRow(); - * totalCellRow.addEmptyCells(2); - * totalCellRow.addCell(getMessage("label.monitoring.summary.total"), true); - * totalCellRow.addCell(totalGradesPossible); - * totalCellRow.addCell(totalAverage); - * } - * userSummarySheet.addEmptyRow(); - * } - * - * if (sessionDtos != null) { - * List assessmentResults = assessmentResultDao - * .getLastFinishedAssessmentResults(assessment.getContentId()); - * Map userUidToResultMap = new HashMap<>(); - * for (AssessmentResult assessmentResult : assessmentResults) { - * userUidToResultMap.put(assessmentResult.getUser().getUid(), assessmentResult); - * } - * - * for (SessionDTO sessionDTO : sessionDtos) { - * userSummarySheet.addEmptyRow(); - * - * ExcelRow sessionTitle = userSummarySheet.initRow(); - * sessionTitle.addCell(sessionDTO.getSessionName(), true); - * - * AssessmentSession assessmentSession = getSessionBySessionId(sessionDTO.getSessionId()); - * Set assessmentUsers = assessmentSession.getAssessmentUsers(); - * if (assessmentUsers != null) { - * for (AssessmentUser assessmentUser : assessmentUsers) { - * ExcelRow userTitleRow = userSummarySheet.initRow(); - * userTitleRow.addCell(getMessage("label.export.user.id"), true); - * userTitleRow.addCell(getMessage("label.monitoring.user.summary.full.name"), true); - * userTitleRow.addCell(getMessage("label.export.date.attempted"), true); - * userTitleRow.addCell(getMessage("label.monitoring.question.summary.question"), true); - * userTitleRow.addCell(getMessage("label.authoring.basic.option.answer"), true); - * if (assessment.isEnableConfidenceLevels()) { - * userTitleRow.addCell(getMessage("label.confidence"), true); - * } - * userTitleRow.addCell(getMessage("label.export.mark"), true); - * - * if (assessment.isAllowAnswerJustification()) { - * userTitleRow.addCell(getMessage("label.answer.justification"), true); - * } - * - * AssessmentResult assessmentResult = userUidToResultMap.get(assessmentUser.getUid()); - * if (assessmentResult != null) { - * Set questionResults = assessmentResult.getQuestionResults(); - * if (questionResults != null) { - * for (AssessmentQuestionResult questionResult : questionResults) { - * ExcelRow userResultRow = userSummarySheet.initRow(); - * userResultRow.addCell(assessmentUser.getLoginName()); - * userResultRow.addCell(assessmentUser.getFullName()); - * userResultRow.addCell(assessmentResult.getStartDate()); - * userResultRow.addCell(questionResult.getQbQuestion().getName()); - * - * AssessmentEscapeUtils.addResponseCellForExcelExport(questionResult, - * userResultRow, false); - * - * if (assessment.isEnableConfidenceLevels()) { - * String confidenceLevel = null; - * - * switch (assessment.getConfidenceLevelsType()) { - * case 2: - * confidenceLevel = new String[] { getMessage("label.not.confident"), - * getMessage("label.confident"), - * getMessage("label.very.confident") }[questionResult - * .getConfidenceLevel() / 5]; - * break; - * case 3: - * confidenceLevel = new String[] { getMessage("label.not.sure"), - * getMessage("label.sure"), - * getMessage("label.very.sure") }[questionResult - * .getConfidenceLevel() / 5]; - * break; - * default: - * confidenceLevel = questionResult.getConfidenceLevel() * 10 + "%"; - * } - * - * userResultRow.addCell(confidenceLevel); - * } - * - * userResultRow.addCell(questionResult.getMark()); - * - * if (assessment.isAllowAnswerJustification()) { - * userResultRow.addCell(AssessmentEscapeUtils - * .escapeStringForExcelExport(questionResult.getJustification())); - * } - * } - * } - * - * ExcelRow userTotalRow = userSummarySheet.initRow(); - * userTotalRow.addEmptyCells(assessment.isEnableConfidenceLevels() ? 5 : 4); - * userTotalRow.addCell(getMessage("label.monitoring.summary.total"), true); - * userTotalRow.addCell(assessmentResult.getGrade()); - * userSummarySheet.addEmptyRow(); - * } - * } - * } - * } - * } - */ - // ------------------------------------------------------------------ // -------------- Third tab: Learner summary --------------------------- @@ -2175,7 +2004,7 @@ if (addAnsweredDateColumn) { columnShift++; } - if (assessment.isEnableConfidenceLevels()) { + if (assessment.isEnableConfidenceLevels() && QbQuestion.TYPE_MARK_HEDGING != question.getType()) { columnShift++; } questionTitlesRow.addEmptyCells(columnShift); @@ -2203,7 +2032,7 @@ if (addAnsweredDateColumn) { userSummaryUserHeadersRow.addCell(getMessage("monitor.summary.after.date")); } - if (assessment.isEnableConfidenceLevels()) { + if (assessment.isEnableConfidenceLevels() && QbQuestion.TYPE_MARK_HEDGING != question.getType()) { userSummaryUserHeadersRow.addCell(getMessage("label.confidence")); } } @@ -2274,7 +2103,8 @@ } // confidence level - if (assessment.isEnableConfidenceLevels()) { + if (assessment.isEnableConfidenceLevels() + && QbQuestion.TYPE_MARK_HEDGING != question.getType()) { String confidenceLevel = null; switch (assessment.getConfidenceLevelsType()) { @@ -3938,7 +3768,8 @@ // TODO Implement REST support for all types and then remove checkType method void checkType(Integer type) throws IOException { - if ((type != QbQuestion.TYPE_ESSAY) && (type != QbQuestion.TYPE_MULTIPLE_CHOICE) && (type != QbQuestion.TYPE_MARK_HEDGING)) { + if ((type != QbQuestion.TYPE_ESSAY) && (type != QbQuestion.TYPE_MULTIPLE_CHOICE) + && (type != QbQuestion.TYPE_MARK_HEDGING)) { throw new IOException( "Assessment Tool does not support REST Authoring for anything but Essay, Multiple Choice and Mark Hedging types. Found type " + type); Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/util/AssessmentEscapeUtils.java =================================================================== diff -u -r5aabc63ac1eb20bb16e7b586981129b3208323e3 -rcf0eebcaab1317079c30cb1d4e056ba9dd4ec048 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/util/AssessmentEscapeUtils.java (.../AssessmentEscapeUtils.java) (revision 5aabc63ac1eb20bb16e7b586981129b3208323e3) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/util/AssessmentEscapeUtils.java (.../AssessmentEscapeUtils.java) (revision cf0eebcaab1317079c30cb1d4e056ba9dd4ec048) @@ -261,7 +261,8 @@ case QbQuestion.TYPE_MATCHING_PAIRS: return AssessmentEscapeUtils.getOptionResponse(questionResult, QbQuestion.TYPE_MATCHING_PAIRS, false); case QbQuestion.TYPE_MULTIPLE_CHOICE: - return AssessmentEscapeUtils.getOptionResponse(questionResult, QbQuestion.TYPE_MULTIPLE_CHOICE, + case QbQuestion.TYPE_MARK_HEDGING: + return AssessmentEscapeUtils.getOptionResponse(questionResult, questionResult.getQbQuestion().getType(), useLettersForMcq); case QbQuestion.TYPE_NUMERICAL: return new AssessmentExcelCell(questionResult.getAnswer(), false); @@ -273,8 +274,6 @@ boolean isCorrect = questionResult.getQbQuestion().getCorrectAnswer() == questionResult .getAnswerBoolean(); return new AssessmentExcelCell(questionResult.getAnswerBoolean(), isCorrect); - case QbQuestion.TYPE_MARK_HEDGING: - //taken care beforehand } return null; } @@ -297,15 +296,19 @@ List options = questionResult.getQbQuestion().getQbOptions(); Set optionAnswers = questionResult.getOptionAnswers(); if (optionAnswers != null) { - if (type == QbQuestion.TYPE_MULTIPLE_CHOICE) { - highlightCell = true; + if (type == QbQuestion.TYPE_MULTIPLE_CHOICE || type == QbQuestion.TYPE_MARK_HEDGING) { + highlightCell = type == QbQuestion.TYPE_MULTIPLE_CHOICE; int letter = 'A'; for (QbOption option : options) { for (AssessmentOptionAnswer optionAnswer : optionAnswers) { if (option.getUid().equals(optionAnswer.getOptionUid())) { - if (optionAnswer.getAnswerBoolean()) { + if (optionAnswer.getAnswerBoolean() || type == QbQuestion.TYPE_MARK_HEDGING) { // either we display full answers or just letters of chosen options - sb.append((useLettersForMcq ? String.valueOf((char) letter) : option.getName()) + ", "); + sb.append(useLettersForMcq ? String.valueOf((char) letter) : option.getName()); + if (type == QbQuestion.TYPE_MARK_HEDGING) { + sb.append('=').append(optionAnswer.getAnswerInt()); + } + sb.append(','); trimLastComma = true; // if any answer is wrong, we do not highlight correct answer @@ -353,8 +356,6 @@ } - } else if (type == QbQuestion.TYPE_MARK_HEDGING) { - //taken care beforehand } } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java =================================================================== diff -u -r7b189d6353baf83e0218dd064ef543d53b555a99 -rcf0eebcaab1317079c30cb1d4e056ba9dd4ec048 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision 7b189d6353baf83e0218dd064ef543d53b555a99) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision cf0eebcaab1317079c30cb1d4e056ba9dd4ec048) @@ -898,13 +898,6 @@ } } - // store confidence level entered by the learner - if (assessment.isEnableConfidenceLevels()) { - int confidenceLevel = WebUtil.readIntParam(request, - AssessmentConstants.ATTR_CONFIDENCE_LEVEL_PREFIX + i); - questionDto.setConfidenceLevel(confidenceLevel); - } - // store justification entered by the learner if (assessment.isAllowAnswerJustification()) { String justification = WebUtil.readStrParam(request, Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java =================================================================== diff -u -r8d440baa0d18441b56553aabcc56e1981a84b206 -rcf0eebcaab1317079c30cb1d4e056ba9dd4ec048 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 8d440baa0d18441b56553aabcc56e1981a84b206) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision cf0eebcaab1317079c30cb1d4e056ba9dd4ec048) @@ -600,7 +600,8 @@ userData.add(questionResult.getMark()); // show confidence levels if this feature is turned ON if (assessment.isEnableConfidenceLevels()) { - userData.add(questionResult.getConfidenceLevel()); + userData.add(questionResult.getQbQuestion().getType().equals(QbQuestion.TYPE_MARK_HEDGING) ? -1 + : questionResult.getConfidenceLevel()); } // show average rating Index: lams_tool_assessment/web/pages/learning/parts/allquestions.jsp =================================================================== diff -u -r47af8921ff7d63addfeff2b9624c23fa0602bf63 -rcf0eebcaab1317079c30cb1d4e056ba9dd4ec048 --- lams_tool_assessment/web/pages/learning/parts/allquestions.jsp (.../allquestions.jsp) (revision 47af8921ff7d63addfeff2b9624c23fa0602bf63) +++ lams_tool_assessment/web/pages/learning/parts/allquestions.jsp (.../allquestions.jsp) (revision cf0eebcaab1317079c30cb1d4e056ba9dd4ec048) @@ -87,7 +87,7 @@ - + <%@ include file="confidencelevel.jsp"%> Index: lams_tool_assessment/web/pages/learning/results/allquestions.jsp =================================================================== diff -u -r98529fd912f46939ad7153588b11cf168b5717a3 -rcf0eebcaab1317079c30cb1d4e056ba9dd4ec048 --- lams_tool_assessment/web/pages/learning/results/allquestions.jsp (.../allquestions.jsp) (revision 98529fd912f46939ad7153588b11cf168b5717a3) +++ lams_tool_assessment/web/pages/learning/results/allquestions.jsp (.../allquestions.jsp) (revision cf0eebcaab1317079c30cb1d4e056ba9dd4ec048) @@ -167,7 +167,7 @@ <%@ include file="historyresponses.jsp"%> - + <%@ include file="confidencelevel.jsp"%> Index: lams_tool_assessment/web/pages/monitoring/parts/masterDetailLoadUp.jsp =================================================================== diff -u -r394f403c289f0fd7808c228840bead5c4e7d5d32 -rcf0eebcaab1317079c30cb1d4e056ba9dd4ec048 --- lams_tool_assessment/web/pages/monitoring/parts/masterDetailLoadUp.jsp (.../masterDetailLoadUp.jsp) (revision 394f403c289f0fd7808c228840bead5c4e7d5d32) +++ lams_tool_assessment/web/pages/monitoring/parts/masterDetailLoadUp.jsp (.../masterDetailLoadUp.jsp) (revision cf0eebcaab1317079c30cb1d4e056ba9dd4ec048) @@ -20,7 +20,7 @@ title:"${fn:escapeXml(title)}", response:responseStr, - confidence:"${questionResult.confidenceLevel}", + confidence:"${question.type == 8 ? -1 : questionResult.confidenceLevel}", grade:"" }); Index: lams_tool_assessment/web/pages/monitoring/parts/questionsummary.jsp =================================================================== diff -u -rf0068e90a28f3a71beaf98290e197476e53f9c11 -rcf0eebcaab1317079c30cb1d4e056ba9dd4ec048 --- lams_tool_assessment/web/pages/monitoring/parts/questionsummary.jsp (.../questionsummary.jsp) (revision f0068e90a28f3a71beaf98290e197476e53f9c11) +++ lams_tool_assessment/web/pages/monitoring/parts/questionsummary.jsp (.../questionsummary.jsp) (revision cf0eebcaab1317079c30cb1d4e056ba9dd4ec048) @@ -83,7 +83,7 @@ 'maxMark', "", "", - + "", @@ -101,7 +101,7 @@ return definePortraitPopover(rowObject[rowObject.length - 1], rowObject[rowObject.length - 2], rowObject[2]); }}, {name:'grade', index:'grade', width:30, sorttype:"float", search:false, editable:true, editoptions: {size:4, maxlength: 4}, align:"right", classes: 'vertical-align' }, - + {name:'confidence', index:'confidence', width: 80, search:false, classes: 'vertical-align', formatter: gradientNumberFormatter}, Index: lams_tool_assessment/web/pages/monitoring/parts/usersummary.jsp =================================================================== diff -u -r952a9a9bb86760e4e827fb763008efb0aaaa54bc -rcf0eebcaab1317079c30cb1d4e056ba9dd4ec048 --- lams_tool_assessment/web/pages/monitoring/parts/usersummary.jsp (.../usersummary.jsp) (revision 952a9a9bb86760e4e827fb763008efb0aaaa54bc) +++ lams_tool_assessment/web/pages/monitoring/parts/usersummary.jsp (.../usersummary.jsp) (revision cf0eebcaab1317079c30cb1d4e056ba9dd4ec048) @@ -55,7 +55,7 @@ 'questionResultUid', "", "", - + "", "" @@ -65,7 +65,7 @@ {name:'questionResultUid', index:'questionResultUid', width:0, hidden: true}, {name:'time', index:'time', width:150, sorttype:'date', datefmt:'Y-m-d'}, {name:'response', index:'response', width:341, sortable:false}, - + {name:'confidence', index:'confidence', width: 80, classes: 'vertical-align', formatter: gradientNumberFormatter}, {name:'grade', index:'grade', width:80, sorttype:"float", editable:true, editoptions: {size:4, maxlength: 4}, align:"right", classes: 'vertical-align' }