Browse Source

Show badges in sidebar if user finished the gradebook see BT#13099

jmontoyaa 7 years ago
parent
commit
6a9ad8a430

+ 9 - 0
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;
+}

+ 1 - 0
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

+ 12 - 7
main/template/default/layout/layout_2_col.tpl

@@ -155,13 +155,18 @@
                                         {{ 'Progress' | get_lang  }} : {{ grade_book_progress }} %
                                         <br />
                                         {% for badge in grade_book_badge_list %}
-                                            {{ badge.name }} -
-                                            {% if badge.finished %}
-                                                Yes
-                                            {% else %}
-                                                No
-                                            {% endif %}
-                                            <br />
+                                            {% for skill in badge.skills %}
+                                                <div class="badge_sidebar">
+                                                {% if badge.finished %}
+                                                    <img class="badge_sidebar_image " src = "{{ skill.web_icon_path }}" />
+                                                {% else %}
+                                                    <img class="badge_sidebar_image badge_sidebar_image_transparency" src = "{{ skill.web_icon_path }}" />
+                                                {% endif %}
+                                                </div>
+                                                <div class="badge_sidebar_title">
+                                                {{ skill.name }}
+                                                </div>
+                                            {% endfor %}
                                         {% endfor %}
                                     </li>
                                 </ul>

+ 16 - 4
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);