parent
45438d383a
commit
95b4ffa9e4
@ -0,0 +1,46 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace Application\Migrations\Schema\V111; |
||||||
|
|
||||||
|
use Doctrine\DBAL\Migrations\AbstractMigration; |
||||||
|
use Doctrine\DBAL\Schema\Schema; |
||||||
|
|
||||||
|
class Version20160405112100 extends AbstractMigration |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @param Schema $schema |
||||||
|
*/ |
||||||
|
public function up(Schema $schema) |
||||||
|
{ |
||||||
|
$this->addSql( |
||||||
|
'CREATE TABLE skill_level_profile (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB' |
||||||
|
); |
||||||
|
$this->addSql( |
||||||
|
'CREATE TABLE skill_level (id INT AUTO_INCREMENT NOT NULL, profile_id INT NOT NULL, name VARCHAR(255) NOT NULL, position INT, short_name VARCHAR(255), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB' |
||||||
|
); |
||||||
|
$this->addSql( |
||||||
|
'ALTER TABLE skill_rel_user ADD acquired_level INT, ADD argumentation TEXT, ADD argumentation_author_id INT, MODIFY course_id INT, MODIFY session_id INT' |
||||||
|
); |
||||||
|
$this->addSql( |
||||||
|
'CREATE TABLE skill_rel_user_comment (id INT AUTO_INCREMENT NOT NULL, skill_rel_user_id INT NOT NULL, feedback_giver_id INT NOT NULL, feedback_text TEXT, feedback_value INT, feedback_datetime DATETIME, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB' |
||||||
|
); |
||||||
|
$this->addSql( |
||||||
|
'ALTER TABLE skill ADD profile_id INT' |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @param Schema $schema |
||||||
|
*/ |
||||||
|
public function down(Schema $schema) |
||||||
|
{ |
||||||
|
$this->addSql( |
||||||
|
'ALTER TABLE skill_rel_user DROP COLUMN acquired_level, DROP COLUMN argumentation, DROP COLUMN argumentation_author_id, MODIFY course_id INT NOT NULL, MODIFY session_id INT NOT NULL' |
||||||
|
); |
||||||
|
$this->addSql( |
||||||
|
'ALTER TABLE skill DROP COLUMN profile_id' |
||||||
|
); |
||||||
|
$this->addSql('DROP TABLE skill_level'); |
||||||
|
$this->addSql('DROP TABLE skill_level_profile'); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,92 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/* For license terms, see /license.txt */ |
||||||
|
|
||||||
|
/** |
||||||
|
* This script manages the skills, levels and profiles assignments. |
||||||
|
* @package chamilo.skills |
||||||
|
*/ |
||||||
|
|
||||||
|
$cidReset = true; |
||||||
|
require_once '../inc/global.inc.php'; |
||||||
|
api_protect_admin_script(); |
||||||
|
$em = Database::getManager(); |
||||||
|
$profiles = $em->getRepository('ChamiloSkillBundle:Profile')->findAll(); |
||||||
|
$list = $em->getRepository('ChamiloCoreBundle:Skill')->findAll(); |
||||||
|
|
||||||
|
$listAction = api_get_self(); |
||||||
|
|
||||||
|
$action = ''; |
||||||
|
if (isset($_GET['action']) && in_array($_GET['action'], ['add', 'edit', 'delete'])) { |
||||||
|
$action = $_GET['action']; |
||||||
|
} |
||||||
|
|
||||||
|
$id = isset($_GET['id']) ? $_GET['id'] : ''; |
||||||
|
|
||||||
|
$item = null; |
||||||
|
if (!empty($id)) { |
||||||
|
/** @var \Chamilo\CoreBundle\Entity\Skill $item */ |
||||||
|
$item = $em->getRepository('ChamiloCoreBundle:Skill')->find($id); |
||||||
|
if (!$item) { |
||||||
|
api_not_allowed(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
$form = new FormValidator('Skill', 'GET', api_get_self().'?action='.$action.'&id='.$id); |
||||||
|
$form->addSelectFromCollection('profile_id', get_lang('Profile'), $profiles, null, true); |
||||||
|
$form->addHidden('action', $action); |
||||||
|
$form->addHidden('id', $id); |
||||||
|
$form->addButtonSave(get_lang('Update')); |
||||||
|
|
||||||
|
if (!empty($item)) { |
||||||
|
$profile = $item->getProfile(); |
||||||
|
if ($profile) { |
||||||
|
$form->setDefaults( |
||||||
|
[ |
||||||
|
'profile_id' => $item->getProfile()->getId(), |
||||||
|
] |
||||||
|
); |
||||||
|
} |
||||||
|
$form->addHeader($item->getName()); |
||||||
|
} |
||||||
|
$formToDisplay = $form->returnForm(); |
||||||
|
|
||||||
|
$interbreadcrumb[] = array ('url' => 'index.php', 'name' => get_lang('PlatformAdmin')); |
||||||
|
$interbreadcrumb[] = array ('url' => api_get_self(), 'name' => get_lang('Skill')); |
||||||
|
|
||||||
|
$tpl = new Template($action); |
||||||
|
switch ($action) { |
||||||
|
case 'edit': |
||||||
|
$tpl->assign('form', $formToDisplay); |
||||||
|
$tpl->assign('actions', Display::url(get_lang('List'), $listAction)); |
||||||
|
|
||||||
|
if ($form->validate()) { |
||||||
|
$values = $form->exportValues(); |
||||||
|
|
||||||
|
$profile = $em->getRepository('ChamiloSkillBundle:Profile')->find($values['profile_id']); |
||||||
|
$item->setProfile($profile); |
||||||
|
|
||||||
|
$em->persist($item); |
||||||
|
$em->flush(); |
||||||
|
header('Location: '.$listAction); |
||||||
|
exit; |
||||||
|
} |
||||||
|
|
||||||
|
break; |
||||||
|
case 'delete': |
||||||
|
$tpl->assign('actions', Display::url(get_lang('List'), $listAction)); |
||||||
|
$em->remove($item); |
||||||
|
$em->flush(); |
||||||
|
header('Location: '.$listAction); |
||||||
|
exit; |
||||||
|
|
||||||
|
break; |
||||||
|
default: |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
$tpl->assign('list', $list); |
||||||
|
|
||||||
|
$contentTemplate = $tpl->fetch('default/admin/skill.tpl'); |
||||||
|
$tpl->assign('content', $contentTemplate); |
||||||
|
$tpl->display_one_col_template(); |
@ -0,0 +1,112 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
|
||||||
|
/** |
||||||
|
* Add a skill Level |
||||||
|
* @package chamilo.skills |
||||||
|
*/ |
||||||
|
|
||||||
|
$cidReset = true; |
||||||
|
|
||||||
|
require_once '../inc/global.inc.php'; |
||||||
|
|
||||||
|
api_protect_admin_script(); |
||||||
|
|
||||||
|
$em = Database::getManager(); |
||||||
|
$profiles = $em->getRepository('ChamiloSkillBundle:Profile')->findAll(); |
||||||
|
$list = $em->getRepository('ChamiloSkillBundle:Level')->findAll(); |
||||||
|
|
||||||
|
$listAction = api_get_self(); |
||||||
|
|
||||||
|
$action = ''; |
||||||
|
if (isset($_GET['action']) && in_array($_GET['action'], ['add', 'edit', 'delete', 'add_level'])) { |
||||||
|
$action = $_GET['action']; |
||||||
|
} |
||||||
|
|
||||||
|
$id = isset($_GET['id']) ? $_GET['id'] : ''; |
||||||
|
|
||||||
|
$item = null; |
||||||
|
if (!empty($id)) { |
||||||
|
/** @var \Chamilo\SkillBundle\Entity\Level $item */ |
||||||
|
$item = $em->getRepository('ChamiloSkillBundle:Level')->find($id); |
||||||
|
if (!$item) { |
||||||
|
api_not_allowed(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
$form = new FormValidator('Level', 'GET', api_get_self().'?action='.$action.'&id='.$id); |
||||||
|
$form->addText('name', get_lang('Name')); |
||||||
|
$form->addText('short_name', get_lang('ShortName')); |
||||||
|
$form->addSelectFromCollection('profile_id', get_lang('Profile'), $profiles); |
||||||
|
$form->addHidden('action', $action); |
||||||
|
$form->addHidden('id', $id); |
||||||
|
$form->addButtonSave(get_lang('Save')); |
||||||
|
|
||||||
|
if (!empty($item)) { |
||||||
|
$form->setDefaults([ |
||||||
|
'name' => $item->getName(), |
||||||
|
'short_name' => $item->getShortName(), |
||||||
|
'profile_id' => $item->getProfile()->getId(), |
||||||
|
]); |
||||||
|
} |
||||||
|
$formToDisplay = $form->returnForm(); |
||||||
|
|
||||||
|
$interbreadcrumb[] = array ('url' => 'index.php', 'name' => get_lang('PlatformAdmin')); |
||||||
|
$interbreadcrumb[] = array ('url' => api_get_self(), 'name' => get_lang('SkillProfile')); |
||||||
|
|
||||||
|
$tpl = new Template($action); |
||||||
|
switch ($action) { |
||||||
|
case 'add': |
||||||
|
$tpl->assign('form', $formToDisplay); |
||||||
|
if ($form->validate()) { |
||||||
|
$values = $form->exportValues(); |
||||||
|
$item = new \Chamilo\SkillBundle\Entity\Level(); |
||||||
|
$item->setName($values['name']); |
||||||
|
$item->setShortName($values['short_name']); |
||||||
|
$profile = $em->getRepository('ChamiloSkillBundle:Profile')->find($values['profile_id']); |
||||||
|
$item->setProfile($profile); |
||||||
|
|
||||||
|
$em->persist($item); |
||||||
|
$em->flush(); |
||||||
|
header('Location: '.$listAction); |
||||||
|
exit; |
||||||
|
} |
||||||
|
$tpl->assign('actions', Display::url(get_lang('List'), $listAction)); |
||||||
|
break; |
||||||
|
case 'edit': |
||||||
|
$tpl->assign('form', $formToDisplay); |
||||||
|
$tpl->assign('actions', Display::url(get_lang('List'), $listAction)); |
||||||
|
|
||||||
|
if ($form->validate()) { |
||||||
|
$values = $form->exportValues(); |
||||||
|
|
||||||
|
$item->setName($values['name']); |
||||||
|
$item->setShortName($values['short_name']); |
||||||
|
$profile = $em->getRepository('ChamiloSkillBundle:Profile')->find($values['profile_id']); |
||||||
|
$item->setProfile($profile); |
||||||
|
|
||||||
|
$em->persist($item); |
||||||
|
$em->flush(); |
||||||
|
header('Location: '.$listAction); |
||||||
|
exit; |
||||||
|
} |
||||||
|
|
||||||
|
break; |
||||||
|
case 'delete': |
||||||
|
$tpl->assign('actions', Display::url(get_lang('List'), $listAction)); |
||||||
|
$em->remove($item); |
||||||
|
$em->flush(); |
||||||
|
header('Location: '.$listAction); |
||||||
|
exit; |
||||||
|
|
||||||
|
break; |
||||||
|
default: |
||||||
|
$tpl->assign('actions', Display::url(get_lang('Add'), api_get_self().'?action=add')); |
||||||
|
} |
||||||
|
|
||||||
|
$tpl->assign('list', $list); |
||||||
|
|
||||||
|
$contentTemplate = $tpl->fetch('default/admin/skill_level.tpl'); |
||||||
|
$tpl->assign('content', $contentTemplate); |
||||||
|
$tpl->display_one_col_template(); |
@ -0,0 +1,120 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
|
||||||
|
/** |
||||||
|
* Add a skill Profile |
||||||
|
* @package chamilo.skills |
||||||
|
*/ |
||||||
|
|
||||||
|
$cidReset = true; |
||||||
|
require_once '../inc/global.inc.php'; |
||||||
|
|
||||||
|
api_protect_admin_script(); |
||||||
|
$em = Database::getManager(); |
||||||
|
$list = $em->getRepository('ChamiloSkillBundle:Profile')->findAll(); |
||||||
|
|
||||||
|
$listAction = api_get_self(); |
||||||
|
|
||||||
|
$action = ''; |
||||||
|
if (isset($_GET['action']) && in_array($_GET['action'], ['add', 'edit', 'delete', 'move_up', 'move_down'])) { |
||||||
|
$action = $_GET['action']; |
||||||
|
} |
||||||
|
|
||||||
|
$id = isset($_GET['id']) ? $_GET['id'] : ''; |
||||||
|
|
||||||
|
$item = null; |
||||||
|
if (!empty($id)) { |
||||||
|
$item = $em->getRepository('ChamiloSkillBundle:Profile')->find($id); |
||||||
|
if (!$item) { |
||||||
|
api_not_allowed(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
$form = new FormValidator('Profile', 'GET', api_get_self().'?action='.$action.'&id='.$id); |
||||||
|
$form->addText('name', get_lang('Name')); |
||||||
|
$form->addHidden('action', $action); |
||||||
|
$form->addHidden('id', $id); |
||||||
|
$form->addButtonSave(get_lang('Save')); |
||||||
|
|
||||||
|
if (!empty($item)) { |
||||||
|
$form->setDefaults(['name' => $item->getName()]); |
||||||
|
} |
||||||
|
$formToDisplay = $form->returnForm(); |
||||||
|
|
||||||
|
$interbreadcrumb[] = array ('url' => 'index.php', 'name' => get_lang('PlatformAdmin')); |
||||||
|
$interbreadcrumb[] = array ('url' => api_get_self(), 'name' => get_lang('SkillProfile')); |
||||||
|
|
||||||
|
$tpl = new Template($action); |
||||||
|
switch ($action) { |
||||||
|
case 'move_up': |
||||||
|
/** @var \Chamilo\SkillBundle\Entity\Level $item */ |
||||||
|
$item = $em->getRepository('ChamiloSkillBundle:Level')->find($_GET['level_id']); |
||||||
|
|
||||||
|
$position = $item->getPosition(); |
||||||
|
|
||||||
|
if (!empty($position)) { |
||||||
|
$item->setPosition($position-1); |
||||||
|
} |
||||||
|
$em->persist($item); |
||||||
|
$em->flush(); |
||||||
|
header('Location: '.$listAction); |
||||||
|
exit; |
||||||
|
break; |
||||||
|
case 'move_down': |
||||||
|
/** @var \Chamilo\SkillBundle\Entity\Level $item */ |
||||||
|
$item = $em->getRepository('ChamiloSkillBundle:Level')->find($_GET['level_id']); |
||||||
|
|
||||||
|
$position = $item->getPosition(); |
||||||
|
|
||||||
|
$item->setPosition($position+1); |
||||||
|
|
||||||
|
$em->persist($item); |
||||||
|
$em->flush(); |
||||||
|
header('Location: '.$listAction); |
||||||
|
exit; |
||||||
|
break; |
||||||
|
case 'add': |
||||||
|
$tpl->assign('form', $formToDisplay); |
||||||
|
if ($form->validate()) { |
||||||
|
$values = $form->exportValues(); |
||||||
|
$item = new \Chamilo\SkillBundle\Entity\Profile(); |
||||||
|
$item->setName($values['name']); |
||||||
|
$em->persist($item); |
||||||
|
$em->flush(); |
||||||
|
header('Location: '.$listAction); |
||||||
|
exit; |
||||||
|
} |
||||||
|
$tpl->assign('actions', Display::url(get_lang('List'), $listAction)); |
||||||
|
break; |
||||||
|
case 'edit': |
||||||
|
$tpl->assign('form', $formToDisplay); |
||||||
|
$tpl->assign('actions', Display::url(get_lang('List'), $listAction)); |
||||||
|
|
||||||
|
if ($form->validate()) { |
||||||
|
$values = $form->exportValues(); |
||||||
|
$item->setName($values['name']); |
||||||
|
$em->persist($item); |
||||||
|
$em->flush(); |
||||||
|
header('Location: '.$listAction); |
||||||
|
exit; |
||||||
|
} |
||||||
|
|
||||||
|
break; |
||||||
|
case 'delete': |
||||||
|
$tpl->assign('actions', Display::url(get_lang('List'), $listAction)); |
||||||
|
$em->remove($item); |
||||||
|
$em->flush(); |
||||||
|
header('Location: '.$listAction); |
||||||
|
exit; |
||||||
|
|
||||||
|
break; |
||||||
|
default: |
||||||
|
$tpl->assign('actions', Display::url(get_lang('Add'), api_get_self().'?action=add')); |
||||||
|
} |
||||||
|
|
||||||
|
$tpl->assign('list', $list); |
||||||
|
|
||||||
|
$contentTemplate = $tpl->fetch('default/admin/skill_profile.tpl'); |
||||||
|
$tpl->assign('content', $contentTemplate); |
||||||
|
$tpl->display_one_col_template(); |
Loading…
Reference in new issue