diff --git a/mod/feedback/lib.php b/mod/feedback/lib.php index 8940f46fee0..9b95d03f3a0 100644 --- a/mod/feedback/lib.php +++ b/mod/feedback/lib.php @@ -2231,6 +2231,22 @@ function feedback_check_values($firstitem, $lastitem) { } $value = $itemobj->clean_input_value($value); + // If the item is not visible due to its dependency so it shouldn't be required. + // Many thanks to Pau Ferrer OcaƱa. + if ($item->dependitem > 0 AND $item->required == 1) { + $comparevalue = false; + if ($feedbackcompletedtmp = feedback_get_current_completed($item->feedback, true)) { + $comparevalue = feedback_compare_item_value($feedbackcompletedtmp->id, + $item->dependitem, + $item->dependvalue, + true); + } + + if (!$comparevalue) { + $item->required = 0; // Override the required property. + } + } + //check if the value is set if (is_null($value) AND $item->required == 1) { return false;