diff --git a/main/exercise/exercise.class.php b/main/exercise/exercise.class.php index 01cdc73a54..19485c8f59 100755 --- a/main/exercise/exercise.class.php +++ b/main/exercise/exercise.class.php @@ -8670,7 +8670,7 @@ class Exercise * @param int $filterByResultDisabled * @param int $filterByAttempt * - * @return string + * @return string|SortableTableFromArrayConfig */ public static function exerciseGrid( $categoryId, diff --git a/plugin/positioning/start.php b/plugin/positioning/start.php index da349e326b..554cd27b40 100644 --- a/plugin/positioning/start.php +++ b/plugin/positioning/start.php @@ -81,17 +81,27 @@ $table = Exercise::exerciseGrid( true ); -$table->headers = []; -$table->set_header(0, get_lang('ExerciseName'), false); -$table->set_header(1, get_lang('QuantityQuestions'), false); -$table->set_header(2, get_lang('Actions'), false); -$exerciseList = []; -foreach ($table->table_data as &$data) { - $data = [ - $data[1], - $data[2], - $data[3], - ]; +$exercisesToString = ''; +if (!empty($table)) { + if ($table instanceof SortableTableFromArrayConfig) { + $table->headers = []; + $table->set_header(0, get_lang('ExerciseName'), false); + $table->set_header(1, get_lang('QuantityQuestions'), false); + $table->set_header(2, get_lang('Actions'), false); + $exerciseList = []; + foreach ($table->table_data as &$data) { + $data = [ + $data[1], + $data[2], + $data[3], + ]; + } + + $table->set_form_actions([]); + $exercisesToString = $table->return_table(); + } else { + $exercisesToString = Display::return_message(get_lang('NoDataAvailable'), 'warning'); + } } $initialData = $plugin->getInitialExercise($courseId, $sessionId); @@ -108,15 +118,11 @@ if (!empty($users) && $initialData && $initialData['exercise_id']) { $initialExerciseTitle = $initialExercise->get_formated_title(); } -$table->set_form_actions([]); -$exercises = $table->return_table(); - $template->assign( 'positioning_introduction', - //Display::return_message(sprintf($plugin->get_lang('PositioningIntroduction'), $courseInfo['title'])) Display::return_message($plugin->get_lang('PositioningIntroduction')) ); -$template->assign('grid', $exercises); +$template->assign('table', $exercisesToString); $template->assign('radars', $radars); $template->assign('initial_exercise', $initialExerciseTitle); $template->assign('content', $template->fetch('positioning/view/start.tpl')); diff --git a/plugin/positioning/start_student.php b/plugin/positioning/start_student.php index 46d547f293..499b0c03ec 100644 --- a/plugin/positioning/start_student.php +++ b/plugin/positioning/start_student.php @@ -46,7 +46,13 @@ if ($initialData) { } } -$studentAverage = (int) Tracking::getAverageStudentScore($currentUserId, $courseCode, [], $sessionId); +$studentAverage = Tracking::get_avg_student_progress( + $currentUserId, + $courseCode, + [], + $sessionId +); + $averageToUnlock = (int) $plugin->get('average_percentage_to_unlock_final_exercise'); $finalExerciseTitle = ''; diff --git a/plugin/positioning/view/start.tpl b/plugin/positioning/view/start.tpl index a4886a26a4..6b18168aa7 100644 --- a/plugin/positioning/view/start.tpl +++ b/plugin/positioning/view/start.tpl @@ -1,7 +1,7 @@ {{ positioning_introduction }} -{{ grid }} +{{ table }} {% if radars %}