diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java index 93ecfed65f55e410543ce675469107aef7fa10b5..0a7bd1e8fe0c2b534223b3dbad45b5c197d16e33 100644 --- a/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java +++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java @@ -51,14 +51,20 @@ public class AssessmentEntryOutcomesListener implements OutcomesListener { private AssessmentEntry assessmentEntry; private final AssessmentService assessmentService; + private final RepositoryEntry entry; + private final RepositoryEntry testEntry; + private final boolean authorMode; private final boolean needManualCorrection; private AtomicBoolean start = new AtomicBoolean(true); private AtomicBoolean close = new AtomicBoolean(true); - public AssessmentEntryOutcomesListener(AssessmentEntry assessmentEntry, boolean needManualCorrection, + public AssessmentEntryOutcomesListener(RepositoryEntry entry, RepositoryEntry testEntry, + AssessmentEntry assessmentEntry, boolean needManualCorrection, AssessmentService assessmentService, boolean authorMode) { + this.entry = entry; + this.testEntry = testEntry; this.assessmentEntry = assessmentEntry; this.assessmentService = assessmentService; this.authorMode = authorMode; @@ -67,10 +73,11 @@ public class AssessmentEntryOutcomesListener implements OutcomesListener { @Override public void decorateConfirmation(AssessmentTestSession candidateSession, DigitalSignatureOptions options, Date timestamp, Locale locale) { - decorateResourceConfirmation(candidateSession, options, timestamp, locale); + decorateResourceConfirmation(entry, testEntry, candidateSession, options, timestamp, locale); } - public static void decorateResourceConfirmation(AssessmentTestSession candidateSession, DigitalSignatureOptions options, Date timestamp, Locale locale) { + public static void decorateResourceConfirmation(RepositoryEntry entry, RepositoryEntry testEntry, AssessmentTestSession candidateSession, + DigitalSignatureOptions options, Date timestamp, Locale locale) { MailBundle bundle = new MailBundle(); bundle.setToId(candidateSession.getIdentity()); String fullname = CoreSpringFactory.getImpl(UserManager.class).getUserDisplayName(candidateSession.getIdentity()); @@ -78,8 +85,6 @@ public class AssessmentEntryOutcomesListener implements OutcomesListener { Translator translator = Util.createPackageTranslator(QTI21RuntimeController.class, locale); - RepositoryEntry entry = candidateSession.getRepositoryEntry(); - RepositoryEntry testEntry = candidateSession.getTestEntry(); String[] args = new String[] { entry.getDisplayname(), // {0} entry.getKey().toString(), // {1} diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java index 1d49aa9a32a03b0cd3148761f360bea51565ba9f..4c57f68c40a58beea305d16206e5a69f63f85b73 100644 --- a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java +++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java @@ -310,7 +310,7 @@ public class AssessmentTestDisplayController extends BasicController implements AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, anonymousIdentifier, entry, subIdent, testEntry); if(outcomesListener == null) { boolean manualCorrections = AssessmentTestHelper.needManualCorrection(resolvedAssessmentTest); - outcomesListener = new AssessmentEntryOutcomesListener(assessmentEntry, manualCorrections, assessmentService, authorMode); + outcomesListener = new AssessmentEntryOutcomesListener(entry, testEntry, assessmentEntry, manualCorrections, assessmentService, authorMode); } AssessmentTestSession lastSession = qtiService.getResumableAssessmentTestSession(assessedIdentity, anonymousIdentifier, entry, subIdent, testEntry, authorMode); diff --git a/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentDetailsController.java b/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentDetailsController.java index 00dbae274541982eaabf3f69e9d9d72bed8e60c7..6cbf6f56dc01a635354553e7302ac3b30945c444 100644 --- a/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentDetailsController.java +++ b/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentDetailsController.java @@ -434,7 +434,7 @@ public class QTI21AssessmentDetailsController extends FormBasicController { DigitalSignatureOptions options = new DigitalSignatureOptions(digitalSignature, sendMail, entry, testEntry); if(digitalSignature) { if(courseNode == null) { - AssessmentEntryOutcomesListener.decorateResourceConfirmation(session, options, null, getLocale()); + AssessmentEntryOutcomesListener.decorateResourceConfirmation(entry, testEntry, session, options, null, getLocale()); } else { CourseEnvironment courseEnv = CourseFactory.loadCourse(entry).getCourseEnvironment(); QTI21AssessmentRunController.decorateCourseConfirmation(session, options, courseEnv, courseNode, sessionTestEntry, null, getLocale());