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'); $allowSkillRelItem = api_get_configuration_value('allow_skill_rel_items');
if ($allowSkillRelItem) { if ($allowSkillRelItem) {
$selectedSkills = Skill::setSkillsToCourse($form, $courseId); Skill::setSkillsToCourse($form, $courseId);
$courseInfo['skills'] = array_keys($selectedSkills);
} }
$htmlHeadXtra[] = ' $htmlHeadXtra[] = '

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

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

Loading…
Cancel
Save