use of org.olat.ims.qti21.ui.AssessmentTestDisplayController in project openolat by klemens.
the class IQConfigurationController method doPreview.
private void doPreview(UserRequest ureq) {
removeAsListenerAndDispose(previewLayoutCtr);
RepositoryEntry re = getIQReference();
if (re != null) {
Controller previewController;
if (OnyxModule.isOnyxTest(re.getOlatResource())) {
showError("error.onyx");
} else if (ImsQTI21Resource.TYPE_NAME.equals(re.getOlatResource().getResourceableTypeName())) {
// clean up last session
cleanUpQti21PreviewSession();
// need to clean up the assessment test session
QTI21DeliveryOptions deliveryOptions = qti21service.getDeliveryOptions(re);
QTI21OverrideOptions overrideOptions = QTI21OverrideOptions.nothingOverriden();
RepositoryEntry courseEntry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
previewQTI21Ctrl = new AssessmentTestDisplayController(ureq, getWindowControl(), new InMemoryOutcomeListener(), re, courseEntry, courseNode.getIdent(), deliveryOptions, overrideOptions, true, true, true);
listenTo(previewQTI21Ctrl);
stackPanel.pushController(translate("preview"), previewQTI21Ctrl);
} else {
long courseResId = course.getResourceableId().longValue();
previewController = iqManager.createIQDisplayController(moduleConfiguration, new IQPreviewSecurityCallback(), ureq, getWindowControl(), courseResId, courseNode.getIdent(), null);
previewLayoutCtr = new LayoutMain3ColsController(ureq, getWindowControl(), previewController);
stackPanel.pushController(translate("preview"), previewLayoutCtr);
}
}
}
use of org.olat.ims.qti21.ui.AssessmentTestDisplayController in project OpenOLAT by OpenOLAT.
the class QTI21AssessmentRunController method doStart.
private void doStart(UserRequest ureq) {
removeAsListenerAndDispose(displayCtrl);
OLATResourceable ores = OresHelper.createOLATResourceableTypeWithoutCheck("test");
ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores));
WindowControl bwControl = addToHistory(ureq, ores, null);
RepositoryEntry courseRe = userCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
displayCtrl = new AssessmentTestDisplayController(ureq, bwControl, this, testEntry, courseRe, courseNode.getIdent(), deliveryOptions, overrideOptions, true, false, false);
listenTo(displayCtrl);
if (displayCtrl.getAssessmentTest() == null) {
logError("Test cannot be read: " + testEntry + " in course: " + courseRe + " element: " + courseNode.getIdent(), null);
showError("error.resource.corrupted");
} else if (displayCtrl.isEnded()) {
if (!displayCtrl.isResultsVisible()) {
doExitAssessment(ureq, null, true);
initAssessment(ureq);
}
} else {
// in case displayController was unable to initialize, a message was set by displayController
// this is the case if no more attempts or security check was unsuccessfull
displayContainerController = new QTI21AssessmentMainLayoutController(ureq, getWindowControl(), displayCtrl);
// autodispose
listenTo(displayContainerController);
// empty panel set as "menu" and "tool"
Panel empty = new Panel("empty");
Controller courseCloser = new DisposedCourseRestartController(ureq, getWindowControl(), courseRe);
Controller disposedRestartController = new LayoutMain3ColsController(ureq, getWindowControl(), empty, courseCloser.getInitialComponent(), "disposed");
displayContainerController.setDisposedMessageController(disposedRestartController);
boolean fullWindow = deliveryOptions.isHideLms();
if (fullWindow) {
displayContainerController.setAsFullscreen(ureq);
}
displayContainerController.activate();
assessmentStopped = false;
singleUserEventCenter.registerFor(this, getIdentity(), assessmentInstanceOres);
singleUserEventCenter.fireEventToListenersOf(new AssessmentEvent(AssessmentEvent.TYPE.STARTED, ureq.getUserSession()), assessmentEventOres);
ThreadLocalUserActivityLogger.log(QTI21LoggingAction.QTI_START_IN_COURSE, getClass());
}
}
use of org.olat.ims.qti21.ui.AssessmentTestDisplayController in project OpenOLAT by OpenOLAT.
the class IQConfigurationController method doPreview.
private void doPreview(UserRequest ureq) {
removeAsListenerAndDispose(previewLayoutCtr);
RepositoryEntry re = getIQReference();
if (re != null) {
Controller previewController;
if (OnyxModule.isOnyxTest(re.getOlatResource())) {
showError("error.onyx");
} else if (ImsQTI21Resource.TYPE_NAME.equals(re.getOlatResource().getResourceableTypeName())) {
// clean up last session
cleanUpQti21PreviewSession();
// need to clean up the assessment test session
QTI21DeliveryOptions deliveryOptions = qti21service.getDeliveryOptions(re);
QTI21OverrideOptions overrideOptions = QTI21OverrideOptions.nothingOverriden();
RepositoryEntry courseEntry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
previewQTI21Ctrl = new AssessmentTestDisplayController(ureq, getWindowControl(), new InMemoryOutcomeListener(), re, courseEntry, courseNode.getIdent(), deliveryOptions, overrideOptions, true, true, true);
listenTo(previewQTI21Ctrl);
stackPanel.pushController(translate("preview"), previewQTI21Ctrl);
} else {
long courseResId = course.getResourceableId().longValue();
previewController = iqManager.createIQDisplayController(moduleConfiguration, new IQPreviewSecurityCallback(), ureq, getWindowControl(), courseResId, courseNode.getIdent(), null);
previewLayoutCtr = new LayoutMain3ColsController(ureq, getWindowControl(), previewController);
stackPanel.pushController(translate("preview"), previewLayoutCtr);
}
}
}
use of org.olat.ims.qti21.ui.AssessmentTestDisplayController in project openolat by klemens.
the class QTI21AssessmentRunController method doStart.
private void doStart(UserRequest ureq) {
removeAsListenerAndDispose(displayCtrl);
OLATResourceable ores = OresHelper.createOLATResourceableTypeWithoutCheck("test");
ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores));
WindowControl bwControl = addToHistory(ureq, ores, null);
RepositoryEntry courseRe = userCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
displayCtrl = new AssessmentTestDisplayController(ureq, bwControl, this, testEntry, courseRe, courseNode.getIdent(), deliveryOptions, overrideOptions, true, false, false);
listenTo(displayCtrl);
if (displayCtrl.getAssessmentTest() == null) {
logError("Test cannot be read: " + testEntry + " in course: " + courseRe + " element: " + courseNode.getIdent(), null);
showError("error.resource.corrupted");
} else if (displayCtrl.isEnded()) {
if (!displayCtrl.isResultsVisible()) {
doExitAssessment(ureq, null, true);
initAssessment(ureq);
}
} else {
// in case displayController was unable to initialize, a message was set by displayController
// this is the case if no more attempts or security check was unsuccessfull
displayContainerController = new QTI21AssessmentMainLayoutController(ureq, getWindowControl(), displayCtrl);
// autodispose
listenTo(displayContainerController);
// empty panel set as "menu" and "tool"
Panel empty = new Panel("empty");
Controller courseCloser = new DisposedCourseRestartController(ureq, getWindowControl(), courseRe);
Controller disposedRestartController = new LayoutMain3ColsController(ureq, getWindowControl(), empty, courseCloser.getInitialComponent(), "disposed");
displayContainerController.setDisposedMessageController(disposedRestartController);
boolean fullWindow = deliveryOptions.isHideLms();
if (fullWindow) {
displayContainerController.setAsFullscreen(ureq);
}
displayContainerController.activate();
assessmentStopped = false;
singleUserEventCenter.registerFor(this, getIdentity(), assessmentInstanceOres);
singleUserEventCenter.fireEventToListenersOf(new AssessmentEvent(AssessmentEvent.TYPE.STARTED, ureq.getUserSession()), assessmentEventOres);
ThreadLocalUserActivityLogger.log(QTI21LoggingAction.QTI_START_IN_COURSE, getClass());
}
}
Aggregations