Skip to content
Snippets Groups Projects
Commit f46ca5b6 authored by srosse's avatar srosse
Browse files

OO-1593: disable math extension and add an administration panel

parent 8090f15e
No related branches found
No related tags found
No related merge requests found
......@@ -14,4 +14,24 @@
<bean id="org.olat.ims.cp.CPManager" class="org.olat.ims.cp.CPManagerImpl"/>
<!-- QTI 2.1 admin. panel -->
<bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints">
<property name="order" value="8209" />
<property name="actionController">
<bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype">
<property name="className" value="org.olat.ims.qti21.ui.QTI21AdminController"/>
</bean>
</property>
<property name="navigationKey" value="qti21" />
<property name="i18nActionKey" value="admin.menu.title"/>
<property name="i18nDescriptionKey" value="admin.menu.title.alt"/>
<property name="translationPackage" value="org.olat.ims.qti21.ui"/>
<property name="parentTreeNodeIdentifier" value="modulesParent" />
<property name="extensionPoints">
<list>
<value>org.olat.admin.SystemAdminMainController</value>
</list>
</property>
</bean>
</beans>
\ No newline at end of file
......@@ -20,6 +20,7 @@
package org.olat.ims.qti21;
import org.olat.core.configuration.AbstractSpringModule;
import org.olat.core.util.StringHelper;
import org.olat.core.util.coordinate.CoordinatorManager;
import org.olat.ims.qti21.repository.handlers.QTI21AssessmentTestHandler;
import org.olat.repository.handlers.RepositoryHandlerFactory;
......@@ -39,7 +40,7 @@ public class QTI21Module extends AbstractSpringModule {
@Autowired
private QTI21AssessmentTestHandler assessmentHandler;
@Value("${qti21.math.assessment.extension.enabled:true}")
@Value("${qti21.math.assessment.extension.enabled:false}")
private boolean mathAssessExtensionEnabled;
@Autowired
......@@ -52,23 +53,23 @@ public class QTI21Module extends AbstractSpringModule {
RepositoryHandlerFactory.registerHandler(assessmentHandler, 10);
//Saxon is mandatory, JQTI need XSLT 2.0
//XsltFactoryUtilities.SAXON_TRANSFORMER_FACTORY_CLASS_NAME;
initFromChangedProperties();
}
@Override
protected void initFromChangedProperties() {
//
String mathExtensionObj = getStringPropertyValue("math.extension", true);
if(StringHelper.containsNonWhitespace(mathExtensionObj)) {
mathAssessExtensionEnabled = "enabled".equals(mathExtensionObj);
}
}
public boolean isMathAssessExtensionEnabled() {
return mathAssessExtensionEnabled;
}
public void setMathAssessExtensionEnabled(boolean mathAssessExtensionEnabled) {
this.mathAssessExtensionEnabled = mathAssessExtensionEnabled;
public void setMathAssessExtensionEnabled(boolean enabled) {
mathAssessExtensionEnabled = enabled;
setStringProperty("math.extension", enabled ? "enabled" : "disabled", true);
}
}
/**
* <a href="http://www.openolat.org">
* OpenOLAT - Online Learning and Training</a><br>
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); <br>
* you may not use this file except in compliance with the License.<br>
* You may obtain a copy of the License at the
* <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
* <p>
* Unless required by applicable law or agreed to in writing,<br>
* software distributed under the License is distributed on an "AS IS" BASIS, <br>
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
* See the License for the specific language governing permissions and <br>
* limitations under the License.
* <p>
* Initial code contributed and copyrighted by<br>
* frentix GmbH, http://www.frentix.com
* <p>
*/
package org.olat.ims.qti21.ui;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.form.flexible.FormItem;
import org.olat.core.gui.components.form.flexible.FormItemContainer;
import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
import org.olat.core.gui.components.form.flexible.impl.FormEvent;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl;
import org.olat.ims.qti21.QTI21Module;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Administration for system-wide settings.
*
* Initial date: 25.08.2016<br>
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
*
*/
public class QTI21AdminController extends FormBasicController {
private static final String[] mathExtensionKeys = new String[]{ "on" };
private MultipleSelectionElement mathExtensionEl;
@Autowired
private QTI21Module qtiModule;
public QTI21AdminController(UserRequest ureq, WindowControl wControl) {
super(ureq, wControl);
initForm(ureq);
}
@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
setFormTitle("admin.title");
String[] mathExtensionValues = new String[]{ "" };
mathExtensionEl = uifactory.addCheckboxesHorizontal("math.extension", "math.extension", formLayout,
mathExtensionKeys, mathExtensionValues);
if(qtiModule.isMathAssessExtensionEnabled()) {
mathExtensionEl.select(mathExtensionKeys[0], true);
}
mathExtensionEl.setExampleKey("math.extension.text", null);
mathExtensionEl.addActionListener(FormEvent.ONCHANGE);
}
@Override
protected void doDispose() {
//
}
@Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if(mathExtensionEl == source) {
qtiModule.setMathAssessExtensionEnabled(mathExtensionEl.isSelected(0));
}
super.formInnerEvent(ureq, source, event);
}
@Override
protected void formOK(UserRequest ureq) {
//
}
}
#Tue Aug 23 10:37:11 CEST 2016
actualPoints=$org.olat.modules.iq\:actualPoints
admin.title=QTI 2.1 Einstellungen
admin.menu.title=QTI 2.1
admin.menu.title.alt=QTI 2.1 Einstellungen
anonym.not.allowed.descr=Anonym Benutzer d\u00FCrfen diesen Test nicht durchf\u00FChren
anonym.not.allowed.title=Anonym Benutzer
anonym.user=Anonym Benutzer
......@@ -69,6 +72,8 @@ interaction.order.drag.msg=Ziehen Sie die nicht verwendete Elemente von hier...
interaction.order.drop.msg=Drop and order your selected items here...
interaction.order.source=Quelle
interaction.order.target=Ziel
math.extension=QtiWorks Math extension
math.extension.text=Braucht Maxima auf dem Server
menu.reset.title=Testdaten zur\u00FCcksetzen
menu.retrieve.tests.title=$org.olat.ims.qti.statistics.ui\:menu.pull.tests.title
passed.no=$org.olat.course.nodes.iq\:passed.no
......
#Tue Aug 23 10:37:23 CEST 2016
actualPoints=$org.olat.modules.iq\:actualPoints
admin.title=QTI 2.1 settings
admin.menu.title=QTI 2.1
admin.menu.title.alt=QTI 2.1 settings
anonym.not.allowed.descr=Anonym users are not allowed to play this test
anonym.not.allowed.title=Anonym users
anonym.user=Anonymous user
......@@ -78,6 +81,8 @@ interaction.order.drag.msg=Drag unused items from here...
interaction.order.drop.msg=Drop and order your selected items here...
interaction.order.source=Source
interaction.order.target=Target
math.extension=QtiWorks Math extension
math.extension.text=Need Maxima installed on the server
menu.reset.title=Reset data of test
menu.retrieve.tests.title=$org.olat.ims.qti.statistics.ui\:menu.pull.tests.title
passed.no=$org.olat.course.nodes.iq\:passed.no
......
......@@ -284,6 +284,7 @@ public class AssessmentTestComposerController extends MainLayoutBasicController
if(ureq.getUserSession().getRoles().isOLATAdmin()) {
reloadInCacheLink = LinkFactory.createToolLink("replace.in.cache.pool", translate("tools.reload.from.files"), this, "o_icon_refresh");
reloadInCacheLink.setTooltip(translate("tools.reload.from.files.tooltip"));
reloadInCacheLink.setDomReplacementWrapperRequired(false);
changeItemTools.addComponent(reloadInCacheLink);
}
......
......@@ -117,6 +117,7 @@ tools.export.qpool=$org.olat.ims.qti.editor\:tools.export.qpool
tools.import.qpool=$org.olat.ims.qti.editor\:tools.import.qpool
tools.import.table=$org.olat.ims.qti.editor\:tools.import.table
tools.reload.from.files=Dateien neu laden und im Puffer ersetzen
tools.reload.from.files.tooltip=Only visible to administrators.
warning.alien.assessment.item=Dieser Fragetyp kann nicht mit dem OpenOLAT-Editor bearbeitet werden.
warning.alien.assessment.test=Dieser Test kann nicht mit dem OpenOLAT-Editor bearbeitet werden.
warning.in.use=Die Ressource wird bereits f\u00FCr Auswertung verwendet. Die Bearbeitung ist begrenzt.
......
......@@ -117,6 +117,7 @@ tools.export.qpool=$org.olat.ims.qti.editor\:tools.export.qpool
tools.import.qpool=$org.olat.ims.qti.editor\:tools.import.qpool
tools.import.table=$org.olat.ims.qti.editor\:tools.import.table
tools.reload.from.files=Reload files and refresh cache
tools.reload.from.files.tooltip=Only visible to administrators.
warning.alien.assessment.item=This question type cannot be processed with the OpenOLAT editor.
warning.alien.assessment.test=This test cannot be processed with the OpenOLAT editor.
warning.feedback.cutvalue=The feedback is based on the cut value. You need to define it first.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment