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

OO-2605: choose profile with select box and button

parent 42051695
No related branches found
No related tags found
No related merge requests found
......@@ -24,12 +24,14 @@ import java.util.List;
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.FormLink;
import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
import org.olat.core.gui.components.form.flexible.elements.SingleSelection;
import org.olat.core.gui.components.form.flexible.elements.TextElement;
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.components.form.flexible.impl.FormLayoutContainer;
import org.olat.core.gui.components.link.Link;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
......@@ -55,13 +57,14 @@ public class QTI21DeliveryOptionsController extends FormBasicController implemen
private static final String[] onKeys = new String[]{ "on" };
private static final String[] onValues = new String[]{ "" };
private static final String[] settingTypeKeys = new String[]{ TestType.summative.name(), TestType.formative.name() };
private static final String[] settingTypeKeys = new String[]{ "choose", TestType.summative.name(), TestType.formative.name() };
private static final String[] resultsOptionsKeys = new String[] {
QTI21AssessmentResultsOptions.METADATA, QTI21AssessmentResultsOptions.SECTION_SUMMARY,
QTI21AssessmentResultsOptions.QUESTION_SUMMARY, QTI21AssessmentResultsOptions.QUESTIONS,
QTI21AssessmentResultsOptions.USER_SOLUTIONS, QTI21AssessmentResultsOptions.CORRECT_SOLUTIONS
};
private FormLink chooseProfileButton;
private SingleSelection settingTypeEl;
private MultipleSelectionElement showTitlesEl, showMenuEl;
private MultipleSelectionElement personalNotesEl;
......@@ -96,14 +99,24 @@ public class QTI21DeliveryOptionsController extends FormBasicController implemen
setFormTitle("tab.options");
setFormContextHelp("Test editor QTI 2.1 in detail#details_testeditor_options");
formLayout.setElementCssClass("o_sel_qti_resource_options");
setFormInfo("settings.choose.descr");
String[] settingTypeValues = new String[]{ translate("qti.form.setting.summative"), translate("qti.form.setting.formative") };
settingTypeEl = uifactory.addRadiosHorizontal("settings.type", null, formLayout, settingTypeKeys, settingTypeValues);
settingTypeEl.addActionListener(FormEvent.ONCHANGE);
//choose profile
String profilePage = velocity_root + "/profile.html";
FormLayoutContainer profileCont = FormLayoutContainer.createCustomFormLayout("profile", getTranslator(), profilePage);
profileCont.setLabel("settings.profile", null);
formLayout.add(profileCont);
String[] settingTypeValues = new String[]{
translate("qti.form.setting.choose"), translate("qti.form.setting.summative"), translate("qti.form.setting.formative")
};
settingTypeEl = uifactory.addDropdownSingleselect("settings.type", "settings.type", null, profileCont, settingTypeKeys, settingTypeValues, null);
settingTypeEl.setDomReplacementWrapperRequired(false);
settingTypeEl.setAllowNoSelection(true);
if(deliveryOptions.getTestType() != null) {
settingTypeEl.select(deliveryOptions.getTestType().name(), true);
}
chooseProfileButton = uifactory.addFormLink("settings.choose.profile", profileCont, Link.BUTTON);
uifactory.addSpacerElement("profile.spacer", formLayout, false);
limitAttemptsEl = uifactory.addCheckboxesHorizontal("limitAttempts", "qti.form.limit.attempts", formLayout, onKeys, onValues);
limitAttemptsEl.addActionListener(FormEvent.ONCLICK);
......@@ -278,7 +291,7 @@ public class QTI21DeliveryOptionsController extends FormBasicController implemen
digitalSignatureMailEl.setVisible(digitalSignatureEl.isAtLeastSelected(1));
} else if(showResultsOnFinishEl == source) {
assessmentResultsOnFinishEl.setVisible(showResultsOnFinishEl.isAtLeastSelected(1));
} else if(settingTypeEl == source) {
} else if(chooseProfileButton == source) {
if(settingTypeEl.isOneSelected()) {
String selectedType = settingTypeEl.getSelectedKey();
if(TestType.formative.name().equals(selectedType)) {
......@@ -287,6 +300,7 @@ public class QTI21DeliveryOptionsController extends FormBasicController implemen
applyDeliveryOptions(QTI21DeliveryOptions.summativeSettings());
}
}
settingTypeEl.select("choose", true);
}
super.formInnerEvent(ureq, source, event);
}
......@@ -294,12 +308,6 @@ public class QTI21DeliveryOptionsController extends FormBasicController implemen
@Override
protected void formOK(UserRequest ureq) {
if(settingTypeEl.isOneSelected()) {
String type = settingTypeEl.getSelectedKey();
deliveryOptions.setTestType(TestType.valueOf(type));
} else {
deliveryOptions.setTestType(null);
}
if(limitAttemptsEl.isAtLeastSelected(1)) {
deliveryOptions.setMaxAttempts(Integer.parseInt(maxAttemptsEl.getValue()));
} else {
......
<div class="form-inline">$r.render("settings.type") $r.render("settings.choose.profile")</div>
\ No newline at end of file
......@@ -134,6 +134,7 @@ qti.form.questionprogress=$org.olat.course.nodes.iq\:qti.form.questionprogress
qti.form.questiontitle=$org.olat.course.nodes.iq\:qti.form.questiontitle
qti.form.results.onfinish=$org.olat.course.nodes.iq\:qti.form.results.onfinish
qti.form.scoreprogress=$org.olat.course.nodes.iq\:qti.form.scoreprogress
qti.form.setting.choose=Profile w\u00E4hlen...
qti.form.setting.formative=Formativ (\u00DCbungtest)
qti.form.setting.summative=Summativ (scharfe Pr\u00FCfung)
qti.form.summary=$org.olat.course.nodes.iq\:qti.form.summary
......@@ -173,6 +174,9 @@ review.responses=Ihre Antworten \u00FCberpr\u00FCfen
review.responses.desc=Sie k\u00F6nnen Ihre Antworten von einer Sektion oder von allen Fragen \u00FCberpr\u00FCfen. Unten finden Sie die entsprechende Liste.
score.max=$org.olat.ims.qti\:score.max
serialize.error=Unerwarte Fehler w\u00E4hrend Speicherung von Datei
settings.profile=Standardeinstellungen
settings.choose.descr=Sie k\u00F6nnen die Standardeinstellung f\u00FCr summative oder formative Tests \u00FCbernehmen und anpassen oder Sie setzen die Optionen selbst.
settings.choose.profile=Konfiguration \u00FCbernehmen
solution=L\u00F6sung
submit=Antwort senden
suspend.test=$org.olat.modules.iq\:suspendAssess
......
......@@ -134,6 +134,7 @@ qti.form.questionprogress=$org.olat.course.nodes.iq\:qti.form.questionprogress
qti.form.questiontitle=$org.olat.course.nodes.iq\:qti.form.questiontitle
qti.form.results.onfinish=$org.olat.course.nodes.iq\:qti.form.results.onfinish
qti.form.scoreprogress=$org.olat.course.nodes.iq\:qti.form.scoreprogress
qti.form.setting.choose=Choose a profile...
qti.form.setting.formative=Formative (exercise test)
qti.form.setting.summative=Summative (real test)
qti.form.summary=$org.olat.course.nodes.iq\:qti.form.summary
......@@ -173,6 +174,9 @@ review.responses=Review your responses
review.responses.desc=You may review your responses to some (or all) questions. These are listed below.
score.max=$org.olat.ims.qti\:score.max
serialize.error=An unexpected happens while saving the file.
settings.profile=Standard settings
settings.choose.descr=You can chose a default setting for summative or formative tests and adapt it afterward or you set the options by yourself.
settings.choose.profile=Apply configuration
solution=Solution
submit=Submit response
suspend.test=$org.olat.modules.iq\:suspendAssess
......
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