diff --git a/main/inc/lib/skill.lib.php b/main/inc/lib/skill.lib.php index 4d7a1c7e5f..fe9aa49533 100755 --- a/main/inc/lib/skill.lib.php +++ b/main/inc/lib/skill.lib.php @@ -1117,7 +1117,7 @@ class Skill extends Model * @param int $skillId The skill id * @return array The users list */ - public function listUsersWhoAchieved($skillId) + public function listUsersWhoAchieved($skillId, $filterByUsers = array()) { $skillId = intval($skillId); @@ -1136,8 +1136,12 @@ class Skill extends Model . "ON sru.user_id = user.user_id " . "INNER JOIN {$this->table} " . "ON sru.skill_id = skill.id " - . "WHERE skill.id = $skillId"; - + . "WHERE skill.id = $skillId "; + + if (!empty($filterByUsers)) { + $sql .= "AND user.user_id IN (" . implode(', ', $filterByUsers) . ")"; + } + $result = Database::query($sql); while ($row = Database::fetch_assoc($result)) { diff --git a/plugin/advancedskills/report.php b/plugin/advancedskills/report.php index 99777394af..b608737655 100644 --- a/plugin/advancedskills/report.php +++ b/plugin/advancedskills/report.php @@ -132,10 +132,14 @@ if ($isStudent) { $userId, STUDENT, false, false, false, null, null, null, null, null, null, DRH ); + $usersFilter = array(); + foreach ($students as $student) { - $tableRows = $objSkill->listUsersWhoAchieved($selectedSkill, $student['user_id']); + $usersFilter[] = $student['user_id']; } + $tableRows = $objSkill->listUsersWhoAchieved($selectedSkill, $usersFilter); + break; }