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 @@
*/
package org.olat.course.nodes;
import java.util.ArrayList;
import java.util.List;
import org.olat.core.gui.UserRequest;
......@@ -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.WindowControl;
import org.olat.core.gui.control.generic.tabbable.TabbableController;
import org.olat.core.util.StringHelper;
import org.olat.core.util.Util;
import org.olat.course.ICourse;
import org.olat.course.condition.Condition;
import org.olat.course.condition.interpreter.ConditionExpression;
import org.olat.course.condition.interpreter.ConditionInterpreter;
import org.olat.course.editor.CourseEditorEnv;
import org.olat.course.editor.NodeEditController;
......@@ -135,15 +138,19 @@ public class CalCourseNode extends AbstractAccessableCourseNode {
/**
* @see org.olat.course.nodes.CourseNode#isConfigValid()
*/
@Override
public StatusDescription isConfigValid() {
// first check the one click cache
if (oneClickStatusCache != null) { return oneClickStatusCache[0]; }
if (oneClickStatusCache != null) {
return oneClickStatusCache[0];
}
return StatusDescription.NOERROR;
}
/**
* @see org.olat.course.nodes.CourseNode#isConfigValid(org.olat.course.run.userview.UserCourseEnvironment)
*/
@Override
public StatusDescription[] isConfigValid(CourseEditorEnv cev) {
oneClickStatusCache = null;
// only here we know which translator to take for translating condition
......@@ -166,6 +173,23 @@ public class CalCourseNode extends AbstractAccessableCourseNode {
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
* @return
......
......@@ -20,6 +20,7 @@
package org.olat.course.nodes;
import java.util.ArrayList;
import java.util.List;
import org.olat.commons.info.manager.InfoMessageFrontendManager;
......@@ -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.WindowControl;
import org.olat.core.gui.control.generic.tabbable.TabbableController;
import org.olat.core.util.StringHelper;
import org.olat.core.util.Util;
import org.olat.course.CourseModule;
import org.olat.course.ICourse;
import org.olat.course.condition.Condition;
import org.olat.course.condition.interpreter.ConditionExpression;
import org.olat.course.condition.interpreter.ConditionInterpreter;
import org.olat.course.editor.CourseEditorEnv;
import org.olat.course.editor.NodeEditController;
......@@ -150,6 +153,29 @@ public class InfoCourseNode extends AbstractAccessableCourseNode {
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
* @return
......
......@@ -27,6 +27,7 @@ package org.olat.course.nodes;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
......@@ -50,6 +51,7 @@ import org.olat.core.util.Util;
import org.olat.core.util.vfs.VFSContainer;
import org.olat.course.ICourse;
import org.olat.course.condition.Condition;
import org.olat.course.condition.interpreter.ConditionExpression;
import org.olat.course.condition.interpreter.ConditionInterpreter;
import org.olat.course.editor.CourseEditorEnv;
import org.olat.course.editor.NodeEditController;
......@@ -230,6 +232,22 @@ public class WikiCourseNode extends AbstractAccessableCourseNode {
}
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() {
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