Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -rff6537798655584102f5dba4dd2fc293f7186118 -r07bcc61910818da9a91481b71b90fba5f9020587 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision ff6537798655584102f5dba4dd2fc293f7186118) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 07bcc61910818da9a91481b71b90fba5f9020587) @@ -964,8 +964,20 @@ @Override public void loadupLastAttempt(Long assessmentUid, Long userId, List> pagedQuestionDtos) { + Assessment assessment = assessmentDao.getByUid(assessmentUid); + + // for non-leaders the result of the leader should be used instead + Long targetUserId = userId; + AssessmentUser user = getUserByIdAndContent(userId, assessment.getContentId()); + if (assessment.isUseSelectLeaderToolOuput()) { + AssessmentSession session = user.getSession(); + if (session.getGroupLeader() != null && !session.getGroupLeader().getUserId().equals(targetUserId)) { + targetUserId = session.getGroupLeader().getUserId(); + } + } + //get the latest result (it can be unfinished one) - AssessmentResult lastResult = getLastAssessmentResult(assessmentUid, userId); + AssessmentResult lastResult = getLastAssessmentResult(assessmentUid, targetUserId); //if there is no results yet - no action required if (lastResult == null) { return; @@ -974,7 +986,7 @@ //get the latest finished result (required for mark hedging type of questions only) AssessmentResult lastFinishedResult = null; if (lastResult.getFinishDate() == null) { - lastFinishedResult = getLastFinishedAssessmentResult(assessmentUid, userId); + lastFinishedResult = getLastFinishedAssessmentResult(assessmentUid, targetUserId); } for (Set questionsForOnePage : pagedQuestionDtos) {