From 04deff8db5457de79da6717ad9016a1139dcdfd2 Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Fri, 9 Apr 2021 07:31:42 -0500 Subject: [PATCH] User Portal: Add course details in session with categories - refs BT#18622 Show same template block for course_student_info in grid and classic view --- main/inc/lib/userportal.lib.php | 125 ++++++++++++++++++++++---------- 1 file changed, 85 insertions(+), 40 deletions(-) diff --git a/main/inc/lib/userportal.lib.php b/main/inc/lib/userportal.lib.php index e62ff0e590..7fe2739f8a 100755 --- a/main/inc/lib/userportal.lib.php +++ b/main/inc/lib/userportal.lib.php @@ -1698,28 +1698,16 @@ class IndexManager $courses['in_category'][$key1]['student_info']['certificate'] = null; $isCertificateAvailable = $category[0]->is_certificate_available($user_id); if (isset($category[0])) { - if ($viewGridCourses) { - if ($isCertificateAvailable) { - $courses['in_category'][$key1]['student_info']['certificate'] = get_lang( - 'Yes' - ); - } else { - $courses['in_category'][$key1]['student_info']['certificate'] = get_lang( - 'No' - ); - } + if ($isCertificateAvailable) { + $courses['in_category'][$key1]['student_info']['certificate'] = Display::label( + get_lang('Yes'), + 'success' + ); } else { - if ($isCertificateAvailable) { - $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'), - 'danger' - ); - } + $courses['in_category'][$key1]['student_info']['certificate'] = Display::label( + get_lang('No'), + 'danger' + ); } } } @@ -1761,24 +1749,16 @@ class IndexManager if (isset($category[0])) { $certificateAvailable = $category[0]->is_certificate_available($user_id); - if ($viewGridCourses) { - if ($certificateAvailable) { - $courses['not_category'][$key]['student_info']['certificate'] = get_lang('Yes'); - } else { - $courses['not_category'][$key]['student_info']['certificate'] = get_lang('No'); - } + if ($certificateAvailable) { + $courses['not_category'][$key]['student_info']['certificate'] = Display::label( + get_lang('Yes'), + 'success' + ); } else { - if ($certificateAvailable) { - $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'), - 'danger' - ); - } + $courses['not_category'][$key]['student_info']['certificate'] = Display::label( + get_lang('No'), + 'danger' + ); } } } @@ -1989,7 +1969,8 @@ class IndexManager ); } else { $course_session['student_info']['certificate'] = Display::label( - get_lang('No') + get_lang('No'), + 'danger' ); } } @@ -2177,7 +2158,71 @@ class IndexManager 'session_course_item' ); if (isset($c[1])) { - $html_courses_session[] = $c[1]; + $course_session = $c[1]; + $course_session['skill'] = isset($c['skill']) ? $c['skill'] : ''; + + // Course option (show student progress) + // This code will add new variables (Progress, Score, Certificate) + if ($studentInfoProgress || $studentInfoScore || $studentInfoCertificate) { + if ($studentInfoProgress) { + $progress = Tracking::get_avg_student_progress( + $user_id, + $course['course_code'], + [], + $session_id + ); + $course_session['student_info']['progress'] = $progress === false ? null : $progress; + } + + if ($studentInfoScore) { + $percentage_score = Tracking::get_avg_student_score( + $user_id, + $course['course_code'], + [], + $session_id + ); + $course_session['student_info']['score'] = $percentage_score; + } + + if ($studentInfoCertificate) { + $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'), + 'danger' + ); + } + } + } + } + + $course_session['extrafields'] = CourseManager::getExtraFieldsToBePresented($course['real_id']); + if (false === $is_coach_course && $allowUnsubscribe && '1' === $course['unsubscribe']) { + $course_session['unregister_button'] = + CoursesAndSessionsCatalog::return_unregister_button( + ['code' => $course['course_code']], + Security::get_existing_token(), + '', + '', + $session_id + ); + } + + $html_courses_session[] = $course_session; } } $count_courses_session++;