MDL-66009 mod_feedback: Nested dependency fails again
This commit is contained in:
@@ -178,7 +178,11 @@ class mod_feedback_completion extends mod_feedback_structure {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return $itemobj->compare_value($ditem, $value, $item->dependvalue) ? true : false;
|
||||
$check = $itemobj->compare_value($ditem, $value, $item->dependvalue) ? true : false;
|
||||
if ($check) {
|
||||
return $this->can_see_item($ditem);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+17
-4
@@ -1925,10 +1925,23 @@ function feedback_save_tmp_values($feedbackcompletedtmp, $feedbackcompleted) {
|
||||
//check if there are depend items
|
||||
$item = $DB->get_record('feedback_item', array('id'=>$value->item));
|
||||
if ($item->dependitem > 0 && isset($allitems[$item->dependitem])) {
|
||||
$check = feedback_compare_item_value($tmpcplid,
|
||||
$allitems[$item->dependitem],
|
||||
$item->dependvalue,
|
||||
true);
|
||||
$ditem = $allitems[$item->dependitem];
|
||||
while ($ditem !== null) {
|
||||
$check = feedback_compare_item_value($tmpcplid,
|
||||
$ditem,
|
||||
$item->dependvalue,
|
||||
true);
|
||||
if (!$check) {
|
||||
break;
|
||||
}
|
||||
if ($ditem->dependitem > 0 && isset($allitems[$ditem->dependitem])) {
|
||||
$item = $ditem;
|
||||
$ditem = $allitems[$ditem->dependitem];
|
||||
} else {
|
||||
$ditem = null;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
$check = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user