Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java =================================================================== diff -u -r9091ed8c9bae9a48f88622c0c5031af2a39772dc -r1dc5f5ec294283f43ce1deaa33066bdf1190ff1d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java (.../McService.java) (revision 9091ed8c9bae9a48f88622c0c5031af2a39772dc) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java (.../McService.java) (revision 1dc5f5ec294283f43ce1deaa33066bdf1190ff1d) @@ -1057,17 +1057,18 @@ cell.setCellValue(rowCount); rowCount++; - int totalPercentage = 0; + Double totalPercentage = 0d; for (QbOption option : question.getQbQuestion().getQbOptions()) { int optionAttemptCount = getAttemptsCountPerOption(option.getUid(), question.getUid()); cell = row.createCell(count++); - int percentage = optionAttemptCount / totalNumberOfUsers; + Double percentage = (totalNumberOfUsers != 0) ? (double) optionAttemptCount / totalNumberOfUsers : 0d; cell.setCellValue(percentage); - CellUtil.setCellStyleProperty(cell, CellUtil.DATA_FORMAT, percentageFormat); - totalPercentage += percentage; if (option.isCorrect()) { cell.setCellStyle(greenColor); } + CellUtil.setCellStyleProperty(cell, CellUtil.DATA_FORMAT, percentageFormat); + + totalPercentage += percentage; } cell = row.createCell(maxOptionsInQuestion + 1); cell.setCellValue((1 - totalPercentage)); @@ -1133,7 +1134,7 @@ cell = row.createCell(count++); cell.setCellValue(messageService.getMessage("label.learner")); - ArrayList totalPercentList = new ArrayList<>(); + ArrayList totalPercentList = new ArrayList<>(); int[] numberOfCorrectAnswersPerQuestion = new int[questions.size()]; for (McSessionMarkDTO sessionMarkDTO : sessionMarkDTOs) { Map usersMarksMap = sessionMarkDTO.getUserMarks(); @@ -1163,7 +1164,7 @@ cell = row.createCell(count++); cell.setCellValue(new Long(userMark.getTotalMark())); - int totalPercents = numberOfCorrectlyAnsweredByUser / questions.size(); + Double totalPercents = questions.size() != 0 ? (double) numberOfCorrectlyAnsweredByUser / questions.size() : 0d; totalPercentList.add(totalPercents); cell = row.createCell(count++); cell.setCellValue(totalPercents); @@ -1180,22 +1181,23 @@ cell.setCellValue(messageService.getMessage("label.ave")); for (int numberOfCorrectAnswers : numberOfCorrectAnswersPerQuestion) { cell = row.createCell(count++); - cell.setCellValue(numberOfCorrectAnswers / totalPercentList.size()); + Double average = totalPercentList.size() == 0 ? 0d : (double) numberOfCorrectAnswers / totalPercentList.size(); + cell.setCellValue(average); CellUtil.setCellStyleProperty(cell, CellUtil.DATA_FORMAT, percentageFormat); } // class mean - Integer[] totalPercents = totalPercentList.toArray(new Integer[0]); + Double[] totalPercents = totalPercentList.toArray(new Double[0]); Arrays.sort(totalPercents); - int sum = 0; + Double sum = 0d; for (int i = 0; i < totalPercents.length; i++) { sum += totalPercents[i]; } row = sheet.createRow(rowCount++); cell = row.createCell(1); cell.setCellValue(messageService.getMessage("label.class.mean")); if (totalPercents.length != 0) { - int classMean = sum / totalPercents.length; + Double classMean = totalPercents.length == 0 ? 0d : sum / totalPercents.length; cell = row.createCell(questions.size() + 3); cell.setCellValue(classMean); CellUtil.setCellStyleProperty(cell, CellUtil.DATA_FORMAT, percentageFormat); @@ -1206,12 +1208,12 @@ cell = row.createCell(1); cell.setCellValue(messageService.getMessage("label.median")); if (totalPercents.length != 0) { - int median; + Double median; int middle = totalPercents.length / 2; if ((totalPercents.length % 2) == 1) { median = totalPercents[middle]; } else { - median = (int) ((totalPercents[middle - 1] + totalPercents[middle]) / 2.0); + median = ((totalPercents[middle - 1] + totalPercents[middle]) / 2.0); } cell = row.createCell(questions.size() + 3); cell.setCellValue(median); @@ -1296,23 +1298,20 @@ } rowCount++; - } ByteArrayOutputStream bos = new ByteArrayOutputStream(); wb.write(bos); byte[] data = bos.toByteArray(); - return data; } @Override public void copyToolContent(Long fromContentId, Long toContentId) { if (fromContentId == null) { logger.warn("fromContentId is null."); - long defaultContentId = getToolDefaultContentIdBySignature(McAppConstants.TOOL_SIGNATURE); - fromContentId = new Long(defaultContentId); + fromContentId = getToolDefaultContentIdBySignature(McAppConstants.TOOL_SIGNATURE); } if (toContentId == null) { Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McMonitoringController.java =================================================================== diff -u -re6dc4db4137cfd6b07a4aa79711b9d12b39fb78e -r1dc5f5ec294283f43ce1deaa33066bdf1190ff1d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McMonitoringController.java (.../McMonitoringController.java) (revision e6dc4db4137cfd6b07a4aa79711b9d12b39fb78e) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McMonitoringController.java (.../McMonitoringController.java) (revision 1dc5f5ec294283f43ce1deaa33066bdf1190ff1d) @@ -268,11 +268,9 @@ @RequestMapping(path = "/downloadMarks", method = RequestMethod.POST) public String downloadMarks(HttpServletRequest request, HttpServletResponse response) throws IOException { Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID, false); + McContent mcContent = mcService.getMcContent(toolContentID); - McContent mcContent = mcService.getMcContent(new Long(toolContentID)); - byte[] spreadsheet = null; - try { spreadsheet = mcService.prepareSessionDataSpreadsheet(mcContent); } catch (Exception e) { Index: lams_tool_lamc/web/authoring/AuthoringTabsHolder.jsp =================================================================== diff -u -re6dc4db4137cfd6b07a4aa79711b9d12b39fb78e -r1dc5f5ec294283f43ce1deaa33066bdf1190ff1d --- lams_tool_lamc/web/authoring/AuthoringTabsHolder.jsp (.../AuthoringTabsHolder.jsp) (revision e6dc4db4137cfd6b07a4aa79711b9d12b39fb78e) +++ lams_tool_lamc/web/authoring/AuthoringTabsHolder.jsp (.../AuthoringTabsHolder.jsp) (revision 1dc5f5ec294283f43ce1deaa33066bdf1190ff1d) @@ -75,7 +75,7 @@ - +