|
|
|
@ -347,11 +347,31 @@ if (!empty($courseAndSessions['courses']) && $allow) { |
|
|
|
|
$badgeList[$id]['name'] = $category->get_name(); |
|
|
|
|
$badgeList[$id]['finished'] = false; |
|
|
|
|
if (!empty($category)) { |
|
|
|
|
$userFinished = Category::userFinishedCourse( |
|
|
|
|
$userId, |
|
|
|
|
$category, |
|
|
|
|
true |
|
|
|
|
); |
|
|
|
|
$minToValidate = $category->getMinimumToValidate(); |
|
|
|
|
$dependencies = $category->getCourseListDependency(); |
|
|
|
|
$countDependenciesPast = 0; |
|
|
|
|
foreach ($dependencies as $courseId) { |
|
|
|
|
$courseInfo = api_get_course_info_by_id($courseId); |
|
|
|
|
$courseCode = $courseInfo['code']; |
|
|
|
|
$categories = Category::load(null, null, $courseCode); |
|
|
|
|
$subCategory = !empty($categories[0]) ? $categories[0] : null; |
|
|
|
|
if (!empty($subCategory)) { |
|
|
|
|
$score = Category::getCurrentScore( |
|
|
|
|
$userId, |
|
|
|
|
$subCategory, |
|
|
|
|
true |
|
|
|
|
); |
|
|
|
|
if ($score) { |
|
|
|
|
$countDependenciesPast++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$userFinished = |
|
|
|
|
$countDependenciesPast == count($dependencies) && |
|
|
|
|
(count($subscribedCourses) - count($dependencies) >= $minToValidate) |
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
if ($userFinished) { |
|
|
|
|
$badgeList[$id]['finished'] = true; |
|
|
|
|
} |
|
|
|
|