From e5b740666cf6716044493e0db68fa7f277b72e9f Mon Sep 17 00:00:00 2001 From: Rafa Date: Wed, 29 Mar 2017 08:49:19 +0200 Subject: [PATCH] =?UTF-8?q?Improvement=20of=20Student=20info:=20Now=20the?= =?UTF-8?q?=20client=20is=20allow=20to=20activate=20the=20options=20(?= =?UTF-8?q?=E2=80=98progress=E2=80=99,=E2=80=99score=E2=80=99,=E2=80=99cer?= =?UTF-8?q?tificate=E2=80=99)=20individually.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/inc/lib/userportal.lib.php | 260 +++++++++++++++++----------- main/install/configuration.dist.php | 4 +- 2 files changed, 158 insertions(+), 106 deletions(-) diff --git a/main/inc/lib/userportal.lib.php b/main/inc/lib/userportal.lib.php index da2238b1a8..d9afe70582 100755 --- a/main/inc/lib/userportal.lib.php +++ b/main/inc/lib/userportal.lib.php @@ -1168,69 +1168,94 @@ class IndexManager //Course option (show student progress) //This code will add new variables (Progress, Score, Certificate) - if (api_get_configuration_value('my_course_progress') === true && api_is_student() === true) { + if (isset(api_get_configuration_value('course_student_info')['progress']) || + isset(api_get_configuration_value('course_student_info')['score']) || + isset(api_get_configuration_value('course_student_info')['certificate'])) { foreach ($specialCourses as $key => $specialCourseInfo) { - $progress = Tracking::get_avg_student_progress( - $user_id, - $specialCourseInfo['course_code'] - ); - $percentage_score = Tracking::get_avg_student_score( - $user_id, - $specialCourseInfo['course_code'], - array() - ); - $specialCourses[$key]['student_info']['progress'] = ($progress === false)? null : $progress; - $specialCourses[$key]['student_info']['score'] = $percentage_score; + + if (isset(api_get_configuration_value('course_student_info')['progress']) && + api_get_configuration_value('course_student_info')['progress'] === true) { + $progress = Tracking::get_avg_student_progress( + $user_id, + $specialCourseInfo['course_code'] + ); + $specialCourses[$key]['student_info']['progress'] = ($progress === false)? null : $progress; + } - $category = Category::load( - null, - null, - $specialCourseInfo['course_code'], - null, - null, - null - ); - $specialCourses[$key]['student_info']['certificate'] = null; - if (isset($category[0])) { - if ($category[0]->is_certificate_available($user_id)) { - $specialCourses[$key]['student_info']['certificate'] = Display::label(get_lang('Yes'), 'success'); - } else { - $specialCourses[$key]['student_info']['certificate'] = Display::label(get_lang('No')); + if (isset(api_get_configuration_value('course_student_info')['score']) && + api_get_configuration_value('course_student_info')['score'] === true) { + $percentage_score = Tracking::get_avg_student_score( + $user_id, + $specialCourseInfo['course_code'], + array() + ); + $specialCourses[ $key ]['student_info']['score'] = $percentage_score; + } + + if (isset(api_get_configuration_value('course_student_info')['certificate']) && + api_get_configuration_value('course_student_info')['certificate'] === true) { + $category = Category::load( + null, + null, + $specialCourseInfo['course_code'], + null, + null, + null + ); + $specialCourses[ $key ]['student_info']['certificate'] = null; + if ( isset( $category[0] ) ) { + if ( $category[0]->is_certificate_available( $user_id ) ) { + $specialCourses[ $key ]['student_info']['certificate'] = Display::label( get_lang( 'Yes' ), 'success' ); + } else { + $specialCourses[ $key ]['student_info']['certificate'] = Display::label( get_lang( 'No' ) ); + } } } + } if (isset($courses['in_category']) && isset($courses['not_category'])) { foreach ($courses['in_category'] as $key1 => $value) { if (isset($courses['in_category'][$key1]['courses'])) { foreach ($courses['in_category'][$key1]['courses'] as $key2 => $courseInCatInfo) { - $progress = Tracking::get_avg_student_progress( - $user_id, - $courseInCatInfo['course_code'] - ); - $percentage_score = Tracking::get_avg_student_score( - $user_id, - $specialCourseInfo['course_code'], - array() - ); - $courses['in_category'][$key1]['courses'][$key2]['student_info']['progress'] = ($progress === false)? null : $progress; - $courses['in_category'][$key1]['courses'][$key2]['student_info']['score'] = $percentage_score; + + if (isset(api_get_configuration_value('course_student_info')['progress']) && + api_get_configuration_value('course_student_info')['progress'] === true) { + $progress = Tracking::get_avg_student_progress( + $user_id, + $courseInCatInfo['course_code'] + ); + $courses['in_category'][$key1]['courses'][$key2]['student_info']['progress'] = ($progress === false)? null : $progress; + } - $category = Category::load( - null, - null, - $courseInCatInfo['course_code'], - null, - null, - null - ); - $courses['in_category'][ $key1 ]['student_info']['certificate'] = null; - if (isset($category[0])) { - if ($category[0]->is_certificate_available($user_id)) { - $courses['in_category'][ $key1 ]['student_info']['certificate'] = Display::label(get_lang('Yes'), 'success'); - } else { - $courses['in_category'][ $key1 ]['student_info']['certificate'] = Display::label(get_lang('No')); + if (isset(api_get_configuration_value('course_student_info')['score']) && + api_get_configuration_value('course_student_info')['score'] === true) { + $percentage_score = Tracking::get_avg_student_score( + $user_id, + $specialCourseInfo['course_code'], + array() + ); + $courses['in_category'][$key1]['courses'][$key2]['student_info']['score'] = $percentage_score; + } + + if (isset(api_get_configuration_value('course_student_info')['certificate']) && + api_get_configuration_value('course_student_info')['certificate'] === true) { + $category = Category::load( + null, + null, + $courseInCatInfo['course_code'], + null, + null, + null + ); + $courses['in_category'][ $key1 ]['student_info']['certificate'] = null; + if ( isset( $category[0] ) ) { + if ( $category[0]->is_certificate_available( $user_id ) ) { + $courses['in_category'][ $key1 ]['student_info']['certificate'] = Display::label( get_lang( 'Yes' ), 'success' ); + } else { + $courses['in_category'][ $key1 ]['student_info']['certificate'] = Display::label( get_lang( 'No' ) ); + } } } @@ -1238,32 +1263,43 @@ class IndexManager } } foreach ($courses['not_category'] as $key => $courseNotInCatInfo) { - $progress = Tracking::get_avg_student_progress( - $user_id, - $courseNotInCatInfo['course_code'] - ); - $percentage_score = Tracking::get_avg_student_score( - $user_id, - $courseNotInCatInfo['course_code'], - array() - ); - $courses['not_category'][ $key ]['student_info']['progress'] = ($progress === false)? null : $progress; - $courses['not_category'][ $key ]['student_info']['score'] = $percentage_score; - $category = Category::load( - null, - null, - $courseNotInCatInfo['course_code'], - null, - null, - null - ); - $courses['not_category'][ $key ]['student_info']['certificate'] = null; - if (isset($category[0])) { - if ($category[0]->is_certificate_available($user_id)) { - $courses['not_category'][ $key ]['student_info']['certificate'] = Display::label(get_lang('Yes'), 'success'); - } else { - $courses['not_category'][ $key ]['student_info']['certificate'] = Display::label(get_lang('No')); + if (isset(api_get_configuration_value('course_student_info')['progress']) && + api_get_configuration_value('course_student_info')['progress'] === true) { + $progress = Tracking::get_avg_student_progress( + $user_id, + $courseNotInCatInfo['course_code'] + ); + $courses['not_category'][ $key ]['student_info']['progress'] = ($progress === false)? null : $progress; + } + + if (isset(api_get_configuration_value('course_student_info')['score']) && + api_get_configuration_value('course_student_info')['score'] === true) { + $percentage_score = Tracking::get_avg_student_score( + $user_id, + $courseNotInCatInfo['course_code'], + array() + ); + $courses['not_category'][ $key ]['student_info']['score'] = $percentage_score; + } + + if (isset(api_get_configuration_value('course_student_info')['certificate']) && + api_get_configuration_value('course_student_info')['certificate'] === true) { + $category = Category::load( + null, + null, + $courseNotInCatInfo['course_code'], + null, + null, + null + ); + $courses['not_category'][ $key ]['student_info']['certificate'] = null; + if (isset($category[0])) { + if ($category[0]->is_certificate_available($user_id)) { + $courses['not_category'][ $key ]['student_info']['certificate'] = Display::label(get_lang('Yes'), 'success'); + } else { + $courses['not_category'][ $key ]['student_info']['certificate'] = Display::label(get_lang('No')); + } } } @@ -1394,38 +1430,52 @@ class IndexManager //Course option (show student progress) //This code will add new variables (Progress, Score, Certificate) - if (api_get_configuration_value('my_course_progress') === true && api_is_student() === true) { - $progress = Tracking::get_avg_student_progress( - $user_id, - $course['course_code'], - array(), - $session_id - ); - $percentage_score = Tracking::get_avg_student_score( - $user_id, - $course['course_code'], - array(), - $session_id - ); - $course_session['student_info']['progress'] = ($progress === false)? null : $progress; - $course_session['student_info']['score'] = $percentage_score; + if (isset(api_get_configuration_value('course_student_info')['progress']) || + isset(api_get_configuration_value('course_student_info')['score']) || + isset(api_get_configuration_value('course_student_info')['certificate'])) { - $category = Category::load( - null, - null, - $course['course_code'], - null, - null, - $session_id - ); - $course_session['student_info']['certificate'] = null; - if (isset($category[0])) { - if ($category[0]->is_certificate_available($user_id)) { - $course_session['student_info']['certificate'] = Display::label(get_lang('Yes'), 'success'); - } else { - $course_session['student_info']['certificate'] = Display::label(get_lang('No')); + if (isset(api_get_configuration_value('course_student_info')['progress']) && + api_get_configuration_value('course_student_info')['progress'] === true) { + $progress = Tracking::get_avg_student_progress( + $user_id, + $course['course_code'], + array(), + $session_id + ); + $course_session['student_info']['progress'] = ($progress === false)? null : $progress; + } + + if (isset(api_get_configuration_value('course_student_info')['score']) && + api_get_configuration_value('course_student_info')['score'] === true) { + $percentage_score = Tracking::get_avg_student_score( + $user_id, + $course['course_code'], + array(), + $session_id + ); + $course_session['student_info']['score'] = $percentage_score; + } + + if (isset(api_get_configuration_value('course_student_info')['certificate']) && + api_get_configuration_value('course_student_info')['certificate'] === true) { + $category = Category::load( + null, + null, + $course['course_code'], + null, + null, + $session_id + ); + $course_session['student_info']['certificate'] = null; + if (isset($category[0])) { + if ($category[0]->is_certificate_available($user_id)) { + $course_session['student_info']['certificate'] = Display::label(get_lang('Yes'), 'success'); + } else { + $course_session['student_info']['certificate'] = Display::label(get_lang('No')); + } } } + } $html_courses_session[] = $course_session; diff --git a/main/install/configuration.dist.php b/main/install/configuration.dist.php index b15fcaa772..add632d7d7 100755 --- a/main/install/configuration.dist.php +++ b/main/install/configuration.dist.php @@ -284,7 +284,9 @@ $_configuration['system_stable'] = NEW_VERSION_STABLE; // Prevents the duplicate upload in assignments // $_configuration['assignment_prevent_duplicate_upload'] = false; //Show student progress in My courses page -//$_configuration['my_course_progress'] = false; +//$_configuration['course_student_info']['score'] = false; +//$_configuration['course_student_info']['progress'] = false; +//$_configuration['course_student_info']['certificate'] = false; // Set ConsideredWorkingTime work extra field variable to show in MyStudents page works report // (with internal id 'work_time' as below) and enable the following line to show in MyStudents page works report // $_configuration['considered_working_time'] = 'work_time';