From 6a9ad8a430c59d9d711a5aeac3946626a88b2961 Mon Sep 17 00:00:00 2001 From: jmontoyaa Date: Mon, 21 Aug 2017 10:02:22 +0200 Subject: [PATCH] Show badges in sidebar if user finished the gradebook see BT#13099 --- app/Resources/public/css/base.css | 9 +++++++++ main/inc/lib/userportal.lib.php | 1 + main/template/default/layout/layout_2_col.tpl | 19 +++++++++++------- user_portal.php | 20 +++++++++++++++---- 4 files changed, 38 insertions(+), 11 deletions(-) diff --git a/app/Resources/public/css/base.css b/app/Resources/public/css/base.css index aca5571947..26af15c7cf 100644 --- a/app/Resources/public/css/base.css +++ b/app/Resources/public/css/base.css @@ -6846,3 +6846,12 @@ input.form-control[type="color"] { @media (min-width: 1200px) { } + + +.badge_sidebar_image { + width: 120px; +} + +.badge_sidebar_image_transparency{ + opacity: 0.5; +} \ No newline at end of file diff --git a/main/inc/lib/userportal.lib.php b/main/inc/lib/userportal.lib.php index 9572ca085e..18beb2e1ea 100755 --- a/main/inc/lib/userportal.lib.php +++ b/main/inc/lib/userportal.lib.php @@ -2267,6 +2267,7 @@ class IndexManager $template->assign('course_categories', $categories); return [ + 'courses' => $courseList, 'html' => $template->fetch($layout), 'course_count' => count($courseList), 'session_count' => $sessionCount diff --git a/main/template/default/layout/layout_2_col.tpl b/main/template/default/layout/layout_2_col.tpl index 47b1e07d49..0ce11d0886 100755 --- a/main/template/default/layout/layout_2_col.tpl +++ b/main/template/default/layout/layout_2_col.tpl @@ -155,13 +155,18 @@ {{ 'Progress' | get_lang }} : {{ grade_book_progress }} %
{% for badge in grade_book_badge_list %} - {{ badge.name }} - - {% if badge.finished %} - Yes - {% else %} - No - {% endif %} -
+ {% for skill in badge.skills %} +
+ {% if badge.finished %} + + {% else %} + + {% endif %} +
+
+ {{ skill.name }} +
+ {% endfor %} {% endfor %} diff --git a/user_portal.php b/user_portal.php index 7645acb692..4e38436c99 100755 --- a/user_portal.php +++ b/user_portal.php @@ -192,7 +192,9 @@ if (api_get_setting('go_to_course_after_login') == 'true') { if (isset($sessions[0])) { $sessionInfo = $sessions[0]; // Session only has 1 course. - if (isset($sessionInfo['courses']) && count($sessionInfo['courses']) == 1) { + if (isset($sessionInfo['courses']) && + count($sessionInfo['courses']) == 1 + ) { $courseCode = $sessionInfo['courses'][0]['code']; $courseInfo = api_get_course_info_by_id($sessionInfo['courses'][0]['real_id']); $courseUrl = $courseInfo['course_public_url'].'?id_session='.$sessionInfo['session_id']; @@ -211,7 +213,10 @@ if (api_get_setting('go_to_course_after_login') == 'true') { } // User is subscribed to 1 course. - if (!isset($_SESSION['coursesAlreadyVisited']) && $count_of_sessions == 0 && $count_of_courses_no_sessions == 1) { + if (!isset($_SESSION['coursesAlreadyVisited']) && + $count_of_sessions == 0 && + $count_of_courses_no_sessions == 1 + ) { $courses = CourseManager::get_courses_list_by_user_id( $userId ); @@ -297,7 +302,6 @@ if (!empty($courseAndSessions['courses']) && $allow) { } } - // @todo improve calls of course info $subscribedCourses = !empty($courseAndSessions['courses']) ? $courseAndSessions['courses'] : []; $mainCategoryList = []; @@ -348,6 +352,7 @@ if (!empty($courseAndSessions['courses']) && $allow) { $category = !empty($categories[0]) ? $categories[0] : []; $badgeList[$id]['name'] = $category->get_name(); $badgeList[$id]['finished'] = false; + $badgeList[$id]['skills'] = []; if (!empty($category)) { $minToValidate = $category->getMinimumToValidate(); $dependencies = $category->getCourseListDependency(); @@ -375,7 +380,15 @@ if (!empty($courseAndSessions['courses']) && $allow) { ; if ($userFinished) { + $objSkill = new Skill(); + $skills = $category->get_skills(); + $skillList = []; + foreach ($skills as $skill) { + $skillList[] = $objSkill->get($skill['id']); + } + $badgeList[$id]['finished'] = true; + $badgeList[$id]['skills'] = $skillList; } } } @@ -538,7 +551,6 @@ if (!empty($courseAndSessions['courses']) && $allow) { 'grade_book_progress', $finalResult ); - $controller->tpl->assign('grade_book_badge_list', $badgeList); /*if ($finalScore > 0) { $finalScore = (int) $finalScore / count($total);