From b0d7dcc0a7a33d6cdcc14dab3f8510ed4be2b8b3 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 8 Mar 2017 16:56:24 +0100 Subject: [PATCH] OO-2522: only save the assessment id if available to not loose it, fallback in QTI 2.1 to see the last session if the assessment id is not available --- .../assessment/manager/CourseAssessmentManagerImpl.java | 4 +++- .../org/olat/course/assessment/ui/tool/AssessmentForm.java | 2 +- .../olat/course/nodes/iq/QTI21AssessmentRunController.java | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java b/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java index 36000ae346d..a59ec52b898 100644 --- a/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java +++ b/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java @@ -267,7 +267,9 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { } assessmentEntry.setPassed(passed); assessmentEntry.setFullyAssessed(scoreEvaluation.getFullyAssessed()); - assessmentEntry.setAssessmentId(assessmentId); + if(assessmentId != null) { + assessmentEntry.setAssessmentId(assessmentId); + } if(scoreEvaluation.getAssessmentStatus() != null) { assessmentEntry.setAssessmentStatus(scoreEvaluation.getAssessmentStatus()); } diff --git a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentForm.java b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentForm.java index 90afaf3c374..87c5db72387 100644 --- a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentForm.java +++ b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentForm.java @@ -276,7 +276,7 @@ public class AssessmentForm extends FormBasicController { protected void doUpdateAssessmentData(boolean setAsDone) { Float updatedScore = null; Boolean updatedPassed = null; - + if (isHasAttempts() && isAttemptsDirty()) { assessableCourseNode.updateUserAttempts(new Integer(getAttempts()), assessedUserCourseEnv, getIdentity()); } diff --git a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java index 8908186e220..29e89cdd300 100644 --- a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java +++ b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java @@ -442,7 +442,12 @@ public class QTI21AssessmentRunController extends BasicController implements Gen } else { AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); AssessmentEntry assessmentEntry = am.getAssessmentEntry(courseNode, getIdentity()); - session = qtiService.getAssessmentTestSession(assessmentEntry.getAssessmentId()); + if(assessmentEntry.getAssessmentId() != null) { + session = qtiService.getAssessmentTestSession(assessmentEntry.getAssessmentId()); + } else { + RepositoryEntry courseEntry = userCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry(); + session = qtiService.getLastAssessmentTestSessions(courseEntry, courseNode.getIdent(), testEntry, getIdentity()); + } } if(session == null) { -- GitLab