diff --git a/public/main/skills/assign.php b/public/main/skills/assign.php index 168b5f2e32..ca4928f027 100644 --- a/public/main/skills/assign.php +++ b/public/main/skills/assign.php @@ -304,9 +304,10 @@ if ($form->validate()) { $parentData = $skillModel->get($parentId); $data = $extraFieldValue->get_values_by_handler_and_field_variable($parentId, 'children_auto_threshold'); - if (!empty($data) && !empty($data['value'])) { + $sendEmail = true; + if ($sendEmail) { // Search X children - $requiredSkills = $data['value']; + $requiredSkills = isset($data['value']) ? (int) $data['value'] : 0; $children = $skillRelSkill->getChildren($parentId); $counter = 0; foreach ($children as $child) { @@ -321,9 +322,9 @@ if ($form->validate()) { Display::addFlash(Display::return_message(get_lang('Message Sent'))); $url = api_get_path(WEB_CODE_PATH).'skills/assign.php?user='.$userId.'&id='.$parentId; $link = Display::url($url, $url); - $subject = get_lang('A student has obtained the number of sub-skills needed to validate the mother skill.'); + $subject = get_lang('A student has obtained the number of sub-skills needed to validate the mother skill'); $message = sprintf( - get_lang('Learner %s has enough sub-skill to get skill %s. To assign this skill it is possible to go here : %s'), + get_lang('Learner %s has enough sub-skill to get skill %s . To assign this skill it is possible to go here : %s'), UserManager::formatUserFullName($user), $parentData['name'], $link @@ -352,17 +353,6 @@ if ($form->validate()) { ) ); - Display::addFlash( - Display::return_message( - sprintf( - get_lang('To assign a new skill to this user, click here'), - api_get_self().'?'.http_build_query(['user' => $user->getId()]) - ), - 'info', - false - ) - ); - header('Location: '.api_get_path(WEB_PATH)."badge/{$skillUser->getId()}"); exit; } diff --git a/public/main/skills/issued.php b/public/main/skills/issued.php index 242ae4d833..ad3a8e5b5f 100644 --- a/public/main/skills/issued.php +++ b/public/main/skills/issued.php @@ -262,6 +262,18 @@ if ($allowExport) { } } +$returnMessage = ''; +if (api_is_student_boss()) { + $returnMessage = Display::return_message( + sprintf( + get_lang('To assign a new skill to this user, click here'), + api_get_path(WEB_CODE_PATH).'skills/assign.php?user='.$user->getId() + ), + 'notice', + false + ); +} + $template = new Template(get_lang('Issued badge information')); $template->assign('issue_info', $skillRelUserInfo); $template->assign('allow_comment', $allowComment); @@ -282,5 +294,5 @@ $template->assign('personal_badge', $personalBadge); $template->assign('show_level', $showLevels); $content = $template->fetch($template->get_template('skill/issued.tpl')); $template->assign('header', get_lang('Issued badge information')); -$template->assign('content', $content); +$template->assign('content', $returnMessage.$content); $template->display_one_col_template(); diff --git a/src/CoreBundle/Entity/Listener/SkillRelUserListener.php b/src/CoreBundle/Entity/Listener/SkillRelUserListener.php index 5ecf23a3e6..1387244a20 100644 --- a/src/CoreBundle/Entity/Listener/SkillRelUserListener.php +++ b/src/CoreBundle/Entity/Listener/SkillRelUserListener.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Chamilo\CoreBundle\Entity\Listener; +use Chamilo\CoreBundle\Entity\Message; use Chamilo\CoreBundle\Entity\SkillRelUser; use Chamilo\CoreBundle\Entity\User; use Chamilo\CoreBundle\Settings\SettingsManager; @@ -30,34 +31,31 @@ class SkillRelUserListener $user = $skillRelUser->getUser(); $skill = $skillRelUser->getSkill(); - $badgeAssignationNotification = $this->settingsManager->getSetting('skill.badge_assignation_notification'); - - if ('true' === $badgeAssignationNotification) { - $url = $this->router->generate( - 'badge_issued_all', - ['skillId' => $skill->getId(), 'userId' => $user->getId()] - ); - - $message = sprintf( - $this->translator->trans('Hi, %s. You have achieved the skill "%s". To see the details go here: %s.'), - $user->getFirstname(), - $skill->getName(), - Display::url($url, $url) - ); - - if (null !== $this->security->getToken()) { - /** @var User $currentUser */ - $currentUser = $this->security->getUser(); - $message = (new Message()) - ->setTitle($this->translator->trans('You have achieved a new skill.')) - ->setContent($message) - ->addReceiverTo($user) - ->setSender($currentUser) - ; - - $event->getObjectManager()->persist($message); - $event->getObjectManager()->flush(); - } + // Notification of badge assignation + $url = $this->router->generate( + 'badge_issued_all', + ['skillId' => $skill->getId(), 'userId' => $user->getId()] + ); + + $message = sprintf( + $this->translator->trans('Hi, %s. You have achieved the skill "%s". To see the details go here: %s.'), + $user->getFirstname(), + $skill->getName(), + Display::url($url, $url) + ); + + if (null !== $this->security->getToken()) { + /** @var User $currentUser */ + $currentUser = $this->security->getUser(); + $message = (new Message()) + ->setTitle($this->translator->trans('You have achieved a new skill.')) + ->setContent($message) + ->addReceiverTo($user) + ->setSender($currentUser) + ; + + $event->getObjectManager()->persist($message); + $event->getObjectManager()->flush(); } } }