MDL-66009 mod_feedback: Nested dependency fails again

This commit is contained in:
Andreas Grabs
2019-10-17 09:19:49 +02:00
parent 474159da70
commit ba8bc23906
2 changed files with 22 additions and 5 deletions
+5 -1
View File
@@ -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
View File
@@ -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;
}