Search in sources :

Example 11 with QTI21DeliveryOptions

use of org.olat.ims.qti21.QTI21DeliveryOptions in project openolat by klemens.

the class IQConfigurationController method updateEditController.

/**
 * Update the edit and layout controllers.
 *
 * @param ureq The user request
 * @param replacedTest Set true if the test was replaced by a new one.
 */
protected void updateEditController(UserRequest ureq, boolean replacedTest) {
    removeAsListenerAndDispose(mod12ConfigForm);
    removeAsListenerAndDispose(mod21ConfigForm);
    mod12ConfigForm = null;
    mod21ConfigForm = null;
    RepositoryEntry re = getIQReference();
    if (re == null) {
        myContent.remove("iqeditform");
    } else if (ImsQTI21Resource.TYPE_NAME.equals(re.getOlatResource().getResourceableTypeName())) {
        boolean needManualCorrection = false;
        try {
            // in case of an unreadable test
            needManualCorrection = needManualCorrectionQTI21(re);
        } catch (Exception e) {
            logError("Test cannot be read: " + re, e);
            showError("error.resource.corrupted");
        }
        if (replacedTest) {
            // set some default settings in case the user don't save the next panel
            moduleConfiguration.setStringValue(IQEditController.CONFIG_CORRECTION_MODE, needManualCorrection ? "manual" : "auto");
            fireEvent(ureq, NodeEditController.NODECONFIG_CHANGED_EVENT);
        }
        QTI21DeliveryOptions deliveryOptions = qti21service.getDeliveryOptions(re);
        mod21ConfigForm = new QTI21EditForm(ureq, getWindowControl(), moduleConfiguration, deliveryOptions, needManualCorrection);
        mod21ConfigForm.update(re);
        listenTo(mod21ConfigForm);
        myContent.put("iqeditform", mod21ConfigForm.getInitialComponent());
    } else if (OnyxModule.isOnyxTest(re.getOlatResource())) {
        myContent.remove("iqeditform");
        showError("error.onyx");
    } else {
        boolean hasEssay = needManualCorrectionQTI12(re);
        if (replacedTest) {
            // set some default settings in case the user don't save the next panel
            moduleConfiguration.setStringValue(IQEditController.CONFIG_CORRECTION_MODE, hasEssay ? "manual" : "auto");
            fireEvent(ureq, NodeEditController.NODECONFIG_CHANGED_EVENT);
        }
        mod12ConfigForm = new IQ12EditForm(ureq, getWindowControl(), moduleConfiguration, hasEssay);
        mod12ConfigForm.update(re.getOlatResource());
        listenTo(mod12ConfigForm);
        myContent.put("iqeditform", mod12ConfigForm.getInitialComponent());
    }
}
Also used : QTI21DeliveryOptions(org.olat.ims.qti21.QTI21DeliveryOptions) RepositoryEntry(org.olat.repository.RepositoryEntry)

Example 12 with QTI21DeliveryOptions

use of org.olat.ims.qti21.QTI21DeliveryOptions 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);
        }
    }
}
Also used : QTI21DeliveryOptions(org.olat.ims.qti21.QTI21DeliveryOptions) InMemoryOutcomeListener(org.olat.ims.qti21.model.InMemoryOutcomeListener) LayoutMain3ColsController(org.olat.core.commons.fullWebApp.LayoutMain3ColsController) QTI21OverrideOptions(org.olat.ims.qti21.ui.QTI21OverrideOptions) AssessmentTestDisplayController(org.olat.ims.qti21.ui.AssessmentTestDisplayController) RepositoryEntry(org.olat.repository.RepositoryEntry) CloseableModalController(org.olat.core.gui.control.generic.closablewrapper.CloseableModalController) LayoutMain3ColsController(org.olat.core.commons.fullWebApp.LayoutMain3ColsController) ReferencableEntriesSearchController(org.olat.repository.controllers.ReferencableEntriesSearchController) NodeEditController(org.olat.course.editor.NodeEditController) BasicController(org.olat.core.gui.control.controller.BasicController) Controller(org.olat.core.gui.control.Controller) AssessmentTestDisplayController(org.olat.ims.qti21.ui.AssessmentTestDisplayController) IQPreviewSecurityCallback(org.olat.modules.iq.IQPreviewSecurityCallback)

Example 13 with QTI21DeliveryOptions

use of org.olat.ims.qti21.QTI21DeliveryOptions in project openolat by klemens.

the class IQLayoutConfigurationController method updateEditController.

protected void updateEditController(UserRequest ureq) {
    removeAsListenerAndDispose(mod12ConfigForm);
    removeAsListenerAndDispose(mod21ConfigForm);
    mod12ConfigForm = null;
    mod21ConfigForm = null;
    RepositoryEntry re = getIQReference();
    if (re == null) {
        myContent.remove("iqeditform");
    } else if (ImsQTI21Resource.TYPE_NAME.equals(re.getOlatResource().getResourceableTypeName())) {
        QTI21DeliveryOptions deliveryOptions = qti21service.getDeliveryOptions(re);
        mod21ConfigForm = new QTI21EditLayoutForm(ureq, getWindowControl(), moduleConfiguration, re, deliveryOptions);
        listenTo(mod21ConfigForm);
        myContent.put("iqeditform", mod21ConfigForm.getInitialComponent());
    } else if (OnyxModule.isOnyxTest(re.getOlatResource())) {
        myContent.remove("iqeditform");
    } else {
        mod12ConfigForm = new IQ12LayoutEditForm(ureq, getWindowControl(), moduleConfiguration);
        listenTo(mod12ConfigForm);
        myContent.put("iqeditform", mod12ConfigForm.getInitialComponent());
    }
}
Also used : QTI21DeliveryOptions(org.olat.ims.qti21.QTI21DeliveryOptions) RepositoryEntry(org.olat.repository.RepositoryEntry)

Example 14 with QTI21DeliveryOptions

use of org.olat.ims.qti21.QTI21DeliveryOptions in project OpenOLAT by OpenOLAT.

the class IQLayoutConfigurationController method updateEditController.

protected void updateEditController(UserRequest ureq) {
    removeAsListenerAndDispose(mod12ConfigForm);
    removeAsListenerAndDispose(mod21ConfigForm);
    mod12ConfigForm = null;
    mod21ConfigForm = null;
    RepositoryEntry re = getIQReference();
    if (re == null) {
        myContent.remove("iqeditform");
    } else if (ImsQTI21Resource.TYPE_NAME.equals(re.getOlatResource().getResourceableTypeName())) {
        QTI21DeliveryOptions deliveryOptions = qti21service.getDeliveryOptions(re);
        mod21ConfigForm = new QTI21EditLayoutForm(ureq, getWindowControl(), moduleConfiguration, re, deliveryOptions);
        listenTo(mod21ConfigForm);
        myContent.put("iqeditform", mod21ConfigForm.getInitialComponent());
    } else if (OnyxModule.isOnyxTest(re.getOlatResource())) {
        myContent.remove("iqeditform");
    } else {
        mod12ConfigForm = new IQ12LayoutEditForm(ureq, getWindowControl(), moduleConfiguration);
        listenTo(mod12ConfigForm);
        myContent.put("iqeditform", mod12ConfigForm.getInitialComponent());
    }
}
Also used : QTI21DeliveryOptions(org.olat.ims.qti21.QTI21DeliveryOptions) RepositoryEntry(org.olat.repository.RepositoryEntry)

Example 15 with QTI21DeliveryOptions

use of org.olat.ims.qti21.QTI21DeliveryOptions in project OpenOLAT by OpenOLAT.

the class QTI21ServiceImpl method getDeliveryOptions.

@Override
public QTI21DeliveryOptions getDeliveryOptions(RepositoryEntry testEntry) {
    FileResourceManager frm = FileResourceManager.getInstance();
    File reFolder = frm.getFileResourceRoot(testEntry.getOlatResource());
    File configXml = new File(reFolder, PACKAGE_CONFIG_FILE_NAME);
    QTI21DeliveryOptions config;
    if (configXml.exists()) {
        config = (QTI21DeliveryOptions) configXstream.fromXML(configXml);
    } else {
        // set default config
        config = QTI21DeliveryOptions.defaultSettings();
        setDeliveryOptions(testEntry, config);
    }
    return config;
}
Also used : QTI21DeliveryOptions(org.olat.ims.qti21.QTI21DeliveryOptions) FileResourceManager(org.olat.fileresource.FileResourceManager) File(java.io.File)

Aggregations

QTI21DeliveryOptions (org.olat.ims.qti21.QTI21DeliveryOptions)22 RepositoryEntry (org.olat.repository.RepositoryEntry)14 File (java.io.File)6 ModuleConfiguration (org.olat.modules.ModuleConfiguration)6 CourseEnvironment (org.olat.course.run.environment.CourseEnvironment)4 UserCourseEnvironment (org.olat.course.run.userview.UserCourseEnvironment)4 QTI21Service (org.olat.ims.qti21.QTI21Service)4 DigitalSignatureOptions (org.olat.ims.qti21.model.DigitalSignatureOptions)4 OLATResource (org.olat.resource.OLATResource)4 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)2 LayoutMain3ColsController (org.olat.core.commons.fullWebApp.LayoutMain3ColsController)2 Controller (org.olat.core.gui.control.Controller)2 BasicController (org.olat.core.gui.control.controller.BasicController)2 CloseableModalController (org.olat.core.gui.control.generic.closablewrapper.CloseableModalController)2 OLATResourceable (org.olat.core.id.OLATResourceable)2 NodeEditController (org.olat.course.editor.NodeEditController)2 FileResourceManager (org.olat.fileresource.FileResourceManager)2 ImsQTI21Resource (org.olat.fileresource.types.ImsQTI21Resource)2 QTIEditorPackage (org.olat.ims.qti.editor.QTIEditorPackage)2 Assessment (org.olat.ims.qti.editor.beecom.objects.Assessment)2