Skills: Fix checkbox defaults BT#13334

pull/4060/head
Julio 4 years ago
parent 657428cbfb
commit 469697d727
  1. 3
      main/admin/course_edit.php
  2. 6
      main/admin/skill_rel_course.php
  3. 18
      main/inc/lib/skill.lib.php

@ -330,8 +330,7 @@ if (api_get_configuration_value('multiple_access_url_show_shared_course_marker')
}
$allowSkillRelItem = api_get_configuration_value('allow_skill_rel_items');
if ($allowSkillRelItem) {
$selectedSkills = Skill::setSkillsToCourse($form, $courseId);
$courseInfo['skills'] = array_keys($selectedSkills);
Skill::setSkillsToCourse($form, $courseId);
}
$htmlHeadXtra[] = '

@ -33,14 +33,10 @@ if (!empty($sessionId)) {
}
$form->addHeader(get_lang('AddSkills').$sessionName);
$selectedSkills = Skill::setSkillsToCourse($form, $courseId, $sessionId);
$courseInfo['skills'] = array_keys($selectedSkills);
Skill::setSkillsToCourse($form, $courseId, $sessionId);
$form->addButtonSave(get_lang('Save'));
$form->setDefaults(['skills' => array_keys($selectedSkills)]);
if ($form->validate()) {
$result = Skill::saveSkillsToCourseFromForm($form);
if ($result) {

@ -2887,7 +2887,7 @@ class Skill extends Model
$selectedSkills = [];
/** @var \Chamilo\SkillBundle\Entity\SkillRelCourse $skillRelCourse */
foreach ($items as $skillRelCourse) {
$selectedSkills[$skillRelCourse->getSkill()->getId()] = $skillRelCourse->getSkill()->getName();
$selectedSkills[] = $skillRelCourse->getSkill()->getId();
}
if (!empty($skillList)) {
@ -2896,12 +2896,18 @@ class Skill extends Model
$elements = [];
foreach ($skillList as $skillId => $skill) {
$elements[] = $form->createElement(
$element = $form->createElement(
'checkbox',
"skills[$skillId]",
null,
$skill
);
if (in_array($skillId, $selectedSkills)) {
$element->setValue(1);
}
$elements[] = $element;
}
$form->addGroup($elements, '', get_lang('Skills'));
@ -2947,6 +2953,7 @@ class Skill extends Model
if (empty($course)) {
return false;
}
$session = null;
if (!empty($sessionId)) {
$session = api_get_session_entity($sessionId);
@ -2974,9 +2981,10 @@ class Skill extends Model
// Add new one
if (!empty($skills)) {
foreach ($skills as $skillId) {
$item = new SkillRelCourse();
$item->setCourse($course);
$item->setSession($session);
$item = (new SkillRelCourse())
->setCourse($course)
->setSession($session)
;
/** @var SkillEntity $skill */
$skill = $em->getRepository('ChamiloCoreBundle:Skill')->find($skillId);

Loading…
Cancel
Save