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();
}
}
}