diff --git a/src/main/java/org/olat/ims/qti21/model/xml/AssessmentTestFactory.java b/src/main/java/org/olat/ims/qti21/model/xml/AssessmentTestFactory.java index 1c48956b44dd2f7da5a04091f651c6730a8d8434..d39bbb61e54ffde40fc30e53213977ad03671c6c 100644 --- a/src/main/java/org/olat/ims/qti21/model/xml/AssessmentTestFactory.java +++ b/src/main/java/org/olat/ims/qti21/model/xml/AssessmentTestFactory.java @@ -271,7 +271,7 @@ public class AssessmentTestFactory { ItemSessionControl itemSessionControl = new ItemSessionControl(part); itemSessionControl.setAllowComment(Boolean.FALSE); itemSessionControl.setAllowReview(Boolean.FALSE); - itemSessionControl.setAllowSkipping(Boolean.FALSE); + itemSessionControl.setAllowSkipping(Boolean.TRUE);//default is true itemSessionControl.setShowFeedback(Boolean.FALSE); itemSessionControl.setShowSolution(Boolean.FALSE); part.setItemSessionControl(itemSessionControl); diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/ItemSessionControlController.java b/src/main/java/org/olat/ims/qti21/ui/editor/ItemSessionControlController.java index 416f950f551b9707184793c65d12cc3de9812f23..0fc669b52436eeaadfab87136c08bd4262127189 100644 --- a/src/main/java/org/olat/ims/qti21/ui/editor/ItemSessionControlController.java +++ b/src/main/java/org/olat/ims/qti21/ui/editor/ItemSessionControlController.java @@ -48,7 +48,7 @@ public abstract class ItemSessionControlController extends FormBasicController { private static final String[] attemtpsKeys = new String[] { "y", "n", "inherit" }; private TextElement maxAttemptsEl /*, maxTimeEl */; - private SingleSelection limitAttemptsEl, allowCommentEl, allowReviewEl, showSolutionEl; + private SingleSelection limitAttemptsEl, allowSkippingEl, allowCommentEl, allowReviewEl, showSolutionEl; protected final boolean editable; protected final boolean restrictedEdit; @@ -78,8 +78,8 @@ public abstract class ItemSessionControlController extends FormBasicController { ItemSessionControl itemSessionControl = part.getItemSessionControl();//can be null Integer maxAttempts = null; - if(part.getItemSessionControl() != null) { - maxAttempts = part.getItemSessionControl().getMaxAttempts(); + if(itemSessionControl != null) { + maxAttempts = itemSessionControl.getMaxAttempts(); } String[] aKeys = part instanceof TestPart ? yesnoKeys : attemtpsKeys; String[] yesnoValues = new String[] { translate("yes"), translate("no") }; @@ -106,6 +106,16 @@ public abstract class ItemSessionControlController extends FormBasicController { maxAttemptsEl.setVisible(limitAttemptsEl.isSelected(0)); maxAttemptsEl.setEnabled(!restrictedEdit && editable); + allowSkippingEl = uifactory.addRadiosHorizontal("item.session.control.allow.skipping", formLayout, yesnoKeys, yesnoValues); + allowSkippingEl.addActionListener(FormEvent.ONCHANGE); + allowSkippingEl.setEnabled(!restrictedEdit && editable); + // the default value is allowSkipping=true + if(itemSessionControl != null && itemSessionControl.getAllowSkipping() != null && !itemSessionControl.getAllowSkipping().booleanValue()) { + allowSkippingEl.select(yesnoKeys[1], true); + } else { + allowSkippingEl.select(yesnoKeys[0], true); + } + allowCommentEl = uifactory.addRadiosHorizontal("item.session.control.allow.comment", formLayout, yesnoKeys, yesnoValues); allowCommentEl.addActionListener(FormEvent.ONCHANGE); allowCommentEl.setEnabled(!restrictedEdit && editable); @@ -207,6 +217,13 @@ public abstract class ItemSessionControlController extends FormBasicController { protected void formOK(UserRequest ureq) { ItemSessionControl itemSessionControl = part.getItemSessionControl();//can be null + // need to be first! + if(allowSkippingEl.isOneSelected() && allowSkippingEl.isSelected(0)) { + checkNotNull(itemSessionControl).setAllowSkipping(Boolean.TRUE); + } else if(itemSessionControl != null) { + itemSessionControl.setAllowSkipping(Boolean.FALSE); + } + if(allowCommentEl.isOneSelected() && allowCommentEl.isSelected(0)) { checkNotNull(itemSessionControl).setAllowComment(Boolean.TRUE); } else if(itemSessionControl != null) { diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties index f412c88032c87ab90d765ea3253fb170f336ce17..2aa82f3b7a9453f4ce706bc3e1d61f10a87c37a0 100644 --- a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties @@ -89,6 +89,7 @@ form.testPart.navigationMode.nonlinear=Nicht linear form.unkown=Unbekannt item.session.control.allow.comment=Kommentar erlauben item.session.control.allow.review=R\u00FCckblick erlauben +item.session.control.allow.skipping=Fragen \u00FCberspring erlauben item.session.control.attempts=Versuch item.session.control.show.solution=L\u00F6sung anzeigen max.score=Maximal erreichbare Punktzahl diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_en.properties index 30367e5ab0259c623f27bb9c2a28dff928e5e795..1c99772999628bb2f79bf4d024cd59873a463450 100644 --- a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_en.properties @@ -89,6 +89,7 @@ form.unkown=Unkown inherit=Inherit item.session.control.allow.comment=Allow comments item.session.control.allow.review=Allow review of questions +item.session.control.allow.skipping=Allow skipping questions item.session.control.attempts=Attempts item.session.control.show.solution=Show solution max.score=Max. score diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_fr.properties index 968bf31eea5baeb87b63d4203555d2f05d001cb6..ccd1370d9906914cf733073d0eb4ec7ce2aac50b 100644 --- a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_fr.properties @@ -1,4 +1,4 @@ -#Sun Aug 28 10:52:20 CEST 2016 +#Wed Sep 14 18:02:58 CEST 2016 answers=R\u00E9ponses change.elements=Edition correct.answers=Correct @@ -89,6 +89,7 @@ form.unkown=Inconnu inherit=H\u00E9rit\u00E9 item.session.control.allow.comment=Autoriser les commentaires item.session.control.allow.review=Autoriser la revue des questions +item.session.control.allow.skipping=Autoriser \u00E0 sauter les questions item.session.control.attempts=Tentatives item.session.control.show.solution=Afficher la solution max.score=Nombre de points maximum