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

OO-2616: check the course element specific conditions to show the lock symbol in the tree

parent cbe4cfb7
No related branches found
No related tags found
No related merge requests found
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
*/ */
package org.olat.course.nodes; package org.olat.course.nodes;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.olat.core.gui.UserRequest; import org.olat.core.gui.UserRequest;
...@@ -26,9 +27,11 @@ import org.olat.core.gui.components.stack.BreadcrumbPanel; ...@@ -26,9 +27,11 @@ import org.olat.core.gui.components.stack.BreadcrumbPanel;
import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.generic.tabbable.TabbableController; import org.olat.core.gui.control.generic.tabbable.TabbableController;
import org.olat.core.util.StringHelper;
import org.olat.core.util.Util; import org.olat.core.util.Util;
import org.olat.course.ICourse; import org.olat.course.ICourse;
import org.olat.course.condition.Condition; import org.olat.course.condition.Condition;
import org.olat.course.condition.interpreter.ConditionExpression;
import org.olat.course.condition.interpreter.ConditionInterpreter; import org.olat.course.condition.interpreter.ConditionInterpreter;
import org.olat.course.editor.CourseEditorEnv; import org.olat.course.editor.CourseEditorEnv;
import org.olat.course.editor.NodeEditController; import org.olat.course.editor.NodeEditController;
...@@ -135,15 +138,19 @@ public class CalCourseNode extends AbstractAccessableCourseNode { ...@@ -135,15 +138,19 @@ public class CalCourseNode extends AbstractAccessableCourseNode {
/** /**
* @see org.olat.course.nodes.CourseNode#isConfigValid() * @see org.olat.course.nodes.CourseNode#isConfigValid()
*/ */
@Override
public StatusDescription isConfigValid() { public StatusDescription isConfigValid() {
// first check the one click cache // first check the one click cache
if (oneClickStatusCache != null) { return oneClickStatusCache[0]; } if (oneClickStatusCache != null) {
return oneClickStatusCache[0];
}
return StatusDescription.NOERROR; return StatusDescription.NOERROR;
} }
/** /**
* @see org.olat.course.nodes.CourseNode#isConfigValid(org.olat.course.run.userview.UserCourseEnvironment) * @see org.olat.course.nodes.CourseNode#isConfigValid(org.olat.course.run.userview.UserCourseEnvironment)
*/ */
@Override
public StatusDescription[] isConfigValid(CourseEditorEnv cev) { public StatusDescription[] isConfigValid(CourseEditorEnv cev) {
oneClickStatusCache = null; oneClickStatusCache = null;
// only here we know which translator to take for translating condition // only here we know which translator to take for translating condition
...@@ -166,6 +173,23 @@ public class CalCourseNode extends AbstractAccessableCourseNode { ...@@ -166,6 +173,23 @@ public class CalCourseNode extends AbstractAccessableCourseNode {
return false; return false;
} }
@Override
public List<ConditionExpression> getConditionExpressions() {
List<ConditionExpression> parentConditions = super.getConditionExpressions();
List<ConditionExpression> conditions = new ArrayList<>();
if(parentConditions != null && parentConditions.size() > 0) {
conditions.addAll(parentConditions);
}
Condition editCondition = getPreConditionEdit();
if(editCondition != null && StringHelper.containsNonWhitespace(editCondition.getConditionExpression())) {
ConditionExpression ce = new ConditionExpression(editCondition.getConditionId());
ce.setExpressionString(editCondition.getConditionExpression());
conditions.add(ce);
}
return conditions;
}
/** /**
* Default set the write privileges to coaches and admin only * Default set the write privileges to coaches and admin only
* @return * @return
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
package org.olat.course.nodes; package org.olat.course.nodes;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.olat.commons.info.manager.InfoMessageFrontendManager; import org.olat.commons.info.manager.InfoMessageFrontendManager;
...@@ -32,10 +33,12 @@ import org.olat.core.gui.components.stack.BreadcrumbPanel; ...@@ -32,10 +33,12 @@ import org.olat.core.gui.components.stack.BreadcrumbPanel;
import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.generic.tabbable.TabbableController; import org.olat.core.gui.control.generic.tabbable.TabbableController;
import org.olat.core.util.StringHelper;
import org.olat.core.util.Util; import org.olat.core.util.Util;
import org.olat.course.CourseModule; import org.olat.course.CourseModule;
import org.olat.course.ICourse; import org.olat.course.ICourse;
import org.olat.course.condition.Condition; import org.olat.course.condition.Condition;
import org.olat.course.condition.interpreter.ConditionExpression;
import org.olat.course.condition.interpreter.ConditionInterpreter; import org.olat.course.condition.interpreter.ConditionInterpreter;
import org.olat.course.editor.CourseEditorEnv; import org.olat.course.editor.CourseEditorEnv;
import org.olat.course.editor.NodeEditController; import org.olat.course.editor.NodeEditController;
...@@ -150,6 +153,29 @@ public class InfoCourseNode extends AbstractAccessableCourseNode { ...@@ -150,6 +153,29 @@ public class InfoCourseNode extends AbstractAccessableCourseNode {
return new NodeRunConstructionResult(titledCtrl); return new NodeRunConstructionResult(titledCtrl);
} }
@Override
public List<ConditionExpression> getConditionExpressions() {
List<ConditionExpression> parentConditions = super.getConditionExpressions();
List<ConditionExpression> conditions = new ArrayList<>();
if(parentConditions != null && parentConditions.size() > 0) {
conditions.addAll(parentConditions);
}
Condition editCondition = getPreConditionEdit();
if(editCondition != null && StringHelper.containsNonWhitespace(editCondition.getConditionExpression())) {
ConditionExpression ce = new ConditionExpression(editCondition.getConditionId());
ce.setExpressionString(editCondition.getConditionExpression());
conditions.add(ce);
}
Condition adminCondition = getPreConditionAdmin();
if(adminCondition != null && StringHelper.containsNonWhitespace(adminCondition.getConditionExpression())) {
ConditionExpression ce = new ConditionExpression(adminCondition.getConditionId());
ce.setExpressionString(adminCondition.getConditionExpression());
conditions.add(ce);
}
return conditions;
}
/** /**
* Default set the write privileges to coaches and admin only * Default set the write privileges to coaches and admin only
* @return * @return
......
...@@ -27,6 +27,7 @@ package org.olat.course.nodes; ...@@ -27,6 +27,7 @@ package org.olat.course.nodes;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
...@@ -50,6 +51,7 @@ import org.olat.core.util.Util; ...@@ -50,6 +51,7 @@ import org.olat.core.util.Util;
import org.olat.core.util.vfs.VFSContainer; import org.olat.core.util.vfs.VFSContainer;
import org.olat.course.ICourse; import org.olat.course.ICourse;
import org.olat.course.condition.Condition; import org.olat.course.condition.Condition;
import org.olat.course.condition.interpreter.ConditionExpression;
import org.olat.course.condition.interpreter.ConditionInterpreter; import org.olat.course.condition.interpreter.ConditionInterpreter;
import org.olat.course.editor.CourseEditorEnv; import org.olat.course.editor.CourseEditorEnv;
import org.olat.course.editor.NodeEditController; import org.olat.course.editor.NodeEditController;
...@@ -230,6 +232,22 @@ public class WikiCourseNode extends AbstractAccessableCourseNode { ...@@ -230,6 +232,22 @@ public class WikiCourseNode extends AbstractAccessableCourseNode {
} }
return true; return true;
} }
@Override
public List<ConditionExpression> getConditionExpressions() {
List<ConditionExpression> parentConditions = super.getConditionExpressions();
List<ConditionExpression> conditions = new ArrayList<>();
if(parentConditions != null && parentConditions.size() > 0) {
conditions.addAll(parentConditions);
}
Condition editCondition = getPreConditionEdit();
if(editCondition != null && StringHelper.containsNonWhitespace(editCondition.getConditionExpression())) {
ConditionExpression ce = new ConditionExpression(editCondition.getConditionId());
ce.setExpressionString(editCondition.getConditionExpression());
conditions.add(ce);
}
return conditions;
}
public Condition getPreConditionEdit() { public Condition getPreConditionEdit() {
if (preConditionEdit == null) { if (preConditionEdit == null) {
......
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