diff --git a/components/ILIAS/Conditions/classes/class.ilConditionHandlerGUI.php b/components/ILIAS/Conditions/classes/class.ilConditionHandlerGUI.php index 335ba5cce035..1745f01aa55b 100755 --- a/components/ILIAS/Conditions/classes/class.ilConditionHandlerGUI.php +++ b/components/ILIAS/Conditions/classes/class.ilConditionHandlerGUI.php @@ -1,7 +1,5 @@ setTriggerType($trigger->getType()); } $condition->setOperator($data['condition_configuration']['operator'][0]); - $condition->setObligatory((bool) ($data['condition_configuration']['obligatory'] ?? true)); + + $optional_conditions = ilConditionHandler::getPersistedOptionalConditionsOfTarget( + $this->getTargetRefId(), + $this->getTargetId(), + $this->getTargetType() + ); + + $is_all_mode = (count($optional_conditions) === 0); + + // set condition as obligatory or not based on mode + if ($is_all_mode) { + $condition->setObligatory(true); + } else { + $condition->setObligatory(false); + } + $condition->setHiddenStatus(ilConditionHandler::lookupPersistedHiddenStatusByTarget($this->getTargetRefId())); $condition->setValue($this->extractValueOptionsFromInput($data)); $condition->enableAutomaticValidation($this->getAutomaticValidation());