From 7f9ce3ea1247a2fd9efd905f19302959cb23377b Mon Sep 17 00:00:00 2001 From: Christian Date: Mon, 16 May 2022 18:12:22 -0500 Subject: [PATCH] Gradebook - Add notification of skills from gradebook - refs BT#19823 --- main/inc/lib/skill.lib.php | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/main/inc/lib/skill.lib.php b/main/inc/lib/skill.lib.php index 0e1f6d0758..216d05fa5b 100755 --- a/main/inc/lib/skill.lib.php +++ b/main/inc/lib/skill.lib.php @@ -577,11 +577,14 @@ class SkillRelUser extends Model 'user_id = ? ' => (int) $userId, ]; - if ($courseId > 0) { + if ($sessionId > 0) { $whereConditions['AND course_id = ? '] = $courseId; - $whereConditions['AND session_id = ?'] = $sessionId; + $whereConditions['AND session_id = ? '] = $sessionId; + } else { + $whereConditions['AND course_id = ? AND session_id is NULL'] = $courseId; } + $result = Database::select( 'skill_id', $this->table, @@ -1241,6 +1244,29 @@ class Skill extends Model ]; $skill_rel_user->save($params); + + // It sends notifications about user skills from gradebook + $badgeAssignationNotification = api_get_configuration_value('badge_assignation_notification'); + if ($badgeAssignationNotification) { + $entityManager = Database::getManager(); + $skillRepo = $entityManager->getRepository('ChamiloCoreBundle:Skill'); + $skill = $skillRepo->find($skill_gradebook['skill_id']); + if ($skill) { + $user = api_get_user_entity($userId); + $url = api_get_path(WEB_PATH)."skill/{$skill_gradebook['skill_id']}/user/{$userId}"; + $message = sprintf( + get_lang('YouXHaveAchievedTheSkillYToSeeFollowLinkZ'), + $user->getFirstname(), + $skill->getName(), + Display::url($url, $url, ['target' => '_blank']) + ); + MessageManager::send_message( + $user->getId(), + get_lang('YouHaveAchievedANewSkill'), + $message + ); + } + } } } }