Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java =================================================================== diff -u -r10eba877611a9296e5959e3145b626771a844593 -rbdd3abc4e8371ce227cb000d5aac58fdb45077a5 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision 10eba877611a9296e5959e3145b626771a844593) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision bdd3abc4e8371ce227cb000d5aac58fdb45077a5) @@ -1145,19 +1145,6 @@ request.setAttribute("sessions", sessionList); Map questionSummaries = service.getQuestionSummaryForExport(assessment); - - // filter out empty results, when a group has not provided any answers - for (QuestionSummary questionSummary : questionSummaries.values()) { - Iterator> questionResultsIterator = questionSummary - .getQuestionResultsPerSession().iterator(); - while (questionResultsIterator.hasNext()) { - List questionResults = questionResultsIterator.next(); - if (questionResults == null || questionResults.isEmpty() - || questionResults.get(questionResults.size() - 1).getUid() == null) { - questionResultsIterator.remove(); - } - } - } request.setAttribute("questionSummaries", questionSummaries); // Assessment currently supports only one place for ratings. @@ -1186,6 +1173,7 @@ // Item IDs are AssessmentQuestionResults UIDs, i.e. a user answer for a particular question // Get all item IDs no matter which session they belong to. Set itemIds = questionSummaries.values().stream().flatMap(s -> s.getQuestionResultsPerSession().stream()) + .filter(l -> l != null && !l.isEmpty() && l.get(l.size() - 1).getUid() != null) .collect(Collectors.mapping(l -> l.get(l.size() - 1).getUid(), Collectors.toSet())); List itemRatingDtos = ratingService.getRatingCriteriaDtos(assessment.getContentId(), null, @@ -1208,12 +1196,13 @@ List questionResults = questionResultsPerSession .remove((int) userSessionIndex); - // user or his leader should rate all other groups' answers in order to show ratings left for own group - int expectedRatedItemCount = questionResults.size(); - Set questionItemIds = questionResultsPerSession.stream() + .filter(l -> l != null && !l.isEmpty() && l.get(l.size() - 1).getUid() != null) .collect(Collectors.mapping(l -> l.get(l.size() - 1).getUid(), Collectors.toSet())); + // user or his leader should rate all other groups' answers in order to show ratings left for own group + int expectedRatedItemCount = questionItemIds.size(); + // question results need to be in the same order as sessions, i.e. user group first questionResultsPerSession.add(0, questionResults); Index: lams_tool_assessment/web/pages/learning/results/essay.jsp =================================================================== diff -u -r10eba877611a9296e5959e3145b626771a844593 -rbdd3abc4e8371ce227cb000d5aac58fdb45077a5 --- lams_tool_assessment/web/pages/learning/results/essay.jsp (.../essay.jsp) (revision 10eba877611a9296e5959e3145b626771a844593) +++ lams_tool_assessment/web/pages/learning/results/essay.jsp (.../essay.jsp) (revision bdd3abc4e8371ce227cb000d5aac58fdb45077a5) @@ -42,8 +42,17 @@ - - + + <%-- If uid is NULL then it is a dummy session result, for a group that has not provided answers + Do not display the group's rating then --%> + + + + + + + +