diff --git a/main/exercise/exercise.class.php b/main/exercise/exercise.class.php index e68b0db981b..2b64c669ea8 100755 --- a/main/exercise/exercise.class.php +++ b/main/exercise/exercise.class.php @@ -9909,15 +9909,29 @@ public static function exerciseGrid( ); } else { if ($row['active'] == 0 || $visibility == 0) { - $visibility = Display::url( - Display::return_icon( - 'invisible.png', - get_lang('Activate'), - '', - ICON_SIZE_SMALL - ), - 'exercise.php?'.api_get_cidreq().'&choice=enable&sec_token='.$token.'&exerciseId='.$row['iid'] + $visibleOnBaseCourse = api_get_item_visibility( + $courseInfo, + TOOL_QUIZ, + $row['iid'], + 0 ); + + if ($visibleOnBaseCourse) { + $visibility = Display::url( + Display::return_icon( + 'invisible.png', + get_lang('Activate'), + '', + ICON_SIZE_SMALL + ), + 'exercise.php?'.api_get_cidreq().'&choice=enable&sec_token='.$token.'&exerciseId='.$row['iid'] + ); + } else { + $visibility = Display::return_icon( + 'invisible.png', + get_lang('Activate') + ); + } } else { // else if not active $visibility = Display::url( diff --git a/main/exercise/exercise.php b/main/exercise/exercise.php index e1ed08c1db7..ccf93bd0d5c 100644 --- a/main/exercise/exercise.php +++ b/main/exercise/exercise.php @@ -266,6 +266,18 @@ function showUserToSendNotificacion(element) { break; } + $visibleOnBaseCourse = api_get_item_visibility( + $courseInfo, + TOOL_QUIZ, + $objExerciseTmp->iid, + 0 + ); + + if (!$visibleOnBaseCourse) { + Display::addFlash(Display::return_message(get_lang('CanNotHide') . ' ' . $objExerciseTmp->name, 'error')); + break; + } + // enables an exercise if (empty($sessionId)) { $objExerciseTmp->enable();