Change gradebook validation with different conditions see BT#13099

pull/2487/head
jmontoyaa 8 years ago
parent c3e4c4880e
commit 6790f9d26d
  1. 12
      user_portal.php

@ -314,6 +314,7 @@ if (!empty($courseAndSessions['courses']) && $allow) {
$result = [];
$result20 = 0;
$result80 = 0;
$countCoursesPassedNoDependency = 0;
/** @var Category $category */
foreach ($mainCategoryList as $category) {
$userFinished = Category::userFinishedCourse(
@ -328,6 +329,7 @@ if (!empty($courseAndSessions['courses']) && $allow) {
$result20 += 10;
}
} else {
$countCoursesPassedNoDependency++;
if ($result80 < 80) {
$result80 += 10;
}
@ -349,27 +351,27 @@ if (!empty($courseAndSessions['courses']) && $allow) {
if (!empty($category)) {
$minToValidate = $category->getMinimumToValidate();
$dependencies = $category->getCourseListDependency();
$countDependenciesPast = 0;
$countDependenciesPassed = 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(
$score = Category::userFinishedCourse(
$userId,
$subCategory,
true
);
if ($score) {
$countDependenciesPast++;
$countDependenciesPassed++;
}
}
}
$userFinished =
$countDependenciesPast == count($dependencies) &&
(count($subscribedCourses) - count($dependencies) >= $minToValidate)
$countDependenciesPassed == count($dependencies) &&
$countCoursesPassedNoDependency >= $minToValidate
;
if ($userFinished) {

Loading…
Cancel
Save