Exercise: Fix visibility inside a session (WIP)

pull/3844/head
Julio Montoya 5 years ago
parent 06f0cba6ec
commit 748bcdb1c5
  1. 28
      public/main/exercise/exercise.class.php

@ -1618,7 +1618,7 @@ class Exercise
->setType($type) ->setType($type)
->setRandom((int) $random) ->setRandom((int) $random)
->setRandomAnswers((bool) $random_answers) ->setRandomAnswers((bool) $random_answers)
->setActive((bool) $active) ->setActive((int) $active)
->setResultsDisabled($results_disabled) ->setResultsDisabled($results_disabled)
->setMaxAttempt($attempts) ->setMaxAttempt($attempts)
->setFeedbackType($feedback_type) ->setFeedbackType($feedback_type)
@ -8734,6 +8734,11 @@ class Exercise
$myActions = null, $myActions = null,
$returnTable = false $returnTable = false
) { ) {
$is_allowedToEdit = api_is_allowed_to_edit(null, true);
$courseId = $courseId ? (int) $courseId : api_get_course_int_id();
$courseInfo = api_get_course_info_by_id($courseId);
$sessionId = $sessionId ? (int) $sessionId : api_get_session_id();
$course = api_get_course_entity($courseId); $course = api_get_course_entity($courseId);
$session = api_get_session_entity($sessionId); $session = api_get_session_entity($sessionId);
@ -8770,9 +8775,6 @@ class Exercise
$autoLaunchAvailable = true; $autoLaunchAvailable = true;
} }
$is_allowedToEdit = api_is_allowed_to_edit(null, true);
$courseInfo = $courseId ? api_get_course_info_by_id($courseId) : api_get_course_info();
$sessionId = $sessionId ? (int) $sessionId : api_get_session_id();
$courseId = $courseInfo['real_id']; $courseId = $courseInfo['real_id'];
$tableRows = []; $tableRows = [];
$origin = api_get_origin(); $origin = api_get_origin();
@ -8920,7 +8922,7 @@ class Exercise
$alt_title = ' title = "'.$exercise->getUnformattedTitle().'" '; $alt_title = ' title = "'.$exercise->getUnformattedTitle().'" ';
} }
// Teacher only // Teacher only.
if ($is_allowedToEdit) { if ($is_allowedToEdit) {
$lp_blocked = null; $lp_blocked = null;
if (true == $exercise->exercise_was_added_in_lp) { if (true == $exercise->exercise_was_added_in_lp) {
@ -8932,7 +8934,8 @@ class Exercise
); );
} }
$visibility = $exerciseEntity->isVisible($course, null); $visibility = $exerciseEntity->isVisible($course, $session);
// Get visibility in base course // Get visibility in base course
/*$visibility = api_get_item_visibility( /*$visibility = api_get_item_visibility(
$courseInfo, $courseInfo,
@ -8958,7 +8961,7 @@ class Exercise
} }
$style = ''; $style = '';
if (0 == $exerciseEntity->getActive() || false === $visibility) { if (0 === $exerciseEntity->getActive() || false === $visibility) {
$style = 'color:grey'; $style = 'color:grey';
//$title = Display::tag('font', $cut_title, ['style' => 'color:grey']); //$title = Display::tag('font', $cut_title, ['style' => 'color:grey']);
} }
@ -9108,7 +9111,7 @@ class Exercise
ICON_SIZE_SMALL ICON_SIZE_SMALL
); );
} else { } else {
if (0 == $exerciseEntity->getActive() || 0 == $visibility) { if (0 === $exerciseEntity->getActive()) {
$visibility = Display::url( $visibility = Display::url(
Display::return_icon( Display::return_icon(
'invisible.png', 'invisible.png',
@ -9172,7 +9175,7 @@ class Exercise
ICON_SIZE_SMALL ICON_SIZE_SMALL
); );
} else { } else {
if (0 == $exerciseEntity->getActive() || 0 == $visibility) { if (0 === $exerciseEntity->getActive() || 0 == $visibility) {
$visibility = Display::url( $visibility = Display::url(
Display::return_icon( Display::return_icon(
'invisible.png', 'invisible.png',
@ -9299,13 +9302,16 @@ class Exercise
} else { } else {
// Student only. // Student only.
$visibility = $exerciseEntity->isVisible($course, null); $visibility = $exerciseEntity->isVisible($course, null);
if (false === $visibility && !empty($sessionId)) {
$visibility = $exerciseEntity->isVisible($course, $session);
}
if (false === $visibility) { if (false === $visibility) {
continue; continue;
} }
$url = '<a '.$alt_title.' href="overview.php?'.api_get_cidreq( $url = '<a '.$alt_title.'
).$mylpid.$mylpitemid.'&exerciseId='.$exerciseId.'">'. href="overview.php?'.api_get_cidreq().$mylpid.$mylpitemid.'&exerciseId='.$exerciseId.'">'.
$cut_title.'</a>'; $cut_title.'</a>';
// Link of the exercise. // Link of the exercise.

Loading…
Cancel
Save