Remove unused files

remotes/angel/1.11.x
jmontoyaa 8 years ago
parent 3260461db0
commit 994f4736d8
  1. 612
      app/Migrations/Schema/V110/Version110.php
  2. 181
      app/Migrations/Schema/V110/Version20150423093100.php
  3. 77
      app/Migrations/Schema/V110/Version20150504182600.php
  4. 64
      app/Migrations/Schema/V110/Version20150505132304.php
  5. 77
      app/Migrations/Schema/V110/Version20150505142900.php
  6. 242
      app/Migrations/Schema/V110/Version20150507152600.php
  7. 43
      app/Migrations/Schema/V110/Version20150511133949.php
  8. 29
      app/Migrations/Schema/V110/Version20150519153200.php
  9. 31
      app/Migrations/Schema/V110/Version20150521113600.php
  10. 49
      app/Migrations/Schema/V110/Version20150522112023.php
  11. 821
      app/Migrations/Schema/V110/Version20150522222222.php
  12. 55
      app/Migrations/Schema/V110/Version20150527101600.php
  13. 33
      app/Migrations/Schema/V110/Version20150527114220.php
  14. 31
      app/Migrations/Schema/V110/Version20150527120703.php
  15. 76
      app/Migrations/Schema/V110/Version20150528103216.php
  16. 67
      app/Migrations/Schema/V110/Version20150529164400.php
  17. 70
      app/Migrations/Schema/V110/Version20150603142550.php
  18. 32
      app/Migrations/Schema/V110/Version20150603151200.php
  19. 101
      app/Migrations/Schema/V110/Version20150603181728.php
  20. 29
      app/Migrations/Schema/V110/Version20150604145047.php
  21. 70
      app/Migrations/Schema/V110/Version20150608104600.php
  22. 35
      app/Migrations/Schema/V110/Version20150609113500.php
  23. 29
      app/Migrations/Schema/V110/Version20150610143426.php
  24. 34
      app/Migrations/Schema/V110/Version20150615171900.php
  25. 35
      app/Migrations/Schema/V110/Version20150616093200.php
  26. 35
      app/Migrations/Schema/V110/Version20150624164100.php
  27. 35
      app/Migrations/Schema/V110/Version20150625155000.php
  28. 36
      app/Migrations/Schema/V110/Version20150706135000.php
  29. 29
      app/Migrations/Schema/V110/Version20150709083710.php
  30. 35
      app/Migrations/Schema/V110/Version20150713132630.php
  31. 111
      app/Migrations/Schema/V110/Version20150803163400.php
  32. 37
      app/Migrations/Schema/V110/Version20150803171220.php
  33. 40
      app/Migrations/Schema/V110/Version20150805161000.php
  34. 29
      app/Migrations/Schema/V110/Version20150810132615.php
  35. 75
      app/Migrations/Schema/V110/Version20150812230500.php
  36. 166
      app/Migrations/Schema/V110/Version20150813143000.php
  37. 71
      app/Migrations/Schema/V110/Version20150813200000.php
  38. 45
      app/Migrations/Schema/V110/Version20150819095300.php
  39. 178
      app/Migrations/Schema/V110/Version20150821150000.php
  40. 67
      app/Migrations/Schema/V110/Version20150825141100.php
  41. 41
      app/Migrations/Schema/V110/Version20151101082200.php
  42. 312
      app/Migrations/Schema/V110/Version20151101082300.php
  43. 34
      app/Migrations/Schema/V110/Version20151119082400.php
  44. 32
      app/Migrations/Schema/V110/Version20151214164000.php
  45. 129
      app/Migrations/Schema/V110/Version20151214170800.php
  46. 52
      app/Migrations/Schema/V110/Version20151221150100.php
  47. 29
      app/Migrations/Schema/V110/Version20160707131900.php

@ -1,612 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use \Doctrine\DBAL\Types\Type;
/**
* Class Version110
*
* Migrate file to updated to Chamilo 1.10
*
* @package Application\Migrations\Schema\V110
*/
class Version110 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function preUp(Schema $schema)
{
$this->addSql("ALTER TABLE session_rel_course ENGINE=InnoDB");
$this->addSql("ALTER TABLE session_rel_course_rel_user ENGINE=InnoDB");
$this->addSql("ALTER TABLE session_rel_user ENGINE=InnoDB");
$this->addSql("UPDATE session SET session.id_coach = 1 WHERE id_coach NOT IN ( SELECT user_id FROM user)");
}
/**
* @param Schema $schema
*
* @throws \Doctrine\DBAL\Schema\SchemaException
*/
public function up(Schema $schema)
{
// Use $schema->createTable
$this->addSql('set sql_mode=""');
$this->addSql("CREATE TABLE IF NOT EXISTS course_field_options (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, field_id INT NOT NULL, option_value TEXT, option_display_text VARCHAR(64), option_order INT, tms DATETIME)");
$this->addSql("CREATE TABLE IF NOT EXISTS session_field_options (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, field_id INT NOT NULL, option_value TEXT, option_display_text VARCHAR(64), option_order INT, tms DATETIME)");
$this->addSql("CREATE TABLE IF NOT EXISTS hook_observer( id int UNSIGNED NOT NULL AUTO_INCREMENT, class_name varchar(255) UNIQUE, path varchar(255) NOT NULL, plugin_name varchar(255) NULL, PRIMARY KEY PK_hook_management_hook_observer(id))");
$this->addSql("CREATE TABLE IF NOT EXISTS hook_event( id int UNSIGNED NOT NULL AUTO_INCREMENT, class_name varchar(255) UNIQUE, description varchar(255), PRIMARY KEY PK_hook_management_hook_event(id))");
$this->addSql("CREATE TABLE IF NOT EXISTS hook_call( id int UNSIGNED NOT NULL AUTO_INCREMENT, hook_event_id int UNSIGNED NOT NULL, hook_observer_id int UNSIGNED NOT NULL, type tinyint NOT NULL, hook_order int UNSIGNED NOT NULL, enabled tinyint NOT NULL, PRIMARY KEY PK_hook_management_hook_call(id))");
$this->addSql("CREATE TABLE IF NOT EXISTS c_student_publication_rel_document (iid INT NOT NULL PRIMARY KEY, id INT NULL, work_id INT NOT NULL, document_id INT NOT NULL, c_id INT NOT NULL)");
$this->addSql("CREATE TABLE IF NOT EXISTS c_student_publication_rel_user (iid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, id INT NULL, work_id INT NOT NULL, user_id INT NOT NULL, c_id INT NOT NULL)");
$this->addSql("CREATE TABLE IF NOT EXISTS c_student_publication_comment (iid INT NOT NULL PRIMARY KEY, id INT NULL, work_id INT NOT NULL, c_id INT NOT NULL, comment text, file VARCHAR(255), user_id int NOT NULL, sent_at datetime NOT NULL)");
$this->addSql("CREATE TABLE IF NOT EXISTS c_attendance_calendar_rel_group (iid int NOT NULL auto_increment PRIMARY KEY, id INT, c_id INT NOT NULL, group_id INT NOT NULL, calendar_id INT NOT NULL)");
$this->addSql("ALTER TABLE session MODIFY COLUMN date_start date default NULL, MODIFY COLUMN date_end date default NULL");
$this->addSql("ALTER TABLE skill_rel_user MODIFY COLUMN acquired_skill_at datetime default NULL");
$this->addSql("ALTER TABLE track_e_access MODIFY COLUMN access_date datetime DEFAULT NULL");
$this->addSql("ALTER TABLE track_e_lastaccess MODIFY COLUMN access_date datetime DEFAULT NULL");
$table = $schema->getTable('skill_rel_user');
if (!$table->hasColumn('course_id')) {
$this->addSql("ALTER TABLE skill_rel_user ADD COLUMN course_id INT NOT NULL DEFAULT 0 AFTER id");
}
if (!$table->hasColumn('session_id')) {
$this->addSql("ALTER TABLE skill_rel_user ADD COLUMN session_id INT NOT NULL DEFAULT 0 AFTER course_id");
}
$this->addSql("ALTER TABLE skill_rel_user ADD INDEX idx_select_cs (course_id, session_id)");
// Delete info of session_rel_user if session does not exists;
$this->addSql("DELETE FROM session_rel_user WHERE id_session NOT IN (SELECT id FROM session)");
// Delete info of usergroup_rel_user if usergroup does not exists;
$this->addSql("DELETE FROM usergroup_rel_user WHERE usergroup_id NOT IN (SELECT id FROM usergroup)");
$session = $schema->getTable('session');
$session->getColumn('id')->setType(Type::getType(Type::INTEGER))->setUnsigned(false);
if (!$session->hasColumn('description')) {
$session->addColumn(
'description',
'text'
);
}
if (!$session->hasColumn('show_description')) {
$session->addColumn(
'show_description',
'smallint',
array('default' => 0, 'unsigned' => true)
);
}
$sessionTable = $schema->getTable('session');
if (!$sessionTable->hasColumn('duration')) {
$this->addSql("ALTER TABLE session ADD COLUMN duration int");
}
$sessionRelUser = $schema->getTable('session_rel_user');
if (!$sessionRelUser->hasColumn('duration')) {
$this->addSql("ALTER TABLE session_rel_user ADD COLUMN duration int");
}
$this->addSql("ALTER TABLE skill ADD COLUMN criteria text");
$this->addSql("ALTER TABLE gradebook_category ADD COLUMN generate_certificates TINYINT NOT NULL DEFAULT 0");
$this->addSql("ALTER TABLE track_e_access ADD COLUMN c_id int NOT NULL");
$this->addSql("ALTER TABLE track_e_lastaccess ADD COLUMN c_id int NOT NULL");
$this->addSql("ALTER TABLE track_e_exercices ADD COLUMN c_id int NOT NULL");
$this->addSql("ALTER TABLE track_e_downloads ADD COLUMN c_id int NOT NULL");
$this->addSql("ALTER TABLE track_e_hotpotatoes ADD COLUMN c_id int NOT NULL");
$this->addSql("ALTER TABLE track_e_links ADD COLUMN c_id int NOT NULL");
$this->addSql("ALTER TABLE track_e_course_access ADD COLUMN c_id int NOT NULL");
$this->addSql("ALTER TABLE track_e_online ADD COLUMN c_id int NOT NULL");
$this->addSql("ALTER TABLE track_e_attempt ADD COLUMN c_id int NOT NULL");
$table = $schema->getTable('track_e_default');
if (!$table->hasColumn('session_id')) {
$this->addSql("ALTER TABLE track_e_default ADD COLUMN session_id int NOT NULL");
}
if (!$table->hasColumn('c_id')) {
$this->addSql("ALTER TABLE track_e_default ADD COLUMN c_id int NOT NULL");
}
$this->addSql("ALTER TABLE track_e_access ADD COLUMN user_ip varchar(39) NOT NULL default ''");
$this->addSql("ALTER TABLE track_e_exercices ADD COLUMN user_ip varchar(39) NOT NULL default ''");
$this->addSql("ALTER TABLE track_e_course_access ADD COLUMN user_ip varchar(39) NOT NULL default ''");
$this->addSql("ALTER TABLE track_e_online CHANGE COLUMN login_ip user_ip varchar(39) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE track_e_login CHANGE COLUMN login_ip user_ip varchar(39) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE user MODIFY COLUMN user_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE user DROP PRIMARY KEY");
$this->addSql("ALTER TABLE user MODIFY COLUMN user_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE user ADD COLUMN id INT DEFAULT NULL");
$this->addSql("UPDATE user SET id = user_id");
$this->addSql("ALTER TABLE user MODIFY COLUMN id INT NOT NULL PRIMARY KEY AUTO_INCREMENT AFTER user_id");
$this->addSql("ALTER TABLE user MODIFY COLUMN chatcall_date datetime default NULL");
$this->addSql("ALTER TABLE user MODIFY COLUMN chatcall_text varchar(50) default NULL");
$this->addSql("ALTER TABLE user MODIFY COLUMN chatcall_user_id int unsigned default 0");
$this->addSql("ALTER TABLE user MODIFY COLUMN expiration_date datetime default NULL");
$this->addSql("ALTER TABLE user MODIFY COLUMN registration_date datetime NOT NULL");
$this->addSql("ALTER TABLE course ADD COLUMN add_teachers_to_sessions_courses tinyint NOT NULL default 0");
$this->addSql("ALTER TABLE course DROP COLUMN target_course_code");
$this->addSql("ALTER TABLE session MODIFY COLUMN name char(100) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE course_rel_user ADD COLUMN c_id int default NULL");
$this->addSql("ALTER TABLE course_field_values ADD COLUMN c_id int default NULL");
$this->addSql("ALTER TABLE session_rel_course_rel_user ADD COLUMN c_id int default NULL");
$this->addSql("ALTER TABLE session_rel_course_rel_user CHANGE id_session session_id int");
$this->addSql("ALTER TABLE session_rel_course_rel_user CHANGE id_user user_id int");
$this->addSql("ALTER TABLE access_url_rel_course ADD COLUMN c_id int");
$this->addSql("ALTER TABLE session_rel_course ADD COLUMN position int NOT NULL default 0");
$this->addSql("ALTER TABLE session_rel_course ADD COLUMN category varchar(255) default ''");
$this->addSql("ALTER TABLE session_rel_course ADD COLUMN c_id int unsigned");
$this->addSql("ALTER TABLE session_rel_course CHANGE id_session session_id int");
$this->addSql('DELETE FROM session_rel_course WHERE session_id NOT IN (SELECT id FROM session)');
$this->addSql("DELETE course_rel_user WHERE course_code NOT IN (SELECT code FROM course)");
$this->addSql("UPDATE course_rel_user SET c_id = (SELECT id FROM course WHERE code = course_code)");
// Add iid
$tables = [
'c_announcement',
'c_announcement_attachment',
'c_attendance',
'c_attendance_calendar',
//'c_attendance_calendar_rel_group',
'c_attendance_result',
//'c_attendance_sheet',
'c_attendance_sheet_log',
//'c_blog',
'c_blog_attachment',
//'c_blog_comment',
//'c_blog_post',
//'c_blog_rating',
//'c_blog_rel_user',
//'c_blog_task',
//'c_blog_task_rel_user',
'c_calendar_event',
'c_calendar_event_attachment',
//'c_calendar_event_repeat',
//'c_calendar_event_repeat_not',
'c_chat_connected',
'c_course_description',
'c_course_setting',
'c_document',
//'c_dropbox_category',
//'c_dropbox_feedback',
'c_dropbox_file',
//'c_dropbox_person',
//'c_dropbox_post',
'c_forum_attachment',
//'c_forum_category',
//'c_forum_forum',
'c_forum_mailcue',
'c_forum_notification',
//'c_forum_post',
//'c_forum_thread',
'c_forum_thread_qualify',
'c_forum_thread_qualify_log',
//'c_glossary',
'c_group_category',
'c_group_info',
'c_group_rel_tutor',
'c_group_rel_user',
'c_item_property',
'c_link',
'c_link_category',
'c_lp',
'c_lp_item',
'c_lp_item_view',
'c_lp_iv_interaction',
'c_lp_iv_objective',
'c_lp_view',
//'c_notebook',
//'c_online_connected',
'c_online_link',
'c_permission_group',
'c_permission_task',
'c_permission_user',
'c_quiz',
//'c_quiz_answer',
'c_quiz_question',
'c_quiz_question_category',
'c_quiz_question_option',
//'c_quiz_question_rel_category',
//'c_quiz_rel_question',
'c_resource',
//'c_role',
'c_role_group',
'c_role_permissions',
//'c_role_user',
'c_student_publication',
'c_student_publication_assignment',
//'c_student_publication_comment',
//'c_student_publication_rel_document',
//'c_student_publication_rel_user',
//'c_survey',
//'c_survey_answer',
'c_survey_group',
//'c_survey_invitation',
//'c_survey_question',
//'c_survey_question_option',
'c_thematic',
'c_thematic_advance',
'c_thematic_plan',
'c_tool',
//'c_tool_intro',
'c_userinfo_content',
'c_userinfo_def',
'c_wiki',
//'c_wiki_conf',
'c_wiki_discuss',
'c_wiki_mailcue'
];
foreach ($tables as $table) {
if ($schema->hasTable($table)) {
$this->addSql("ALTER TABLE $table MODIFY COLUMN id INT NOT NULL");
$this->addSql("ALTER TABLE $table MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE $table DROP PRIMARY KEY");
$this->addSql("ALTER TABLE $table MODIFY COLUMN id INT NULL");
$this->addSql("ALTER TABLE $table ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
}
}
if ($schema->hasTable('c_attendance_calendar_rel_group')) {
$this->addSql("ALTER TABLE c_attendance_calendar_rel_group MODIFY COLUMN id INT NOT NULL");
$this->addSql("ALTER TABLE c_attendance_calendar_rel_group DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_attendance_calendar_rel_group MODIFY COLUMN id INT NULL DEFAULT NULL");
$this->addSql("ALTER TABLE c_attendance_calendar_rel_group ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
}
$this->addSql("ALTER TABLE c_attendance_sheet MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_attendance_sheet DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_attendance_sheet ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_blog MODIFY COLUMN blog_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_blog MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_blog DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_blog MODIFY COLUMN blog_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_blog ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_blog_comment MODIFY COLUMN comment_id int NOT NULL");
$this->addSql("ALTER TABLE c_blog_comment MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_blog_comment DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_blog_comment MODIFY COLUMN comment_id int DEFAULT NULL");
$this->addSql("ALTER TABLE c_blog_comment ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_blog_post MODIFY COLUMN post_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_blog_post MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_blog_post DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_blog_post MODIFY COLUMN post_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_blog_post ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_blog_rating MODIFY COLUMN rating_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_blog_rating MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_blog_rating DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_blog_rating MODIFY COLUMN rating_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_blog_rating ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_blog_rel_user DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_blog_rel_user MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_blog_rel_user MODIFY COLUMN blog_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_blog_rel_user MODIFY COLUMN user_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_blog_rel_user ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_blog_task MODIFY COLUMN task_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_blog_task MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_blog_task DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_blog_task MODIFY COLUMN task_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_blog_task ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_blog_task_rel_user DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_blog_task_rel_user MODIFY COLUMN blog_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_blog_task_rel_user MODIFY COLUMN user_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_blog_task_rel_user MODIFY COLUMN task_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_blog_task_rel_user ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_calendar_event_repeat DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_calendar_event_repeat MODIFY COLUMN cal_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_calendar_event_repeat MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_calendar_event_repeat ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_calendar_event_repeat_not DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_calendar_event_repeat_not MODIFY COLUMN cal_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_calendar_event_repeat_not MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_calendar_event_repeat_not ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_dropbox_category MODIFY COLUMN cat_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_dropbox_category DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_dropbox_category MODIFY COLUMN cat_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_dropbox_category MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_dropbox_category ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_dropbox_feedback MODIFY COLUMN feedback_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_dropbox_feedback DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_dropbox_feedback MODIFY COLUMN feedback_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_dropbox_feedback MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_dropbox_feedback ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_dropbox_person DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_dropbox_person MODIFY COLUMN file_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_dropbox_person MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_dropbox_person ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_dropbox_post DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_dropbox_post MODIFY COLUMN file_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_dropbox_post MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_dropbox_post ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_forum_category MODIFY COLUMN cat_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_forum_category DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_forum_category MODIFY COLUMN cat_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_forum_category MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_forum_category ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_forum_forum MODIFY COLUMN forum_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_forum_forum DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_forum_forum MODIFY COLUMN forum_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_forum_forum MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_forum_forum ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_forum_post MODIFY COLUMN post_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_forum_post DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_forum_post MODIFY COLUMN post_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_forum_post MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_forum_post ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_forum_thread MODIFY COLUMN thread_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_forum_thread DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_forum_thread MODIFY COLUMN forum_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_forum_thread MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_forum_thread MODIFY COLUMN thread_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_forum_thread ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_forum_thread ADD COLUMN thread_peer_qualify tinyint default 0");
$this->addSql("ALTER TABLE c_glossary MODIFY COLUMN glossary_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_glossary MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_glossary DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_glossary MODIFY COLUMN glossary_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_glossary ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_notebook MODIFY COLUMN notebook_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_notebook MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_notebook DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_notebook MODIFY COLUMN notebook_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_notebook ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_online_connected MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_online_connected DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_online_connected ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
// For some reason c_tool_intro.id is a varchar in 1.9.x
$this->addSql("ALTER TABLE c_tool_intro MODIFY COLUMN id VARCHAR(50) NOT NULL");
$this->addSql("ALTER TABLE c_tool_intro MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_tool_intro MODIFY COLUMN session_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_tool_intro DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_tool_intro MODIFY COLUMN session_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_tool_intro ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_quiz_answer MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_quiz_answer MODIFY COLUMN id_auto int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_quiz_answer DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_quiz_answer MODIFY COLUMN id_auto int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_quiz_answer ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_quiz_question_rel_category MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_quiz_question_rel_category MODIFY COLUMN question_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_quiz_question_rel_category DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_quiz_question_rel_category MODIFY COLUMN question_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_quiz_question_rel_category ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE session_rel_user MODIFY COLUMN id_session int");
$this->addSql("ALTER TABLE session_rel_user MODIFY COLUMN id_user int");
$this->addSql("ALTER TABLE session_rel_user MODIFY COLUMN relation_type int unsigned DEFAULT 0");
$this->addSql("ALTER TABLE session_rel_user DROP PRIMARY KEY");
$this->addSql("ALTER TABLE session_rel_user CHANGE id_session session_id int");
$this->addSql("ALTER TABLE session_rel_user CHANGE id_user user_id int");
$this->addSql("DELETE FROM session_rel_user WHERE user_id NOT IN (SELECT user_id FROM user)");
$this->addSql("ALTER TABLE session_rel_user ADD COLUMN id int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_item_property CHANGE id_session session_id int");
$this->addSql("ALTER TABLE course_rel_user CHANGE tutor_id is_tutor int");
$this->addSql("ALTER TABLE c_quiz_rel_question MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_quiz_rel_question DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_quiz_rel_question MODIFY COLUMN question_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_quiz_rel_question MODIFY COLUMN exercice_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_quiz_rel_question ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_role MODIFY COLUMN role_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_role MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_role DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_role MODIFY COLUMN role_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_role ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_role_user DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_role_user MODIFY COLUMN role_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_role_user MODIFY COLUMN user_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_role_user MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_role_user ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_survey MODIFY COLUMN survey_id int NOT NULL");
$this->addSql("ALTER TABLE c_survey MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_survey DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_survey MODIFY COLUMN survey_id int NULL");
$this->addSql("ALTER TABLE c_survey ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_survey_answer MODIFY COLUMN answer_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_survey_answer MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_survey_answer DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_survey_answer MODIFY COLUMN answer_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_survey_answer ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_survey_invitation MODIFY COLUMN survey_invitation_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_survey_invitation MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_survey_invitation DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_survey_invitation MODIFY COLUMN survey_invitation_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_survey_invitation ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_survey_question MODIFY COLUMN question_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_survey_question MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_survey_question DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_survey_question MODIFY COLUMN question_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_survey_question ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_survey_question_option MODIFY COLUMN question_option_id int unsigned NOT NULL");
$this->addSql("ALTER TABLE c_survey_question_option MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_survey_question_option DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_survey_question_option MODIFY COLUMN question_option_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_survey_question_option ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE c_wiki_conf DROP PRIMARY KEY");
$this->addSql("ALTER TABLE c_wiki_conf MODIFY COLUMN page_id int unsigned DEFAULT NULL");
$this->addSql("ALTER TABLE c_wiki_conf MODIFY COLUMN c_id INT NOT NULL");
$this->addSql("ALTER TABLE c_wiki_conf ADD COLUMN iid int NOT NULL PRIMARY KEY AUTO_INCREMENT");
// Course
$this->addSql("ALTER TABLE c_survey ADD COLUMN visible_results INT UNSIGNED DEFAULT 0");
$this->addSql("ALTER TABLE c_survey_invitation ADD COLUMN group_id INT NOT NULL");
$this->addSql("ALTER TABLE c_lp_item ADD COLUMN prerequisite_min_score float");
$this->addSql("ALTER TABLE c_lp_item ADD COLUMN prerequisite_max_score float");
$this->addSql("ALTER TABLE c_group_info ADD COLUMN status tinyint DEFAULT 1");
$this->addSql("ALTER TABLE c_student_publication ADD COLUMN document_id int DEFAULT 0");
$this->addSql("ALTER TABLE c_lp_item MODIFY COLUMN description VARCHAR(511) DEFAULT ''");
$this->addSql("ALTER TABLE course_category MODIFY COLUMN auth_course_child VARCHAR(40) DEFAULT 'TRUE' ");
$this->addSql("ALTER TABLE course_category MODIFY COLUMN auth_cat_child VARCHAR(40) DEFAULT 'TRUE'");
$this->addSql("ALTER TABLE c_quiz_answer MODIFY COLUMN hotspot_type varchar(40) default NULL");
$this->addSql("ALTER TABLE c_tool MODIFY COLUMN target varchar(20) NOT NULL default '_self' ");
$this->addSql("ALTER TABLE c_link MODIFY COLUMN on_homepage char(10) NOT NULL default '0' ");
$this->addSql("ALTER TABLE c_blog_rating MODIFY COLUMN rating_type char(40) NOT NULL default 'post' ");
$this->addSql("ALTER TABLE c_survey MODIFY COLUMN anonymous char(10) NOT NULL default '0'");
$this->addSql("ALTER TABLE c_course_setting MODIFY COLUMN value varchar(255) default ''");
$this->addSql("UPDATE course_field SET field_type = 13 WHERE field_variable = 'special_course'");
$this->addSql("UPDATE user SET registration_date = NULL WHERE registration_date = '0000-00-00 00:00:00'");
$this->addSql("UPDATE user SET expiration_date = NULL WHERE expiration_date = '0000-00-00 00:00:00'");
$this->addSql("UPDATE track_e_default SET default_date = NULL WHERE default_date = '0000-00-00 00:00:00'");
$this->addSql("UPDATE track_e_lastaccess SET access_date = NULL WHERE access_date = '0000-00-00 00:00:00'");
$this->addSql("UPDATE track_e_downloads SET down_date = NULL WHERE down_date = '0000-00-00 00:00:00'");
$this->addSql("UPDATE track_e_access SET access_date = NULL WHERE access_date = '0000-00-00 00:00:00'");
$this->addSql("UPDATE track_e_access SET c_id = (SELECT id FROM course WHERE code = access_cours_code)");
$this->addSql("UPDATE track_e_default SET c_id = (SELECT id FROM course WHERE code = default_cours_code)");
$this->addSql("UPDATE track_e_lastaccess SET c_id = (SELECT id FROM course WHERE code = access_cours_code)");
$this->addSql("UPDATE track_e_exercices SET c_id = (SELECT id FROM course WHERE code = exe_cours_id)");
$this->addSql("UPDATE track_e_downloads SET c_id = (SELECT id FROM course WHERE code = down_cours_id)");
$this->addSql("UPDATE track_e_hotpotatoes SET c_id = (SELECT id FROM course WHERE code = exe_cours_id)");
$this->addSql("UPDATE track_e_links SET c_id = (SELECT id FROM course WHERE code = links_cours_id)");
$this->addSql("UPDATE track_e_course_access SET c_id = (SELECT id FROM course WHERE code = course_code)");
$this->addSql("UPDATE track_e_online SET c_id = (SELECT id FROM course WHERE code = course)");
$this->addSql("UPDATE track_e_attempt SET c_id = (SELECT id FROM course WHERE code = course_code)");
$this->addSql("UPDATE course_field_values SET c_id = (SELECT id FROM course WHERE code = course_code)");
$this->addSql("UPDATE session_rel_course_rel_user SET c_id = (SELECT id FROM course WHERE code = course_code)");
$this->addSql('DELETE FROM session_rel_course WHERE course_code NOT IN (SELECT code FROM course)');
$this->addSql("UPDATE session_rel_course SET c_id = (SELECT id FROM course WHERE code = course_code)");
$this->addSql("DELETE access_url_rel_course WHERE course_code NOT IN (SELECT code FROM course)");
$this->addSql("UPDATE access_url_rel_course SET c_id = (SELECT id FROM course WHERE code = course_code)");
$this->addSql("ALTER TABLE settings_current DROP INDEX unique_setting");
$this->addSql("ALTER TABLE settings_options DROP INDEX unique_setting_option");
$this->addSql("DELETE FROM settings_current WHERE variable = 'wcag_anysurfer_public_pages'");
$this->addSql("DELETE FROM settings_current WHERE variable = 'wcag_anysurfer_public_pages'");
$this->addSql("DELETE FROM settings_options WHERE variable = 'wcag_anysurfer_public_pages'");
$this->addSql("DELETE FROM settings_current WHERE variable = 'advanced_filemanager'");
$this->addSql("DELETE FROM settings_options WHERE variable = 'advanced_filemanager'");
$this->addSql("INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('institution_address', NULL, 'textfield', 'Platform', '', 'InstitutionAddressTitle', 'InstitutionAddressComment', NULL, NULL, 1)");
$this->addSql("INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('prevent_session_admins_to_manage_all_users', NULL, 'radio', 'Session', 'false', 'PreventSessionAdminsToManageAllUsersTitle', 'PreventSessionAdminsToManageAllUsersComment', NULL, NULL, 1)");
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('prevent_session_admins_to_manage_all_users', 'true', 'Yes'), ('prevent_session_admins_to_manage_all_users', 'false', 'No')");
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('show_glossary_in_extra_tools', 'none', 'None')");
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('show_glossary_in_extra_tools', 'exercise', 'Exercise')");
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('show_glossary_in_extra_tools', 'lp', 'Learning path')");
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('show_glossary_in_extra_tools', 'exercise_and_lp', 'ExerciseAndLearningPath')");
$this->addSql("INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('documents_default_visibility_defined_in_course', NULL,'radio','Tools','false','DocumentsDefaultVisibilityDefinedInCourseTitle','DocumentsDefaultVisibilityDefinedInCourseComment',NULL, NULL, 1)");
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('documents_default_visibility_defined_in_course', 'true', 'Yes')");
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('documents_default_visibility_defined_in_course', 'false', 'No')");
$this->addSql("INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('enabled_mathjax', NULL, 'radio', 'Editor', 'false', 'EnableMathJaxTitle', 'EnableMathJaxComment', NULL, NULL, 0)");
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('enabled_mathjax', 'true', 'Yes')");
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('enabled_mathjax', 'false', 'No')");
$this->addSql("INSERT INTO language (original_name, english_name, isocode, dokeos_folder, available) VALUES ('Føroyskt', 'faroese', 'fo', 'faroese', 0), ('Tagalog', 'tagalog', 'tl', 'tagalog',1), ('Tibetan', 'tibetan', 'bo', 'tibetan', 0), ('isiXhosa', 'xhosa', 'xh', 'xhosa', 0)");
$this->addSql("DELETE FROM settings_options WHERE variable = 'show_glossary_in_extra_tools'");
$this->addSql("ALTER TABLE c_student_publication MODIFY COLUMN date_of_qualification DATETIME NULL DEFAULT NULL");
$this->addSql("ALTER TABLE c_student_publication MODIFY COLUMN sent_date DATETIME NULL DEFAULT NULL");
$this->addSql("UPDATE c_student_publication SET date_of_qualification = NULL WHERE date_of_qualification = '0000-00-00 00:00:00'");
$this->addSql("UPDATE c_student_publication SET sent_date = NULL WHERE sent_date = '0000-00-00 00:00:00'");
$this->addSql("ALTER TABLE c_student_publication_assignment MODIFY COLUMN expires_on DATETIME NULL DEFAULT NULL");
$this->addSql("ALTER TABLE c_student_publication_assignment MODIFY COLUMN ends_on DATETIME NULL DEFAULT NULL");
$this->addSql("UPDATE c_student_publication_assignment SET expires_on = NULL WHERE expires_on = '0000-00-00 00:00:00'");
$this->addSql("UPDATE c_student_publication_assignment SET ends_on = NULL WHERE ends_on = '0000-00-00 00:00:00'");
$this->addSql("UPDATE settings_current SET type = 'checkbox' WHERE variable = 'registration' AND category = 'User'");
$this->addSql("UPDATE settings_current SET selected_value = 'UTF-8' WHERE variable = 'platform_charset'");
$this->addSql("ALTER TABLE course_rel_user DROP PRIMARY KEY");
$this->addSql("ALTER TABLE course_rel_user ADD COLUMN id INT NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE course_rel_user MODIFY COLUMN user_id INT NULL");
$this->addSql("ALTER TABLE user MODIFY COLUMN user_id INT NULL");
$this->addSql("ALTER TABLE access_url_rel_course DROP PRIMARY KEY");
$this->addSql("ALTER TABLE access_url_rel_course ADD COLUMN id INT NOT NULL PRIMARY KEY AUTO_INCREMENT");
$this->addSql("ALTER TABLE access_url_rel_course DROP COLUMN course_code");
$this->addSql("ALTER TABLE access_url_rel_course ADD INDEX idx_select_c (c_id)");
$this->addSql("ALTER TABLE access_url_rel_course ADD INDEX idx_select_u (access_url_id)");
$this->addSql("ALTER TABLE access_url ADD COLUMN url_type TINYINT(1) NULL");
$this->addSql("ALTER TABLE course_rel_user ADD INDEX idx_select_c (c_id)");
$this->addSql("ALTER TABLE track_e_uploads ADD COLUMN c_id INT NOT NULL");
$this->addSql("UPDATE track_e_uploads SET c_id = (SELECT id FROM course WHERE code = upload_cours_id)");
//postUp
$this->addSql("ALTER TABLE track_e_access DROP COLUMN access_cours_code");
$this->addSql("ALTER TABLE track_e_default DROP COLUMN default_cours_code");
$this->addSql("ALTER TABLE track_e_lastaccess DROP COLUMN access_cours_code");
$this->addSql("ALTER TABLE track_e_exercices DROP COLUMN exe_cours_id");
$this->addSql("ALTER TABLE track_e_downloads DROP COLUMN down_cours_id");
$this->addSql("ALTER TABLE track_e_hotpotatoes DROP COLUMN exe_cours_id");
$this->addSql("ALTER TABLE track_e_links DROP COLUMN links_cours_id");
$this->addSql("ALTER TABLE track_e_course_access DROP COLUMN course_code");
$this->addSql("ALTER TABLE track_e_online DROP COLUMN course");
$this->addSql("ALTER TABLE track_e_attempt DROP COLUMN course_code");
$this->addSql("ALTER TABLE course_rel_user DROP COLUMN group_id");
$this->addSql("ALTER TABLE course_rel_user DROP COLUMN role");
$this->addSql("DROP TABLE track_c_countries");
$this->addSql("DROP TABLE track_c_browsers");
$this->addSql("DROP TABLE track_c_os");
$this->addSql("DROP TABLE track_c_providers");
$this->addSql("DROP TABLE track_c_referers");
}
/**
* We don't allow downgrades yet
* @param Schema $schema
*/
public function down(Schema $schema)
{
}
}

@ -1,181 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Type;
/**
* Class Version20150423093100
*
* @package Application\Migrations\Schema\V110
*/
class Version20150423093100 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*
* @throws \Doctrine\DBAL\Schema\SchemaException
*/
public function up(Schema $schema)
{
// Sequence changes
if (!$schema->hasTable('sequence_rule')) {
$sequenceRule = $schema->createTable('sequence_rule');
$sequenceRule->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sequenceRule->addColumn('text', Type::TEXT);
$sequenceRule->setPrimaryKey(['id']);
}
if (!$schema->hasTable('sequence_condition')) {
$sequenceCondition = $schema->createTable('sequence_condition');
$sequenceCondition->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sequenceCondition->addColumn('description', Type::TEXT);
$sequenceCondition->addColumn('mat_op', Type::INTEGER);
$sequenceCondition->addColumn('param', Type::FLOAT);
$sequenceCondition->addColumn('act_true', Type::INTEGER);
$sequenceCondition->addColumn('act_false', Type::INTEGER);
$sequenceCondition->setPrimaryKey(['id']);
}
if (!$schema->hasTable('sequence_rule_condition')) {
$sequenceRuleCondition = $schema->createTable('sequence_rule_condition');
$sequenceRuleCondition->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sequenceRuleCondition->addColumn('sequence_rule_id', Type::INTEGER)->setNotnull(false);
$sequenceRuleCondition->addColumn('sequence_condition_id', Type::INTEGER)->setNotnull(false);
$sequenceRuleCondition->setPrimaryKey(['id']);
$sequenceRuleCondition->addIndex(['sequence_rule_id']);
$sequenceRuleCondition->addIndex(['sequence_condition_id']);
$sequenceRuleCondition->addForeignKeyConstraint('sequence_condition', ['sequence_condition_id'], ['id']);
$sequenceRuleCondition->addForeignKeyConstraint('sequence_rule', ['sequence_rule_id'], ['id']);
}
if (!$schema->hasTable('sequence_method')) {
$sequenceMethod = $schema->createTable('sequence_method');
$sequenceMethod->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sequenceMethod->addColumn('description', Type::TEXT);
$sequenceMethod->addColumn('formula', Type::TEXT);
$sequenceMethod->addColumn('assign', Type::INTEGER);
$sequenceMethod->addColumn('met_type', Type::INTEGER);
$sequenceMethod->addColumn('act_false', Type::INTEGER);
$sequenceMethod->setPrimaryKey(['id']);
}
if (!$schema->hasTable('sequence_rule_method')) {
$sequenceRuleMethod = $schema->createTable('sequence_rule_method');
$sequenceRuleMethod->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sequenceRuleMethod->addColumn('sequence_rule_id', Type::INTEGER)->setNotnull(false);
$sequenceRuleMethod->addColumn('sequence_method_id', Type::INTEGER)->setNotnull(false);
$sequenceRuleMethod->addColumn('method_order', Type::INTEGER);
$sequenceRuleMethod->setPrimaryKey(['id']);
$sequenceRuleMethod->addIndex(['sequence_rule_id']);
$sequenceRuleMethod->addIndex(['sequence_method_id']);
$sequenceRuleMethod->addForeignKeyConstraint('sequence_method', ['sequence_method_id'], ['id']);
$sequenceRuleMethod->addForeignKeyConstraint('sequence_rule', ['sequence_rule_id'], ['id']);
}
if (!$schema->hasTable('sequence_variable')) {
$sequenceVariable = $schema->createTable('sequence_variable');
$sequenceVariable->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sequenceVariable->addColumn('name', Type::STRING)->setLength(255)->setNotnull(false);
$sequenceVariable->addColumn('description', Type::TEXT)->setNotnull(false);
$sequenceVariable->addColumn('default_val', Type::STRING)->setLength(255)->setNotnull(false);
$sequenceVariable->setPrimaryKey(['id']);
}
if (!$schema->hasTable('sequence_formula')) {
$sequenceFormula = $schema->createTable('sequence_formula');
$sequenceFormula->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sequenceFormula->addColumn('sequence_method_id', Type::INTEGER)->setNotnull(false);
$sequenceFormula->addColumn('sequence_variable_id', Type::INTEGER)->setNotnull(false);
$sequenceFormula->setPrimaryKey(['id']);
$sequenceFormula->addIndex(['sequence_method_id']);
$sequenceFormula->addIndex(['sequence_variable_id']);
$sequenceFormula->addForeignKeyConstraint('sequence_variable', ['sequence_variable_id'], ['id']);
$sequenceFormula->addForeignKeyConstraint('sequence_method', ['sequence_method_id'], ['id']);
}
if (!$schema->hasTable('sequence_valid')) {
$sequenceValid = $schema->createTable('sequence_valid');
$sequenceValid->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sequenceValid->addColumn('sequence_variable_id', Type::INTEGER)->setNotnull(false);
$sequenceValid->addColumn('sequence_condition_id', Type::INTEGER)->setNotnull(false);
$sequenceValid->setPrimaryKey(['id']);
$sequenceValid->addIndex(['sequence_variable_id']);
$sequenceValid->addIndex(['sequence_condition_id']);
$sequenceValid->addForeignKeyConstraint('sequence_condition', ['sequence_condition_id'], ['id']);
$sequenceValid->addForeignKeyConstraint('sequence_variable', ['sequence_variable_id'], ['id']);
}
if (!$schema->hasTable('sequence_type_entity')) {
$sequenceTypeEntity = $schema->createTable('sequence_type_entity');
$sequenceTypeEntity->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sequenceTypeEntity->addColumn('name', Type::STRING)->setLength(255);
$sequenceTypeEntity->addColumn('description', Type::TEXT);
$sequenceTypeEntity->addColumn('ent_table', Type::STRING)->setLength(255);
$sequenceTypeEntity->setPrimaryKey(['id']);
}
if (!$schema->hasTable('sequence_row_entity')) {
$sequenceRowEntity = $schema->createTable('sequence_row_entity');
$sequenceRowEntity->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sequenceRowEntity->addColumn('sequence_type_entity_id', Type::INTEGER)->setNotnull(false);
$sequenceRowEntity->addColumn('c_id', Type::INTEGER);
$sequenceRowEntity->addColumn('session_id', Type::INTEGER);
$sequenceRowEntity->addColumn('row_id', Type::INTEGER);
$sequenceRowEntity->addColumn('name', Type::STRING)->setLength(255);
$sequenceRowEntity->setPrimaryKey(['id']);
$sequenceRowEntity->addIndex(['sequence_type_entity_id']);
$sequenceRowEntity->addForeignKeyConstraint('sequence_type_entity', ['sequence_type_entity_id'], ['id']);
}
if (!$schema->hasTable('sequence')) {
$sequence = $schema->createTable('sequence');
$sequence->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sequence->addColumn('name', Type::STRING)->setLength(255);
$sequence->addColumn('graph', Type::TEXT)->setNotnull(false);
$sequence->addColumn('created_at', Type::DATETIME);
$sequence->addColumn('updated_at', Type::DATETIME);
$sequence->setPrimaryKey(['id']);
}
if (!$schema->hasTable('sequence_value')) {
$sequenceValue = $schema->createTable('sequence_value');
$sequenceValue->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sequenceValue->addColumn('sequence_row_entity_id', Type::INTEGER)->setNotnull(false);
$sequenceValue->addColumn('user_id', Type::INTEGER);
$sequenceValue->addColumn('advance', Type::FLOAT);
$sequenceValue->addColumn('complete_items', Type::INTEGER);
$sequenceValue->addColumn('total_items', Type::INTEGER);
$sequenceValue->addColumn('success', Type::BOOLEAN);
$sequenceValue->addColumn('success_date', Type::DATETIME)->setNotnull(false);
$sequenceValue->addColumn('available', Type::BOOLEAN);
$sequenceValue->addColumn('available_start_date', Type::DATETIME)->setNotnull(false);
$sequenceValue->addColumn('available_end_date', Type::DATETIME)->setNotnull(false);
$sequenceValue->setPrimaryKey(['id']);
$sequenceValue->addIndex(['sequence_row_entity_id']);
$sequenceValue->addForeignKeyConstraint('sequence_row_entity', ['sequence_row_entity_id'], ['id']);
}
if (!$schema->hasTable('sequence_resource')) {
$sequenceResource = $schema->createTable('sequence_resource');
$sequenceResource->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sequenceResource->addColumn('sequence_id', Type::INTEGER)->setNotnull(false);
$sequenceResource->addColumn('type', Type::INTEGER);
$sequenceResource->addColumn('resource_id', Type::INTEGER);
$sequenceResource->setPrimaryKey(['id']);
$sequenceResource->addIndex(['sequence_id']);
$sequenceResource->addForeignKeyConstraint('sequence', ['sequence_id'], ['id']);
}
}
/**
* We don't allow downgrades yet
* @param Schema $schema
*/
public function down(Schema $schema)
{
}
}

@ -1,77 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150504182600
*
* @package Application\Migrations\Schema\V110
*/
class Version20150504182600 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*
* @throws \Doctrine\DBAL\Schema\SchemaException
*/
public function up(Schema $schema)
{
// Set parent language to Spanish for all close-by languages. Same for Italian,
// French, Portuguese and Chinese
$connection = $this->connection;
$sql = "SELECT id, english_name
FROM language
WHERE english_name IN ('spanish', 'italian', 'portuguese', 'simpl_chinese', 'french')";
$result = $connection->executeQuery($sql);
$dataList = $result->fetchAll();
$languages = array();
if (!empty($dataList)) {
foreach ($dataList as $data) {
$languages[$data['english_name']] = $data['id'];
}
}
$this->addSql("
UPDATE language SET parent_id = " . $languages['spanish'] . " WHERE english_name = 'quechua_cusco'
");
$this->addSql("
UPDATE language SET parent_id = " . $languages['spanish'] . " WHERE english_name = 'galician'
");
$this->addSql("
UPDATE language SET parent_id = " . $languages['spanish'] . " WHERE english_name = 'esperanto'
");
$this->addSql("
UPDATE language SET parent_id = " . $languages['spanish'] . " WHERE english_name = 'catalan'
");
$this->addSql("
UPDATE language SET parent_id = " . $languages['spanish'] . " WHERE english_name = 'asturian'
");
$this->addSql("
UPDATE language SET parent_id = " . $languages['spanish'] . " WHERE english_name = 'friulian'
");
$this->addSql("
UPDATE language SET parent_id = " . $languages['french'] . " WHERE english_name = 'occitan'
");
$this->addSql("
UPDATE language SET parent_id = " . $languages['portuguese'] . " WHERE english_name = 'brazilian'
");
$this->addSql("
UPDATE language SET parent_id = " . $languages['simpl_chinese'] . " WHERE english_name = 'trad_chinese'
");
}
/**
* We don't allow downgrades yet
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql("
UPDATE language SET parent_id = 0 WHERE english_name IN ('trad_chinese', 'brazilian', 'occitan', 'friulian', 'asturian', 'catalan', 'esperanto', 'galician', 'quechua_cusco')
");
}
}

@ -1,64 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Extra fields changes
*/
class Version20150505132304 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
// Force table creation in order to do updates/insert later.
$this->connection->executeQuery('CREATE TABLE IF NOT EXISTS extra_field (id INT AUTO_INCREMENT NOT NULL, extra_field_type INT NOT NULL, field_type INT NOT NULL, variable VARCHAR(64) NOT NULL, display_text VARCHAR(255) DEFAULT NULL, default_value LONGTEXT, field_order INT DEFAULT NULL, visible TINYINT(1) DEFAULT NULL, changeable TINYINT(1) DEFAULT NULL, filter TINYINT(1) DEFAULT NULL, created_at DATETIME NOT NULL, PRIMARY KEY(id))');
$this->connection->executeQuery('CREATE TABLE IF NOT EXISTS extra_field_values (id INT AUTO_INCREMENT NOT NULL, value VARCHAR(255) DEFAULT NULL, field_id INT NOT NULL, item_id INT NOT NULL, comment LONGTEXT, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, PRIMARY KEY(id))');
$this->connection->executeQuery('CREATE TABLE IF NOT EXISTS extra_field_options (id INT AUTO_INCREMENT NOT NULL, field_id INT DEFAULT NULL, option_value LONGTEXT, display_text VARCHAR(64) DEFAULT NULL, option_order INT DEFAULT NULL, priority VARCHAR(255) DEFAULT NULL, priority_message VARCHAR(255) DEFAULT NULL, INDEX IDX_A572E3AE443707B0 (field_id), PRIMARY KEY(id))');
if (!$schema->hasTable('extra_field_options')) {
$this->connection->executeQuery(
'ALTER TABLE extra_field_options ADD CONSTRAINT FK_A572E3AE443707B0 FOREIGN KEY (field_id) REFERENCES extra_field (id)'
);
}
$this->addSql('CREATE TABLE IF NOT EXISTS extra_field_option_rel_field_option (id INT AUTO_INCREMENT NOT NULL, field_id INT DEFAULT NULL, field_option_id INT DEFAULT NULL, related_field_option_id INT DEFAULT NULL, role_id INT DEFAULT NULL, UNIQUE INDEX idx (field_id, role_id, field_option_id, related_field_option_id), PRIMARY KEY(id))');
/*
$this->addSql('DROP TABLE course_field');
$this->addSql('DROP TABLE course_field_options');
$this->addSql('DROP TABLE course_field_values');
$this->addSql('DROP TABLE session_field');
$this->addSql('DROP TABLE session_field_options');
$this->addSql('DROP TABLE session_field_values');
$this->addSql('DROP TABLE user_field');
$this->addSql('DROP TABLE user_field_options');
$this->addSql('DROP TABLE user_field_values');
*/
}
/**
* @param Schema $schema
*/
public function postUp(Schema $schema)
{
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE extra_field_options DROP FOREIGN KEY FK_A572E3AE443707B0');
$this->addSql('DROP TABLE extra_field_option_rel_field_option');
$this->addSql('DROP TABLE extra_field_options');
$this->addSql('DROP TABLE extra_field');
$this->addSql('DROP TABLE extra_field_values');
}
}

@ -1,77 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Type;
/**
* Class Version20150505142900
*
* @package Application\Migrations\Schema\V110
*/
class Version20150505142900 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*
* @throws \Doctrine\DBAL\Schema\SchemaException
*/
public function up(Schema $schema)
{
// Create table for video chat
if (!$schema->hasTable('chat_video')) {
$chatVideoTable = $schema->createTable('chat_video');
$chatVideoTable->addColumn(
'id',
Type::INTEGER,
['autoincrement' => true, 'notnull' => true]
);
$chatVideoTable->addColumn(
'from_user',
Type::INTEGER,
['notnull' => true]
);
$chatVideoTable->addColumn(
'to_user',
Type::INTEGER,
['notnull' => true]
);
$chatVideoTable->addColumn(
'room_name',
Type::STRING,
['length' => 255, 'notnull' => true]
);
$chatVideoTable->addColumn(
'datetime',
Type::DATETIME,
['notnull' => true]
);
$chatVideoTable->setPrimaryKey(['id']);
$chatVideoTable->addIndex(
['from_user'],
'idx_chat_video_from_user'
);
$chatVideoTable->addIndex(['to_user'], 'idx_chat_video_to_user');
$chatVideoTable->addIndex(
['from_user', 'to_user'],
'idx_chat_video_users'
);
$chatVideoTable->addIndex(
['room_name'],
'idx_chat_video_room_name'
);
}
}
/**
* We don't allow downgrades yet
* @param Schema $schema
*/
public function down(Schema $schema)
{
$schema->dropTable('chat_video');
}
}

@ -1,242 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150507152600
*
* @package Application\Migrations\Schema\V110
*/
class Version20150507152600 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*
* @throws \Doctrine\DBAL\Schema\SchemaException
*/
public function up(Schema $schema)
{
// Move some settings from configuration.php to the database
// Current settings categories are:
// Platform, Course, Session, Languages, User, Tools, Editor, Security,
// Tuning, Gradebook, Timezones, Tracking, Search, stylesheets (lowercase),
// LDAP, CAS, Shibboleth, Facebook
// Setting $_configuration['hide_home_top_when_connected'] = true;
$value = $this->getConfigurationValue('hide_home_top_when_connected');
$this->addSettingCurrent(
'hide_home_top_when_connected',
'',
'radio',
'Platform',
($value ? 'true' : 'false'),
'HideHomeTopContentWhenLoggedInText',
'HideHomeTopContentWhenLoggedInComment',
null,
'',
1,
true,
false,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No'],
]
);
// Hide the global announcements for non-connected users
//$_configuration['hide_global_announcements_when_not_connected'] = true;
$value = $this->getConfigurationValue('hide_global_announcements_when_not_connected');
$this->addSettingCurrent(
'hide_global_announcements_when_not_connected',
'',
'radio',
'Platform',
($value?'true':'false'),
'HideGlobalAnnouncementsWhenNotLoggedInText',
'HideGlobalAnnouncementsWhenNotLoggedInComment',
null,
'',
1,
true,
false,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No'],
]
);
// Use this course as template for all new courses (define course real ID as value)
//$_configuration['course_creation_use_template'] = 14;
$value = $this->getConfigurationValue('course_creation_use_template');
$this->addSettingCurrent(
'course_creation_use_template',
'',
'textfield',
'Course',
($value?$value:''),
'CourseCreationUsesTemplateText',
'CourseCreationUsesTemplateComment',
null,
'',
1,
true,
false,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No'],
]
);
// Add password strength checker
//$_configuration['allow_strength_pass_checker'] = true;
$value = $this->getConfigurationValue('allow_strength_pass_checker');
$this->addSettingCurrent(
'allow_strength_pass_checker',
'',
'radio',
'Security',
($value?'true':'false'),
'EnablePasswordStrengthCheckerText',
'EnablePasswordStrengthCheckerComment',
null,
'',
1,
true,
false,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No'],
]
);
// Enable captcha
// $_configuration['allow_captcha'] = true;
$value = $this->getConfigurationValue('allow_captcha');
$this->addSettingCurrent(
'allow_captcha',
'',
'radio',
'Security',
($value?'true':'false'),
'EnableCaptchaText',
'EnableCaptchaComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Prevent account from logging in for a certain amount of time
// if captcha is wrong for the specified number of times
//$_configuration['captcha_number_mistakes_to_block_account'] = 5;
$value = $this->getConfigurationValue('captcha_number_mistakes_to_block_account');
$this->addSettingCurrent(
'captcha_number_mistakes_to_block_account',
'',
'textfield',
'Security',
($value?$value:5),
'CaptchaNumberOfMistakesBeforeBlockingAccountText',
'CaptchaNumberOfMistakesBeforeBlockingAccountComment',
null,
'',
1,
true,
false
);
// Prevent account from logging in for the specified number of minutes
//$_configuration['captcha_time_to_block'] = 5;//minutes
$value = $this->getConfigurationValue('captcha_time_to_block');
$this->addSettingCurrent(
'captcha_time_to_block',
'',
'textfield',
'Security',
($value?$value:5),
'CaptchaTimeAccountIsLockedText',
'CaptchaTimeAccountIsLockedComment',
null,
'',
1,
true,
false
);
// Allow DRH role to access all content and users from the sessions he follows
//$_configuration['drh_can_access_all_session_content'] = true;
$value = $this->getConfigurationValue('drh_can_access_all_session_content');
$this->addSettingCurrent(
'drh_can_access_all_session_content',
'',
'radio',
'Session',
($value?'true':'false'),
'DRHAccessToAllSessionContentText',
'DRHAccessToAllSessionContentComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Display group's forum in general forum tool
//$_configuration['display_groups_forum_in_general_tool'] = true;
$value = $this->getConfigurationValue('display_groups_forum_in_general_tool');
$this->addSettingCurrent(
'display_groups_forum_in_general_tool',
'',
'radio',
'Tools',
($value?'true':'false'),
'ShowGroupForaInGeneralToolText',
'ShowGroupForaInGeneralToolComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Allow course tutors in sessions to add existing students to their session
//$_configuration['allow_tutors_to_assign_students_to_session'] = 'false';
$value = $this->getConfigurationValue('allow_tutors_to_assign_students_to_session');
$this->addSettingCurrent(
'allow_tutors_to_assign_students_to_session',
'',
'radio',
'Session',
($value?'true':'false'),
'TutorsCanAssignStudentsToSessionsText',
'TutorsCanAssignStudentsToSessionsComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
}
/**
* We don't allow downgrades yet
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql("
DELETE FROM settings_options WHERE variable IN ('hide_home_top_when_connected', 'hide_global_announcements_when_not_connected', 'course_creation_use_template', 'allow_strength_pass_checker', 'allow_captcha', 'captcha_number_mistakes_to_block_account', 'captcha_time_to_block', 'drh_can_access_all_session_content', 'display_groups_forum_in_general_tool', 'allow_tutors_to_assign_students_to_session')
");
$this->addSql("
DELETE FROM settings_current WHERE variable IN ('hide_home_top_when_connected', 'hide_global_announcements_when_not_connected', 'course_creation_use_template', 'allow_strength_pass_checker', 'allow_captcha', 'captcha_number_mistakes_to_block_account', 'captcha_time_to_block', 'drh_can_access_all_session_content', 'display_groups_forum_in_general_tool', 'allow_tutors_to_assign_students_to_session')
");
}
}

@ -1,43 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Username changes
*/
class Version20150511133949 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('ALTER TABLE user ADD salt VARCHAR(255) NOT NULL');
$this->addSql('ALTER TABLE user ADD username_canonical VARCHAR(100) NOT NULL');
//$this->addSql('CREATE UNIQUE INDEX UNIQ_8D93D64992FC23A8 ON user (username_canonical)');
$this->addSql('ALTER TABLE user CHANGE password password VARCHAR(255) NOT NULL');
$this->addSql("INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('allow_teachers_to_create_sessions', NULL,'radio','Session','false','AllowTeachersToCreateSessionsTitle','AllowTeachersToCreateSessionsComment', NULL, NULL, 0)");
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('allow_teachers_to_create_sessions', 'true', 'Yes')");
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('allow_teachers_to_create_sessions', 'false', 'No')");
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE user DROP salt');
$this->addSql('DROP INDEX UNIQ_8D93D64992FC23A8 ON user');
$this->addSql('ALTER TABLE user DROP username_canonical');
$this->addSql('ALTER TABLE user CHANGE password password VARCHAR(50) NOT NULL COLLATE utf8_unicode_ci');
$this->addSql('DELETE FROM settings_current WHERE variable = "allow_teachers_to_create_sessions" ');
$this->addSql('DELETE FROM settings_options WHERE variable = "allow_teachers_to_create_sessions" ');
}
}

@ -1,29 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Username changes
*/
class Version20150519153200 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('ALTER TABLE session_rel_user ADD COLUMN registered_at DATETIME NOT NULL');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE session_rel_user DROP COLUMN registered_at');
}
}

@ -1,31 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Username changes
*/
class Version20150521113600 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('ALTER TABLE c_forum_thread MODIFY thread_replies int UNSIGNED NOT NULL DEFAULT 0');
$this->addSql('ALTER TABLE c_forum_thread MODIFY thread_views int UNSIGNED NOT NULL DEFAULT 0');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE c_forum_thread MODIFY thread_replies int NULL');
$this->addSql('ALTER TABLE c_forum_thread MODIFY thread_views int NULL');
}
}

@ -1,49 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Usergroup changes
*/
class Version20150522112023 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
// Set 0 if there's no group category.
$this->addSql('UPDATE c_group_info SET category_id = 0 WHERE category_id = 2');
$this->addSql('ALTER TABLE usergroup ADD group_type INT NOT NULL, ADD created_at DATETIME NOT NULL, ADD updated_at DATETIME NOT NULL');
$this->addSql('ALTER TABLE usergroup ADD picture VARCHAR(255) DEFAULT NULL, ADD url VARCHAR(255) DEFAULT NULL, ADD visibility VARCHAR(255) NOT NULL, ADD allow_members_leave_group INT NOT NULL, CHANGE description description LONGTEXT');
$this->addSql('CREATE TABLE usergroup_rel_usergroup (id INT AUTO_INCREMENT NOT NULL, group_id INT NOT NULL, subgroup_id INT NOT NULL, relation_type INT NOT NULL, PRIMARY KEY(id))');
$this->addSql('ALTER TABLE usergroup_rel_user ADD relation_type INT');
if (!$schema->hasTable('access_url_rel_usergroup')) {
$this->addSql(
'CREATE TABLE access_url_rel_usergroup (id INT AUTO_INCREMENT NOT NULL, access_url_id INT NOT NULL, usergroup_id INT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'
);
$sql = 'SELECT * FROM usergroup';
$result = $this->connection->query($sql);
$results = $result->fetchAll();
foreach ($results as $result) {
$groupId = $result['id'];
$sql = "INSERT INTO access_url_rel_usergroup (access_url_id, usergroup_id) VALUES ('1', '$groupId')";
$this->addSql($sql);
}
}
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('DROP TABLE access_url_rel_usergroup');
}
}

@ -1,821 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150522222222
* @package Application\Migrations\Schema\V11010
*/
class Version20150522222222 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
// The first ALTER queries here requires a check because the field might already exist
$connection = $this->connection;
$fieldExists = false;
$sql = "SELECT *
FROM user
LIMIT 1";
$result = $connection->executeQuery($sql);
$dataList = $result->fetchAll();
if (!empty($dataList)) {
foreach ($dataList as $data) {
if (isset($data['last_login'])) {
$fieldExists = true;
}
}
}
if (!$fieldExists) {
$this->addSql('ALTER TABLE user ADD COLUMN last_login datetime DEFAULT NULL');
}
// calendar events comments
$fieldExists = false;
$sql = "SELECT *
FROM c_calendar_event
LIMIT 1";
$result = $connection->executeQuery($sql);
$dataList = $result->fetchAll();
if (!empty($dataList)) {
foreach ($dataList as $data) {
if (isset($data['comment'])) {
$fieldExists = true;
}
}
}
if (!$fieldExists) {
$this->addSql("ALTER TABLE c_calendar_event ADD COLUMN comment TEXT");
}
// Move some settings from configuration.php to the database
// Current settings categories are:
// Platform, Course, Session, Languages, User, Tools, Editor, Security,
// Tuning, Gradebook, Timezones, Tracking, Search, stylesheets (lowercase),
// LDAP, CAS, Shibboleth, Facebook
// Allow select the return link in the LP view
$value = $this->getConfigurationValue('allow_lp_return_link');
$this->addSettingCurrent(
'allow_lp_return_link',
'',
'radio',
'Course',
($value?$value:'true'),
'AllowLearningPathReturnLinkTitle',
'AllowLearningPathReturnLinkComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// If true the export link is blocked.
$value = $this->getConfigurationValue('hide_scorm_export_link');
$this->addSettingCurrent(
'hide_scorm_export_link',
'',
'radio',
'Course',
($value?$value:'false'),
'HideScormExportLinkTitle',
'HideScormExportLinkComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// If true the copy link is blocked.
//$_configuration['hide_scorm_copy_link'] = false;
$value = $this->getConfigurationValue('hide_scorm_copy_link');
$this->addSettingCurrent(
'hide_scorm_copy_link',
'',
'radio',
'Course',
($value?$value:'false'),
'HideScormCopyLinkTitle',
'HideScormCopyLinkComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// If true the pdf export link is blocked.
//$_configuration['hide_scorm_pdf_link'] = false;
$value = $this->getConfigurationValue('hide_scorm_pdf_link');
$this->addSettingCurrent(
'hide_scorm_pdf_link',
'',
'radio',
'Course',
($value?$value:'false'),
'HideScormPdfLinkTitle',
'HideScormPdfLinkComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Default session days before coach access
//$_configuration['session_days_before_coach_access'] = 0;
$value = $this->getConfigurationValue('session_days_before_coach_access');
$this->addSettingCurrent(
'session_days_before_coach_access',
'',
'textfield',
'Session',
($value?$value:'0'),
'SessionDaysBeforeCoachAccessTitle',
'SessionDaysBeforeCoachAccessComment',
null,
'',
1,
true,
false
);
// Default session days after coach access
//$_configuration['session_days_after_coach_access'] = 0;
$value = $this->getConfigurationValue('session_days_after_coach_access');
$this->addSettingCurrent(
'session_days_after_coach_access',
'',
'textfield',
'Session',
($value?$value:'0'),
'SessionDaysAfterCoachAccessTitle',
'SessionDaysAfterCoachAccessComment',
null,
'',
1,
true,
false
);
// PDF Logo header in app/Resources/public/css/themes/xxx/images/pdf_logo_header.png
//$_configuration['pdf_logo_header'] = false;
$value = $this->getConfigurationValue('pdf_logo_header');
$this->addSettingCurrent(
'pdf_logo_header',
'',
'radio',
'Course',
($value?$value:'false'),
'PdfLogoHeaderTitle',
'PdfLogoHeaderComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Order inscription user list by official_code
//$_configuration['order_user_list_by_official_code'] = false;
$value = $this->getConfigurationValue('order_user_list_by_official_code');
$this->addSettingCurrent(
'order_user_list_by_official_code',
'',
'radio',
'Platform',
($value?$value:'false'),
'OrderUserListByOfficialCodeTitle',
'OrderUserListByOfficialCodeComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Default course setting "email_alert_manager_on_new_quiz"
//$_configuration['email_alert_manager_on_new_quiz'] = 1;
$value = $this->getConfigurationValue('email_alert_manager_on_new_quiz');
$this->addSettingCurrent(
'email_alert_manager_on_new_quiz',
'',
'radio',
'Course',
($value?$value:'true'),
'AlertManagerOnNewQuizTitle',
'AlertManagerOnNewQuizComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Show official code in exercise report list.
//$_configuration['show_official_code_exercise_result_list'] = false;
$value = $this->getConfigurationValue('show_official_code_exercise_result_list');
$this->addSettingCurrent(
'show_official_code_exercise_result_list',
'',
'radio',
'Tools',
($value?$value:'false'),
'ShowOfficialCodeInExerciseResultListTitle',
'ShowOfficialCodeInExerciseResultListComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Hide private courses from course catalog
//$_configuration['course_catalog_hide_private'] = false;
$value = $this->getConfigurationValue('course_catalog_hide_private');
$this->addSettingCurrent(
'course_catalog_hide_private',
'',
'radio',
'Platform',
($value?$value:'false'),
'HidePrivateCoursesFromCourseCatalogTitle',
'HidePrivateCoursesFromCourseCatalogComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Display sessions catalog
// 0 = show only courses; 1 = show only sessions; 2 = show courses and sessions
//$_configuration['catalog_show_courses_sessions'] = 0;
$value = $this->getConfigurationValue('catalog_show_courses_sessions');
$this->addSettingCurrent(
'catalog_show_courses_sessions',
'',
'radio',
'Platform',
($value?$value:'0'),
'CoursesCatalogueShowSessionsTitle',
'CoursesCatalogueShowSessionsComment',
null,
'',
1,
true,
false,
[0 => ['value' => '0', 'text' => 'CatalogueShowOnlyCourses'], 1 => ['value' => '1', 'text' => 'CatalogueShowOnlySessions'], 2 => ['value' => '2', 'text' => 'CatalogueShowCoursesAndSessions']]
);
// Auto detect language custom pages.
// $_configuration['auto_detect_language_custom_pages'] = true;
$value = $this->getConfigurationValue('auto_detect_language_custom_pages');
$this->addSettingCurrent(
'auto_detect_language_custom_pages',
'',
'radio',
'Platform',
($value?$value:'true'),
'AutoDetectLanguageCustomPagesTitle',
'AutoDetectLanguageCustomPagesComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Show reduce LP report
//$_configuration['lp_show_reduced_report'] = false;
$value = $this->getConfigurationValue('lp_show_reduced_report');
$this->addSettingCurrent(
'lp_show_reduced_report',
'',
'radio',
'Tools',
($value?$value:'false'),
'LearningPathShowReducedReportTitle',
'LearningPathShowReducedReportComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
//Allow session-to-session copy
//$_configuration['allow_session_course_copy_for_teachers'] = true;
$value = $this->getConfigurationValue('allow_session_course_copy_for_teachers');
$this->addSettingCurrent(
'allow_session_course_copy_for_teachers',
'',
'radio',
'Session',
($value?$value:'false'),
'AllowSessionCourseCopyForTeachersTitle',
'AllowSessionCourseCopyForTeachersComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Hide the logout button
//$_configuration['hide_logout_button'] = true;
$value = $this->getConfigurationValue('hide_logout_button');
$this->addSettingCurrent(
'hide_logout_button',
'',
'radio',
'Security',
($value?$value:'false'),
'HideLogoutButtonTitle',
'HideLogoutButtonComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Prevent redirecting admin to admin page
//$_configuration['redirect_admin_to_courses_list'] = true;
$value = $this->getConfigurationValue('redirect_admin_to_courses_list');
$this->addSettingCurrent(
'redirect_admin_to_courses_list',
'',
'radio',
'Platform',
($value?$value:'false'),
'RedirectAdminToCoursesListTitle',
'RedirectAdminToCoursesListComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Shows the custom course icon instead of the classic green board icon
//$_configuration['course_images_in_courses_list'] = false;
$value = $this->getConfigurationValue('course_images_in_courses_list');
$this->addSettingCurrent(
'course_images_in_courses_list',
'',
'radio',
'Course',
($value?$value:'false'),
'CourseImagesInCoursesListTitle',
'CourseImagesInCoursesListComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Which student publication will be taken when connected to the gradebook: first|last
//$_configuration['student_publication_to_take_in_gradebook'] = 'first';
$value = $this->getConfigurationValue('student_publication_to_take_in_gradebook');
$this->addSettingCurrent(
'student_publication_to_take_in_gradebook',
'',
'radio',
'Gradebook',
($value?$value:'first'),
'StudentPublicationSelectionForGradebookTitle',
'StudentPublicationSelectionForGradebookComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'first', 'text' => 'First'], 1 => ['value' => 'last', 'text' => 'Last']]
);
// Show a filter by official code
//$_configuration['certificate_filter_by_official_code'] = false;
$value = $this->getConfigurationValue('certificate_filter_by_official_code');
$this->addSettingCurrent(
'certificate_filter_by_official_code',
'',
'radio',
'Gradebook',
($value?$value:'false'),
'FilterCertificateByOfficialCodeTitle',
'FilterCertificateByOfficialCodeComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Max quantity of fkceditor allowed in the exercise result page otherwise
// Textareas are used.
//$_configuration['exercise_max_ckeditors_in_page'] = 0;
$value = $this->getConfigurationValue('exercise_max_ckeditors_in_page');
$this->addSettingCurrent(
'exercise_max_ckeditors_in_page',
'',
'textfield',
'Tools',
($value?$value:'0'),
'MaxCKeditorsOnExerciseResultsPageTitle',
'MaxCKeditorsOnExerciseResultsPageComment',
null,
'',
1,
true,
false,
array()
);
// Default upload option
//$_configuration['document_if_file_exists_option'] = 'rename'; // overwrite
$value = $this->getConfigurationValue('document_if_file_exists_option');
$this->addSettingCurrent(
'document_if_file_exists_option',
'',
'radio',
'Tools',
($value?$value:'rename'),
'DocumentDefaultOptionIfFileExistsTitle',
'DocumentDefaultOptionIfFileExistsComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'rename', 'text' => 'Rename'], 1 => ['value' => 'overwrite', 'text' => 'Overwrite']]
);
// Enable add_gradebook_certificates.php cron task
//$_configuration['add_gradebook_certificates_cron_task_enabled'] = true;
$value = $this->getConfigurationValue('add_gradebook_certificates_cron_task_enabled');
$this->addSettingCurrent(
'add_gradebook_certificates_cron_task_enabled',
'',
'radio',
'Tools',
($value?$value:'false'),
'GradebookCronTaskGenerationTitle',
'GradebookCronTaskGenerationComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Which OpenBadges backpack send the badges
//$_configuration['openbadges_backpack'] = 'https://backpack.openbadges.org/';
$value = $this->getConfigurationValue('openbadges_backpack');
$this->addSettingCurrent(
'openbadges_backpack',
'',
'textfield',
'Gradebook',
($value?$value:'https://backpack.openbadges.org/'),
'OpenBadgesBackpackUrlTitle',
'OpenBadgesBackpackUrlComment',
null,
'',
1,
true,
false,
[]
);
// Shows a warning message explaining that the site uses cookies
//$_configuration['cookie_warning'] = false;
$value = $this->getConfigurationValue('cookie_warning');
$this->addSettingCurrent(
'cookie_warning',
'',
'radio',
'Tools',
($value?$value:'false'),
'CookieWarningTitle',
'CookieWarningComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// If there are any tool available and the user is not registered hide the group
//$_configuration['hide_course_group_if_no_tools_available'] = false;
$value = $this->getConfigurationValue('hide_course_group_if_no_tools_available');
$this->addSettingCurrent(
'hide_course_group_if_no_tools_available',
'',
'radio',
'Tools',
($value?$value:'false'),
'HideCourseGroupIfNoToolAvailableTitle',
'HideCourseGroupIfNoToolAvailableComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Allow student to enroll into a session without an approval needing
//$_configuration['catalog_allow_session_auto_subscription'] = false;
$value = $this->getConfigurationValue('catalog_allow_session_auto_subscription');
$this->addSettingCurrent(
'catalog_allow_session_auto_subscription',
'',
'radio',
'Session',
($value?$value:'false'),
'CatalogueAllowSessionAutoSubscriptionTitle',
'CatalogueAllowSessionAutoSubscriptionComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Decode UTF-8 from Web Services (option passed to SOAP)
//$_configuration['registration.soap.php.decode_utf8'] = false;
$value = $this->getConfigurationValue('registration.soap.php.decode_utf8');
$this->addSettingCurrent(
'registration.soap.php.decode_utf8',
'',
'radio',
'Platform',
($value?$value:'false'),
'SoapRegistrationDecodeUtf8Title',
'SoapRegistrationDecodeUtf8Comment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Show delete option in attendance
//$_configuration['allow_delete_attendance'] = false;
$value = $this->getConfigurationValue('allow_delete_attendance');
$this->addSettingCurrent(
'allow_delete_attendance',
'',
'radio',
'Tools',
($value?$value:'false'),
'AttendanceDeletionEnableTitle',
'AttendanceDeletionEnableComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Enable Gravatar profile image if no local image has been given
//$_configuration['gravatar_enabled'] = true;
$value = $this->getConfigurationValue('gravatar_enabled');
$this->addSettingCurrent(
'gravatar_enabled',
'',
'radio',
'Platform',
($value?$value:'false'),
'GravatarPicturesTitle',
'GravatarPicturesComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// If Gravatar is enabled, tells which type of picture we want (default is "mm").
// Options: mm | identicon | monsterid | wavatar
//$_configuration['gravatar_type'] = 'mm';
$value = $this->getConfigurationValue('gravatar_type');
$this->addSettingCurrent(
'gravatar_type',
'',
'radio',
'Platform',
($value?$value:'mm'),
'GravatarPicturesTypeTitle',
'GravatarPicturesTypeComment',
null,
'',
1,
true,
false,
[
0 => ['value' => 'mm', 'text' => 'mystery-man'],
1 => ['value' => 'identicon', 'text' => 'identicon'],
2 => ['value' => 'monsterid', 'text' => 'monsterid'],
3 => ['value' => 'wavatar', 'text' => 'wavatar']
]
);
// Limit for the Session Admin role. The administration page show only
// User block -> Add user
// Course Sessions block -> Training session list
//$_configuration['limit_session_admin_role'] = false;
$value = $this->getConfigurationValue('limit_session_admin_role');
$this->addSettingCurrent(
'limit_session_admin_role',
'',
'radio',
'Session',
($value?$value:'false'),
'SessionAdminPermissionsLimitTitle',
'SessionAdminPermissionsLimitComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Show session description
//$_configuration['show_session_description'] = false;
$value = $this->getConfigurationValue('show_session_description');
$this->addSettingCurrent(
'show_session_description',
'',
'radio',
'Session',
($value?$value:'false'),
'ShowSessionDescriptionTitle',
'ShowSessionDescriptionComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Hide only for students the link to export certificates to PDF
//$_configuration['hide_certificate_export_link_students'] = false;
$value = $this->getConfigurationValue('hide_certificate_export_link_students');
$this->addSettingCurrent(
'hide_certificate_export_link_students',
'',
'radio',
'Gradebook',
($value?$value:'false'),
'CertificateHideExportLinkStudentTitle',
'CertificateHideExportLinkStudentComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Hide for all user roles the link to export certificates to PDF
//$_configuration['hide_certificate_export_link'] = false;
$value = $this->getConfigurationValue('hide_certificate_export_link');
$this->addSettingCurrent(
'hide_certificate_export_link',
'',
'radio',
'Gradebook',
($value?$value:'false'),
'CertificateHideExportLinkTitle',
'CertificateHideExportLinkComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Hide session course coach in dropbox sent to user list
//$_configuration['dropbox_hide_course_coach'] = false;
$value = $this->getConfigurationValue('dropbox_hide_course_coach');
$this->addSettingCurrent(
'dropbox_hide_course_coach',
'',
'radio',
'Tools',
($value ? $value : 'false'),
'DropboxHideCourseCoachTitle',
'DropboxHideCourseCoachComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
$value = $this->getConfigurationValue('dropbox_hide_general_coach');
$this->addSettingCurrent(
'dropbox_hide_general_coach',
'',
'radio',
'Tools',
($value ? $value : 'false'),
'DropboxHideGeneralCoachTitle',
'DropboxHideGeneralCoachComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// If SSO is used, the redirection to the master server is forced.
//$_configuration['force_sso_redirect'] = false;
$value = $this->getConfigurationValue('force_sso_redirect');
$this->addSettingCurrent(
'sso_force_redirect',
'',
'radio',
'Security',
($value?$value:'false'),
'SSOForceRedirectTitle',
'SSOForceRedirectComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
// Session course ordering in the the session view.
// false = alphabetic order (default)
// true = based in the session course list
//$_configuration['session_course_ordering'] = false;
$value = $this->getConfigurationValue('session_course_ordering');
$this->addSettingCurrent(
'session_course_ordering',
'',
'radio',
'Session',
($value?$value:'false'),
'SessionCourseOrderingTitle',
'SessionCourseOrderingComment',
null,
'',
1,
true,
false,
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql("DELETE FROM settings_options WHERE variable IN ('session_course_ordering', 'sso_force_redirect', 'dropbox_hide_course_coach', 'hide_certificate_export_link', 'hide_certificate_export_link_students', 'show_session_description', 'limit_session_admin_role', 'gravatar_type', 'gravatar_enabled', 'allow_delete_attendance', 'registration.soap.php.decode_utf8', 'catalog_allow_session_auto_subscription', 'hide_course_group_if_no_tools_available', 'cookie_warning', 'openbadges_backpack', 'add_gradebook_certificates_cron_task_enabled', 'document_if_file_exists_option', 'exercise_max_ckeditors_in_page', 'certificate_filter_by_official_code', 'student_publication_to_take_in_gradebook', 'course_images_in_courses_list', 'redirect_admin_to_courses_list', 'hide_logout_button', 'allow_session_course_copy_for_teachers', 'lp_show_reduced_report', 'auto_detect_language_custom_pages', 'catalog_show_courses_sessions', 'course_catalog_hide_private', 'show_official_code_exercise_result_list', 'allow_lp_return_link', 'hide_scorm_export_link', 'hide_scorm_copy_link', 'hide_scorm_pdf_link', 'session_days_before_coach_access', 'session_days_after_coach_access', 'pdf_logo_header', 'order_user_list_by_official_code', 'email_alert_manager_on_new_quiz')");
$this->addSql("DELETE FROM settings_current WHERE variable IN ('session_course_ordering', 'sso_force_redirect', 'dropbox_hide_course_coach', 'hide_certificate_export_link', 'hide_certificate_export_link_students', 'show_session_description', 'limit_session_admin_role', 'gravatar_type', 'gravatar_enabled', 'allow_delete_attendance', 'registration.soap.php.decode_utf8', 'catalog_allow_session_auto_subscription', 'hide_course_group_if_no_tools_available', 'cookie_warning', 'openbadges_backpack', 'add_gradebook_certificates_cron_task_enabled', 'document_if_file_exists_option', 'exercise_max_ckeditors_in_page', 'certificate_filter_by_official_code', 'student_publication_to_take_in_gradebook', 'course_images_in_courses_list', 'redirect_admin_to_courses_list', 'hide_logout_button', 'allow_session_course_copy_for_teachers', 'lp_show_reduced_report', 'auto_detect_language_custom_pages', 'catalog_show_courses_sessions', 'course_catalog_hide_private', 'show_official_code_exercise_result_list', 'allow_lp_return_link', 'hide_scorm_export_link', 'hide_scorm_copy_link', 'hide_scorm_pdf_link', 'session_days_before_coach_access', 'session_days_after_coach_access', 'pdf_logo_header', 'order_user_list_by_official_code', 'email_alert_manager_on_new_quiz')");
$this->addSql('ALTER TABLE user DROP COLUMN last_login');
}
}

@ -1,55 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150527120703
* LP autolunch -> autolaunch
* @package Application\Migrations\Schema\V11010
*/
class Version20150527101600 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSettingCurrent(
'gamification_mode',
'',
'radio',
'Platform',
0,
'GamificationModeTitle',
'GamificationModeComment',
null,
'',
1,
true,
false,
[
[
'value' => 1,
'text' => 'Yes'
],
[
'value' => 0,
'text' => 'No'
]
]
);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql("DELETE FROM settings_options WHERE variable = 'gamification_mode'");
$this->addSql("DELETE FROM settings_current WHERE variable = 'gamification_mode'");
}
}

@ -1,33 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150527114220
* Lp category
* @package Application\Migrations\Schema\V11010
*/
class Version20150527114220 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('CREATE TABLE c_lp_category (iid INT AUTO_INCREMENT NOT NULL, c_id INT NOT NULL, name VARCHAR(255) NOT NULL, position INT NOT NULL, PRIMARY KEY(iid)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
$this->addSql('ALTER TABLE c_lp ADD category_id INT NOT NULL DEFAULT 0');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('DROP TABLE c_lp_category');
$this->addSql('ALTER TABLE c_lp DROP category_id');
}
}

@ -1,31 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150527120703
* LP autolunch -> autolaunch
* @package Application\Migrations\Schema\V11010
*/
class Version20150527120703 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('ALTER TABLE c_lp CHANGE COLUMN autolunch autolaunch INT NOT NULL DEFAULT 0');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE c_lp CHANGE COLUMN autolaunch autolunch INT NOT NULL');
}
}

@ -1,76 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Session date changes
*/
class Version20150528103216 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('ALTER TABLE session ADD COLUMN access_start_date datetime');
$this->addSql('ALTER TABLE session ADD COLUMN access_end_date datetime');
$this->addSql('ALTER TABLE session ADD COLUMN coach_access_start_date datetime');
$this->addSql('ALTER TABLE session ADD COLUMN coach_access_end_date datetime');
$this->addSql('ALTER TABLE session ADD COLUMN display_start_date datetime');
$this->addSql('ALTER TABLE session ADD COLUMN display_end_date datetime');
$this->addSql('UPDATE session SET access_start_date = date_start');
$this->addSql("UPDATE session SET access_end_date = CONVERT(CONCAT(date_end, ' 23:59:59'), DATETIME)");
$this->addSql('UPDATE session SET coach_access_start_date = CONVERT(DATE_SUB(date_start, INTERVAL nb_days_access_before_beginning DAY), DATETIME) ');
$this->addSql('UPDATE session SET coach_access_start_date = NULL WHERE nb_days_access_before_beginning = 0');
$this->addSql('UPDATE session SET coach_access_end_date = CONVERT(DATE_ADD(date_end, INTERVAL nb_days_access_after_end DAY), DATETIME) ');
$this->addSql('UPDATE session SET coach_access_end_date = NULL WHERE nb_days_access_after_end = 0');
$this->addSql('UPDATE session SET display_start_date = access_start_date');
$this->addSql('UPDATE session SET display_end_date = access_end_date');
// Set dates to NULL
$this->addSql('UPDATE session SET access_start_date = NULL WHERE access_start_date = "0000-00-00 00:00:00"');
$this->addSql('UPDATE session SET access_end_date = NULL WHERE access_end_date = "0000-00-00 00:00:00"');
$this->addSql('UPDATE session SET coach_access_start_date = NULL WHERE coach_access_start_date = "0000-00-00 00:00:00"');
$this->addSql('UPDATE session SET coach_access_end_date = NULL WHERE coach_access_end_date = "0000-00-00 00:00:00"');
$this->addSql('UPDATE session SET display_start_date = NULL WHERE display_start_date = "0000-00-00 00:00:00"');
$this->addSql('UPDATE session SET display_end_date = NULL WHERE display_end_date = "0000-00-00 00:00:00"');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE session CREATE date_start date NOT NULL');
$this->addSql('ALTER TABLE session CREATE date_end date NOT NULL');
$this->addSql('ALTER TABLE session CREATE nb_days_access_before_beginning TINYINT');
$this->addSql('ALTER TABLE session CREATE nb_days_access_after_end TINYINT');
$this->addSql('UPDATE session SET date_start = access_start_date');
$this->addSql('UPDATE session SET date_end = access_end_date');
$this->addSql('UPDATE session SET nb_days_access_before_beginning = DATEDIFF(access_start_date, coach_access_start_date) WHERE access_start_date != coach_access_start_date AND coach_access_start_date IS NOT NULL');
$this->addSql('UPDATE session SET nb_days_access_after_end = DATEDIFF(coach_access_end_date, coach_access_end_date) WHERE access_end_date != coach_access_end_date AND coach_access_end_date IS NOT NULL');
$this->addSql('UPDATE session SET nb_days_access_before_beginning = 0 WHERE access_start_date = coach_access_start_date OR coach_access_start_date IS NULL');
$this->addSql('UPDATE session SET nb_days_access_after_end = 0 WHERE access_end_date = coach_access_end_date OR coach_access_end_date IS NULL');
$this->addSql('ALTER TABLE session DROP access_start_date');
$this->addSql('ALTER TABLE session DROP access_end_date');
$this->addSql('ALTER TABLE session DROP coach_access_start_date');
$this->addSql('ALTER TABLE session DROP coach_access_end_date');
$this->addSql('ALTER TABLE session DROP display_start_date');
$this->addSql('ALTER TABLE session DROP display_end_date');
}
}

@ -1,67 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Type as TableColumnType;
/**
* Session date changes
*/
class Version20150529164400 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
if (!$schema->hasTable('gradebook_score_log')) {
$gradebookScoreLog = $schema->createTable('gradebook_score_log');
$gradebookScoreLog->addColumn(
'id',
TableColumnType::INTEGER,
['unsigned' => true, 'autoincrement' => true, 'notnull' => true]
);
$gradebookScoreLog->addColumn(
'category_id',
TableColumnType::INTEGER,
['unsigned' => true, 'notnull' => true]
);
$gradebookScoreLog->addColumn(
'user_id',
TableColumnType::INTEGER,
['unsigned' => true, 'notnull' => true]
);
$gradebookScoreLog->addColumn(
'score',
TableColumnType::FLOAT,
['notnull' => true, 'scale' => 0, 'precision' => 10]
);
$gradebookScoreLog->addColumn(
'registered_at',
TableColumnType::DATETIME,
['notnull' => true]
);
$gradebookScoreLog->setPrimaryKey(['id']);
$gradebookScoreLog->addIndex(
['user_id'],
'idx_gradebook_score_log_user'
);
$gradebookScoreLog->addIndex(
['user_id', 'category_id'],
'idx_gradebook_score_log_user_category'
);
}
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$schema->dropTable('gradebook_score_log');
}
}

@ -1,70 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Add branch
*/
class Version20150603142550 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function preUp(Schema $schema)
{
$this->addSql("ALTER TABLE c_calendar_event ENGINE=InnoDB");
$this->addSql("ALTER TABLE c_thematic_advance ENGINE=InnoDB");
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('CREATE TABLE room (id INT AUTO_INCREMENT NOT NULL, branch_id INT DEFAULT NULL, title VARCHAR(255) DEFAULT NULL, description LONGTEXT, geolocation VARCHAR(255) DEFAULT NULL, ip VARCHAR(39) DEFAULT NULL, ip_mask VARCHAR(6) DEFAULT NULL, INDEX IDX_729F519BDCD6CC49 (branch_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
$this->addSql('CREATE TABLE branch_transaction_status (id INT AUTO_INCREMENT NOT NULL, title VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
$this->addSql('CREATE TABLE branch_transaction (id BIGINT AUTO_INCREMENT NOT NULL, status_id INT DEFAULT NULL, branch_id INT DEFAULT NULL, transaction_id BIGINT NOT NULL, action VARCHAR(20) DEFAULT NULL, item_id VARCHAR(255) DEFAULT NULL, origin VARCHAR(255) DEFAULT NULL, dest_id VARCHAR(255) DEFAULT NULL, external_info VARCHAR(255) DEFAULT NULL, time_insert DATETIME NOT NULL, time_update DATETIME NOT NULL, failed_attempts INT NOT NULL, INDEX IDX_FEFBA12B6BF700BD (status_id), INDEX IDX_FEFBA12BDCD6CC49 (branch_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
$this->addSql('CREATE TABLE branch_sync (id INT AUTO_INCREMENT NOT NULL, parent_id INT DEFAULT NULL, access_url_id INT NOT NULL, unique_id VARCHAR(50) NOT NULL, branch_name VARCHAR(250) NOT NULL, description LONGTEXT, branch_ip VARCHAR(40) DEFAULT NULL, latitude NUMERIC(10, 0) DEFAULT NULL, longitude NUMERIC(10, 0) DEFAULT NULL, dwn_speed INT DEFAULT NULL, up_speed INT DEFAULT NULL, delay INT DEFAULT NULL, admin_mail VARCHAR(250) DEFAULT NULL, admin_name VARCHAR(250) DEFAULT NULL, admin_phone VARCHAR(250) DEFAULT NULL, last_sync_trans_id BIGINT DEFAULT NULL, last_sync_trans_date DATETIME DEFAULT NULL, last_sync_type VARCHAR(20) DEFAULT NULL, ssl_pub_key VARCHAR(250) DEFAULT NULL, branch_type VARCHAR(250) DEFAULT NULL, lft INT DEFAULT NULL, rgt INT DEFAULT NULL, lvl INT DEFAULT NULL, root INT DEFAULT NULL, UNIQUE INDEX UNIQ_F62F45EDE3C68343 (unique_id), INDEX IDX_F62F45ED727ACA70 (parent_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
$this->addSql('ALTER TABLE room ADD CONSTRAINT FK_729F519BDCD6CC49 FOREIGN KEY (branch_id) REFERENCES branch_sync (id)');
$this->addSql('ALTER TABLE branch_transaction ADD CONSTRAINT FK_FEFBA12B6BF700BD FOREIGN KEY (status_id) REFERENCES branch_transaction_status (id)');
$this->addSql('ALTER TABLE branch_transaction ADD CONSTRAINT FK_FEFBA12BDCD6CC49 FOREIGN KEY (branch_id) REFERENCES branch_sync (id)');
$this->addSql('ALTER TABLE branch_sync ADD CONSTRAINT FK_F62F45ED727ACA70 FOREIGN KEY (parent_id) REFERENCES branch_sync (id) ON DELETE SET NULL');
$this->addSql('ALTER TABLE course ADD room_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE course ADD CONSTRAINT FK_169E6FB954177093 FOREIGN KEY (room_id) REFERENCES room (id)');
$this->addSql('CREATE INDEX IDX_169E6FB954177093 ON course (room_id)');
$this->addSql('ALTER TABLE c_calendar_event ADD room_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE c_calendar_event ADD CONSTRAINT FK_A062258154177093 FOREIGN KEY (room_id) REFERENCES room (id)');
$this->addSql('CREATE INDEX IDX_A062258154177093 ON c_calendar_event (room_id)');
$this->addSql('ALTER TABLE c_thematic_advance ADD room_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE c_thematic_advance ADD CONSTRAINT FK_62798E9754177093 FOREIGN KEY (room_id) REFERENCES room (id)');
$this->addSql('CREATE INDEX IDX_62798E9754177093 ON c_thematic_advance (room_id)');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE course DROP FOREIGN KEY FK_169E6FB954177093');
$this->addSql('ALTER TABLE c_calendar_event DROP FOREIGN KEY FK_A062258154177093');
$this->addSql('ALTER TABLE c_thematic_advance DROP FOREIGN KEY FK_62798E9754177093');
$this->addSql('ALTER TABLE branch_transaction DROP FOREIGN KEY FK_FEFBA12B6BF700BD');
$this->addSql('ALTER TABLE room DROP FOREIGN KEY FK_729F519BDCD6CC49');
$this->addSql('ALTER TABLE branch_transaction DROP FOREIGN KEY FK_FEFBA12BDCD6CC49');
$this->addSql('ALTER TABLE branch_sync DROP FOREIGN KEY FK_F62F45ED727ACA70');
$this->addSql('DROP TABLE room');
$this->addSql('DROP TABLE branch_transaction_status');
$this->addSql('DROP TABLE branch_transaction');
$this->addSql('DROP TABLE branch_sync');
$this->addSql('DROP INDEX IDX_A062258154177093 ON c_calendar_event');
$this->addSql('ALTER TABLE c_calendar_event DROP room_id');
$this->addSql('DROP INDEX IDX_62798E9754177093 ON c_thematic_advance');
$this->addSql('ALTER TABLE c_thematic_advance DROP room_id');
$this->addSql('DROP INDEX IDX_169E6FB954177093 ON course');
$this->addSql('ALTER TABLE course DROP room_id');
}
}

@ -1,32 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Session date changes
*/
class Version20150603151200 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('ALTER TABLE c_forum_forum ADD lp_id INTEGER UNSIGNED NOT NULL');
$this->addSql('ALTER TABLE c_forum_thread ADD lp_item_id INTEGER UNSIGNED NOT NULL');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE c_forum_forum DROP lp_id');
$this->addSql('ALTER TABLE c_forum_thread DROP lp_item_id');
}
}

@ -1,101 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Lp changes
*/
class Version20150603181728 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function preUp(Schema $schema)
{
$this->addSql("ALTER TABLE course ENGINE=InnoDB");
$this->addSql("ALTER TABLE c_group_info ENGINE=InnoDB");
$this->addSql("ALTER TABLE session ENGINE=InnoDB");
$this->addSql("ALTER TABLE user ENGINE=InnoDB");
$this->addSql("ALTER TABLE c_item_property ENGINE=InnoDB");
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$table = $schema->getTable('c_lp');
if (!$table->hasColumn('max_attempts')) {
$this->addSql('ALTER TABLE c_lp ADD max_attempts INT NOT NULL');
}
if (!$table->hasColumn('subscribe_users')) {
$this->addSql('ALTER TABLE c_lp ADD subscribe_users INT NOT NULL DEFAULT 0');
}
$this->addSql('
ALTER TABLE c_item_property
MODIFY c_id INT DEFAULT NULL,
MODIFY lastedit_user_id INT NOT NULL,
MODIFY to_group_id INT NULL,
MODIFY insert_user_id INT DEFAULT NULL,
MODIFY start_visible DATETIME DEFAULT NULL,
MODIFY end_visible DATETIME DEFAULT NULL,
MODIFY session_id INT DEFAULT NULL,
MODIFY to_user_id INT NULL
');
$this->addSql("UPDATE c_item_property SET session_id = NULL WHERE session_id NOT IN (SELECT id FROM session)");
$this->addSql("UPDATE c_item_property SET to_group_id = NULL WHERE to_group_id NOT IN (SELECT iid FROM c_group_info)");
$this->addSql("UPDATE c_item_property SET to_user_id = NULL WHERE to_user_id NOT IN (SELECT user_id FROM user)");
$this->addSql("UPDATE c_item_property SET start_visible = NULL WHERE start_visible = '0000-00-00 00:00:00'");
$this->addSql("UPDATE c_item_property SET end_visible = NULL WHERE end_visible = '0000-00-00 00:00:00'");
$this->addSql("UPDATE c_item_property SET to_user_id = NULL WHERE to_user_id NOT IN (SELECT id FROM user)");
$this->addSql("UPDATE c_item_property SET insert_user_id = NULL WHERE insert_user_id NOT IN (SELECT id FROM user)");
$this->addSql("UPDATE c_item_property SET session_id = NULL WHERE session_id NOT IN (SELECT id FROM session)");
// Remove inconsistencies about non-existing courses
$this->addSql("DELETE FROM c_item_property WHERE c_id NOT IN (SELECT user_id FROM user)");
// Remove inconsistencies about non-existing users
$this->addSql("DELETE FROM course_rel_user WHERE user_id NOT IN (SELECT user_id FROM user)");
$this->addSql("DELETE FROM c_item_property WHERE c_id NOT IN (SELECT id FROM course)");
$this->addSql("DELETE FROM c_item_property WHERE to_group_id NOT IN (SELECT id FROM c_group_info)");
$this->addSql('UPDATE c_item_property cip SET cip.to_group_id = (SELECT cgi.iid FROM c_group_info cgi WHERE cgi.c_id = cip.c_id AND cgi.id = cip.to_group_id)');
$this->addSql('ALTER TABLE c_item_property ADD CONSTRAINT FK_1D84C18191D79BD3 FOREIGN KEY (c_id) REFERENCES course(id)');
$this->addSql('ALTER TABLE c_item_property ADD CONSTRAINT FK_1D84C181330D47E9 FOREIGN KEY (to_group_id) REFERENCES c_group_info (iid)');
$this->addSql('ALTER TABLE c_item_property ADD CONSTRAINT FK_1D84C18129F6EE60 FOREIGN KEY (to_user_id) REFERENCES user (id)');
$this->addSql('ALTER TABLE c_item_property ADD CONSTRAINT FK_1D84C1819C859CC3 FOREIGN KEY (insert_user_id) REFERENCES user (id)');
$this->addSql('ALTER TABLE c_item_property ADD CONSTRAINT FK_1D84C181613FECDF FOREIGN KEY (session_id) REFERENCES session (id)');
$this->addSql('CREATE INDEX IDX_1D84C18191D79BD3 ON c_item_property (c_id)');
$this->addSql('CREATE INDEX IDX_1D84C181330D47E9 ON c_item_property (to_group_id)');
$this->addSql('CREATE INDEX IDX_1D84C18129F6EE60 ON c_item_property (to_user_id)');
$this->addSql('CREATE INDEX IDX_1D84C1819C859CC3 ON c_item_property (insert_user_id)');
$this->addSql('CREATE INDEX IDX_1D84C181613FECDF ON c_item_property (session_id)');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE c_lp DROP max_attempts, DROP subscribe_users');
$this->addSql('ALTER TABLE c_item_property DROP FOREIGN KEY FK_1D84C18191D79BD3');
$this->addSql('ALTER TABLE c_item_property DROP FOREIGN KEY FK_1D84C181330D47E9');
$this->addSql('ALTER TABLE c_item_property DROP FOREIGN KEY FK_1D84C18129F6EE60');
$this->addSql('ALTER TABLE c_item_property DROP FOREIGN KEY FK_1D84C1819C859CC3');
$this->addSql('ALTER TABLE c_item_property DROP FOREIGN KEY FK_1D84C181613FECDF');
$this->addSql('DROP INDEX IDX_1D84C18191D79BD3 ON c_item_property');
$this->addSql('DROP INDEX IDX_1D84C181330D47E9 ON c_item_property');
$this->addSql('DROP INDEX IDX_1D84C18129F6EE60 ON c_item_property');
$this->addSql('DROP INDEX IDX_1D84C1819C859CC3 ON c_item_property');
$this->addSql('DROP INDEX IDX_1D84C181613FECDF ON c_item_property');
$this->addSql('ALTER TABLE c_item_property CHANGE c_id c_id INT NOT NULL, CHANGE insert_user_id insert_user_id INT NOT NULL, CHANGE session_id session_id INT NOT NULL, CHANGE start_visible start_visible DATETIME NOT NULL, CHANGE end_visible end_visible DATETIME NOT NULL');
}
}

@ -1,29 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* track_e_default changes
*/
class Version20150604145047 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('ALTER TABLE track_e_default CHANGE default_event_type default_event_type VARCHAR(255) NOT NULL, CHANGE default_value_type default_value_type VARCHAR(255) NOT NULL');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE track_e_default CHANGE default_event_type default_event_type VARCHAR(20) NOT NULL COLLATE utf8_unicode_ci, CHANGE default_value_type default_value_type VARCHAR(20) NOT NULL COLLATE utf8_unicode_ci');
}
}

@ -1,70 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Type as TableColumnType;
/**
* Session date changes
*/
class Version20150608104600 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
if (!$schema->hasTable('extra_field_rel_tag')) {
$extraFieldRelTag = $schema->createTable('extra_field_rel_tag');
$extraFieldRelTag->addColumn(
'id',
TableColumnType::INTEGER,
['unsigned' => true, 'autoincrement' => true, 'notnull' => true]
);
$extraFieldRelTag->addColumn(
'field_id',
TableColumnType::INTEGER,
['unsigned' => true, 'notnull' => true]
);
$extraFieldRelTag->addColumn(
'item_id',
TableColumnType::INTEGER,
['unsigned' => true, 'notnull' => true]
);
$extraFieldRelTag->addColumn(
'tag_id',
TableColumnType::INTEGER,
['unsigned' => true, 'notnull' => true]
);
$extraFieldRelTag->setPrimaryKey(['id']);
$extraFieldRelTag->addIndex(
['field_id'],
'idx_frt_field'
);
$extraFieldRelTag->addIndex(
['item_id'],
'idx_frt_item'
);
$extraFieldRelTag->addIndex(
['tag_id'],
'idx_frt_tag'
);
$extraFieldRelTag->addIndex(
['field_id', 'item_id', 'tag_id'],
'idx_frt_field_item_tag'
);
}
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$schema->dropTable('extra_field_rel_tag');
}
}

@ -1,35 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Session date changes
*/
class Version20150609113500 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql("INSERT INTO extra_field
(extra_field_type, field_type, variable, display_text, visible, changeable, created_at)
VALUES (2, 10, 'tags', 'Tags', 1, 1, NOW())");
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql("DELETE FROM extra_field
WHERE variable = 'tags' AND
extra_field_type = 2 AND
field_type = 10");
}
}

@ -1,29 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Tool changes
*/
class Version20150610143426 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('ALTER TABLE c_tool ADD description LONGTEXT, ADD custom_icon VARCHAR(255) DEFAULT NULL');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE c_tool DROP description, DROP custom_icon');
}
}

@ -1,34 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Version20150615171900 class
* Change in CCourseDescription entity
*
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com>
*/
class Version20150615171900 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('ALTER TABLE c_course_description CHANGE description_type description_type INTEGER NOT NULL DEFAULT 1');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE c_course_description CHANGE description_type description_type BOOLEAN NOT NULL');
}
}

@ -1,35 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Session date changes
*/
class Version20150616093200 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql("INSERT INTO extra_field (
extra_field_type, field_type, variable, display_text, visible, changeable, created_at)
VALUES (2, 19, 'video_url', 'VideoUrl', 1, 1, NOW())");
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql("DELETE FROM extra_field
WHERE variable = 'video_url' AND
extra_field_type = 2 AND
field_type = 19");
}
}

@ -1,35 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Session date changes
*/
class Version20150624164100 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql("INSERT INTO extra_field
(extra_field_type, field_type, variable, display_text, visible, changeable, created_at)
VALUES (3, 16, 'image', 'Image', 1, 1, NOW())");
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql("DELETE FROM extra_field
WHERE variable = 'image' AND
extra_field_type = 3 AND
field_type = 16");
}
}

@ -1,35 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Session date changes
*/
class Version20150625155000 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql("INSERT INTO extra_field
(extra_field_type, field_type, variable, display_text, visible, changeable, created_at)
VALUES (1, 1, 'captcha_blocked_until_date', 'Account locked until', 0, 0, NOW())");
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql("DELETE FROM extra_field
WHERE variable = 'captcha_blocked_until_date' AND
extra_field_type = 1 AND
field_type = 1");
}
}

@ -1,36 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* GradebookCategory changes
*/
class Version20150706135000 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$gradebookCategory = $schema->getTable('gradebook_category');
$isRequirement = $gradebookCategory->addColumn(
'is_requirement',
\Doctrine\DBAL\Types\Type::BOOLEAN
);
$isRequirement->setNotnull(true)->setDefault(false);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$gradebookCategory = $schema->getTable('gradebook_category');
$gradebookCategory->dropColumn('is_requirement');
}
}

@ -1,29 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Agenda
*/
class Version20150709083710 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('ALTER TABLE c_calendar_event ADD color VARCHAR(100) DEFAULT NULL');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE c_calendar_event DROP color');
}
}

@ -1,35 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150713132630
*
* @package Application\Migrations\Schema\V11010
*/
class Version20150713132630 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
if ($schema->hasTable('c_student_publication')) {
$this->addSql('ALTER TABLE c_student_publication ADD url_correction VARCHAR(255) DEFAULT NULL');
$this->addSql('ALTER TABLE c_student_publication ADD title_correction VARCHAR(255) DEFAULT NULL');
}
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE c_student_publication DROP url_correction');
$this->addSql('ALTER TABLE c_student_publication DROP title_correction');
}
}

@ -1,111 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150803163400
*
* @package Application\Migrations\Schema\V110
*/
class Version20150803163400 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSettingCurrent(
'cron_remind_course_expiration_activate',
null,
'radio',
'Crons',
'false',
'CronRemindCourseExpirationActivateTitle',
'CronRemindCourseExpirationActivateComment',
null,
null,
1,
true,
false,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No']
]
);
$this->addSettingCurrent(
'cron_remind_course_expiration_frequency',
null,
'textfield',
'Crons',
'2',
'CronRemindCourseExpirationFrecuenqyTitle',
'CronRemindCourseExpirationFrecuenqyComment',
null,
null,
1,
true,
false
);
$this->addSettingCurrent(
'cron_course_finished_activate',
null,
'radio',
'Crons',
'false',
'CronCourseFinishedActivateTitle',
'CronCourseFinishedActivateComment',
null,
null,
1,
true,
false,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No']
]
);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$entityManage = $this->getEntityManager();
$deleteOptions = $entityManage->createQueryBuilder();
$deleteOptions->delete('ChamiloCoreBundle:SettingsOptions', 'o')
->andWhere(
$deleteOptions->expr()->in(
'o.variable',
[
'cron_remind_course_expiration_activate',
'cron_course_finished_activate'
]
)
);
$deleteOptions->getQuery()->execute();
$deleteSettings = $entityManage->createQueryBuilder();
$deleteSettings->delete('ChamiloCoreBundle:SettingsCurrent', 's')
->andWhere(
$deleteSettings->expr()->in(
's.variable',
[
'cron_remind_course_expiration_activate',
'cron_remind_course_expiration_frequency',
'cron_course_finished_activate'
]
)
);
$deleteSettings->getQuery()->execute();
}
}

@ -1,37 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150803171220
*
* @package Application\Migrations\Schema\V110
*/
class Version20150803171220 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('UPDATE user SET username_canonical = username');
$this->addSql('ALTER TABLE user ADD confirmation_token VARCHAR(255) NULL');
$this->addSql('ALTER TABLE user ADD password_requested_at DATETIME DEFAULT NULL');
$this->addSql('RENAME TABLE track_e_exercices TO track_e_exercises');
// This drops the old table
// $schema->renameTable('track_e_exercices', 'track_e_exercises');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE user DROP confirmation_token');
$this->addSql('ALTER TABLE user DROP password_requested_at');
}
}

@ -1,40 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150713132630
*
* @package Application\Migrations\Schema\V11010
*/
class Version20150805161000 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$sessionTable = $schema->getTable('session');
$sessionTable->addColumn(
'send_subscription_notification',
\Doctrine\DBAL\Types\Type::BOOLEAN,
['default' => false]
);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$sessionTable = $schema->getTable('session');
$sessionTable->dropColumn('send_subscription_notification');
}
}

@ -1,29 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Calendar color
*/
class Version20150810132615 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('ALTER TABLE personal_agenda ADD color VARCHAR(255) DEFAULT NULL');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE personal_agenda DROP color');
}
}

@ -1,75 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150812230500
*
* @package Application\Migrations\Schema\V11010
*/
class Version20150812230500 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSettingCurrent(
'allow_coach_feedback_exercises',
null,
'radio',
'Session',
'false',
'AllowCoachFeedbackExercisesTitle',
'AllowCoachFeedbackExercisesComment',
null,
null,
1,
true,
false,
[
['value' => 'true', 'text' => 'Yes'],
['value' => 'false', 'text' => 'No']
]
);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$entityManage = $this->getEntityManager();
$deleteOptions = $entityManage->createQueryBuilder();
$deleteOptions->delete('ChamiloCoreBundle:SettingsOptions', 'o')
->andWhere(
$deleteOptions->expr()->in(
'o.variable',
[
'allow_coach_feedback_exercises'
]
)
);
$deleteOptions->getQuery()->execute();
$deleteSettings = $entityManage->createQueryBuilder();
$deleteSettings->delete('ChamiloCoreBundle:SettingsCurrent', 's')
->andWhere(
$deleteSettings->expr()->in(
's.variable',
[
'allow_coach_feedback_exercises'
]
)
);
$deleteSettings->getQuery()->execute();
}
}

@ -1,166 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Calendar color
*/
class Version20150813143000 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSettingCurrent(
'prevent_multiple_simultaneous_login',
null,
'radio',
'Security',
'false',
'PreventMultipleSimultaneousLoginTitle',
'PreventMultipleSimultaneousLoginComment',
null,
null,
1,
false,
true,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No']
]
);
$this->addSettingCurrent(
'gradebook_detailed_admin_view',
null,
'radio',
'Gradebook',
'false',
'ShowAdditionalColumnsInStudentResultsPageTitle',
'ShowAdditionalColumnsInStudentResultsPageComment',
null,
null,
1,
true,
false,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No']
]
);
$this->addSettingCurrent(
'course_catalog_published',
null,
'radio',
'Course',
'false',
'CourseCatalogIsPublicTitle',
'CourseCatalogIsPublicComment',
null,
null,
1,
false,
true,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No']
]
);
$this->addSettingCurrent(
'user_reset_password',
null,
'radio',
'Security',
'false',
'ResetPasswordTokenTitle',
'ResetPasswordTokenComment',
null,
null,
1,
false,
true,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No']
]
);
$this->addSettingCurrent(
'user_reset_password_token_limit',
null,
'textfield',
'Security',
'3600',
'ResetPasswordTokenLimitTitle',
'ResetPasswordTokenLimitComment',
null,
null,
1,
false,
true
);
$this->addSettingCurrent(
'my_courses_view_by_session',
null,
'radio',
'Session',
'false',
'ViewMyCoursesListBySessionTitle',
'ViewMyCoursesListBySessionComment',
null,
null,
1,
true,
false,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No']
]
);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$entityManage = $this->getEntityManager();
$deleteOptions = $entityManage->createQueryBuilder();
$deleteSettings = $entityManage->createQueryBuilder();
$deleteOptions->delete('ChamiloCoreBundle:SettingsOptions', 'o')
->andWhere(
$deleteOptions->expr()->in(
'o.variable',
[
'prevent_multiple_simultaneous_login',
'gradebook_detailed_admin_view',
'course_catalog_published',
'user_reset_password',
'user_reset_password_token_limit',
'my_courses_view_by_session'
]
)
);
$deleteOptions->getQuery()->execute();
$deleteSettings->delete('ChamiloCoreBundle:SettingsCurrent', 's')
->andWhere(
$deleteSettings->expr()->in(
's.variable',
[
'prevent_multiple_simultaneous_login',
'gradebook_detailed_admin_view',
'course_catalog_published',
'user_reset_password',
'my_courses_view_by_session'
]
)
);
$deleteSettings->getQuery()->execute();
}
}

@ -1,71 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Calendar color
*/
class Version20150813200000 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$entityManage = $this->getEntityManager();
$deleteOptions = $entityManage->createQueryBuilder();
$deleteSettings = $entityManage->createQueryBuilder();
$deleteOptions->delete('ChamiloCoreBundle:SettingsOptions', 'o')
->andWhere(
$deleteOptions->expr()->in(
'o.variable',
[
'math_mimetex'
]
)
);
$deleteOptions->getQuery()->execute();
$deleteSettings->delete('ChamiloCoreBundle:SettingsCurrent', 's')
->andWhere(
$deleteSettings->expr()->in(
's.variable',
[
'math_mimetex'
]
)
);
$deleteSettings->getQuery()->execute();
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSettingCurrent(
'math_mimetex',
null,
'radio',
'Editor',
'false',
'MathMimetexTitle',
'MathMimetexComment',
null,
null,
1,
false,
true,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No']
]
);
}
}

@ -1,45 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150819095300
*
* @package Application\Migrations\Schema\V11010
*/
class Version20150819095300 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$skillTable = $schema->getTable('skill');
$skillTable->addColumn(
'status',
\Doctrine\DBAL\Types\Type::INTEGER,
['default' => 1]
);
$skillTable->addColumn(
'updated_at',
\Doctrine\DBAL\Types\Type::DATETIME
);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$skillTable = $schema->getTable('skill');
$skillTable->dropColumn('status');
$skillTable->dropColumn('updated_at');
}
}

@ -1,178 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150821150000
*
* @package Application\Migrations\Schema\V11010
*/
class Version20150821150000 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$entityManage = $this->getEntityManager();
$deleteOptions = $entityManage->createQueryBuilder();
$deleteSettings = $entityManage->createQueryBuilder();
$deleteOptions->delete('ChamiloCoreBundle:SettingsOptions', 'o')
->andWhere(
$deleteOptions->expr()->in(
'o.variable',
[
'display_mini_month_calendar'
]
)
);
$deleteOptions->getQuery()->execute();
$deleteSettings->delete('ChamiloCoreBundle:SettingsCurrent', 's')
->andWhere(
$deleteSettings->expr()->in(
's.variable',
[
'display_mini_month_calendar'
]
)
);
$deleteSettings->getQuery()->execute();
$deleteOptions->delete('ChamiloCoreBundle:SettingsOptions', 'o')
->andWhere(
$deleteOptions->expr()->in(
'o.variable',
[
'display_upcoming_events'
]
)
);
$deleteOptions->getQuery()->execute();
$deleteSettings->delete('ChamiloCoreBundle:SettingsCurrent', 's')
->andWhere(
$deleteSettings->expr()->in(
's.variable',
[
'display_upcoming_events'
]
)
);
$deleteSettings->getQuery()->execute();
$deleteSettings->delete('ChamiloCoreBundle:SettingsCurrent', 's')
->andWhere(
$deleteSettings->expr()->in(
's.variable',
[
'number_of_upcoming_events'
]
)
);
$deleteSettings->getQuery()->execute();
$deleteOptions->delete('ChamiloCoreBundle:SettingsOptions', 'o')
->andWhere(
$deleteOptions->expr()->in(
'o.variable',
[
'allow_reservation'
]
)
);
$deleteOptions->getQuery()->execute();
$deleteSettings->delete('ChamiloCoreBundle:SettingsCurrent', 's')
->andWhere(
$deleteSettings->expr()->in(
's.variable',
[
'allow_reservation'
]
)
);
$deleteSettings->getQuery()->execute();
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSettingCurrent(
'display_mini_month_calendar',
null,
'radio',
'Tools',
'true',
'DisplayMiniMonthCalendarTitle',
'DisplayMiniMonthCalendarComment',
null,
null,
1,
false,
false,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No']
]
);
$this->addSettingCurrent(
'display_upcoming_events',
null,
'radio',
'Tools',
'true',
'DisplayUpcomingEventsTitle',
'DisplayUpcomingEventsComment',
null,
null,
1,
false,
false,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No']
]
);
$this->addSettingCurrent(
'number_of_upcoming_events',
null,
'textfield',
'Tools',
'1',
'NumberOfUpcomingEventsTitle',
'NumberOfUpcomingEventsComment',
null,
null,
1,
false,
false
);
$this->addSettingCurrent(
'allow_reservation',
null,
'radio',
'Tools',
'false',
'AllowReservationTitle',
'AllowReservationComment',
null,
null,
1,
true,
false,
[
0 => ['value' => 'true', 'text' => 'Yes'],
1 => ['value' => 'false', 'text' => 'No']
]
);
}
}

@ -1,67 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Calendar color
*/
class Version20150825141100 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSettingCurrent(
'show_full_skill_name_on_skill_wheel',
null,
'radio',
'Platform',
'false',
'ShowFullSkillNameOnSkillWheelTitle',
'ShowFullSkillNameOnSkillWheelComment',
null,
null,
1,
false,
true,
[
['value' => 'true', 'text' => 'Yes'],
['value' => 'false', 'text' => 'No']
]
);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$entityManage = $this->getEntityManager();
$deleteOptions = $entityManage->createQueryBuilder();
$deleteSettings = $entityManage->createQueryBuilder();
$deleteOptions->delete('ChamiloCoreBundle:SettingsOptions', 'o')
->andWhere(
$deleteOptions->expr()->in(
'o.variable',
['show_full_skill_name_on_skill_wheel']
)
);
$deleteOptions->getQuery()->execute();
$deleteSettings->delete('ChamiloCoreBundle:SettingsCurrent', 's')
->andWhere(
$deleteSettings->expr()->in(
's.variable',
['show_full_skill_name_on_skill_wheel']
)
);
$deleteSettings->getQuery()->execute();
}
}

@ -1,41 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Calendar color
*/
class Version20151101082200 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql("ALTER TABLE access_url ENGINE=InnoDB");
$this->addSql("ALTER TABLE access_url_rel_course ENGINE=InnoDB");
$this->addSql("ALTER TABLE course_rel_user ENGINE=InnoDB");
$this->addSql("ALTER TABLE session_category ENGINE=InnoDB");
$this->addSql("ALTER TABLE settings_current ENGINE=InnoDB");
$this->addSql("ALTER TABLE settings_options ENGINE=InnoDB");
$this->addSql("ALTER TABLE usergroup ENGINE=InnoDB");
$this->addSql("ALTER TABLE usergroup_rel_user ENGINE=InnoDB");
$this->addSql("ALTER TABLE session_rel_course DROP PRIMARY KEY");
$this->addSql("ALTER TABLE session_rel_course_rel_user DROP PRIMARY KEY");
$this->addSql("ALTER TABLE session MODIFY session_category_id INT NULL");
$this->addSql("UPDATE session SET session_category_id = NULL WHERE session_category_id NOT IN (SELECT id FROM session_category)");
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
}
}

@ -1,312 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Type;
/**
* Calendar color
*/
class Version20151101082300 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$accessUrl = $schema->getTable('access_url');
$accessUrl->getColumn('id')->setUnsigned(false);
$this->connection->executeQuery('UPDATE access_url_rel_course SET access_url_id = NULL WHERE access_url_id NOT IN (SELECT id FROM access_url)');
$accessUrlRelCourse = $schema->getTable('access_url_rel_course');
$accessUrlRelCourse->getColumn('access_url_id')->setUnsigned(false);
$accessUrlRelCourse->addForeignKeyConstraint('access_url', ['access_url_id'], ['id']);
$accessUrlRelCourse->addForeignKeyConstraint('course', ['c_id'], ['id']);
$schema->renameTable('class', 'class_item');
$classUser = $schema->getTable('class_user');
$classUser->getColumn('class_id')->setUnsigned(false);
$classUser->getColumn('user_id')->setUnsigned(false);
$course = $schema->getTable('course');
$course->getColumn('course_type_id')->setUnsigned(false);
$course->addForeignKeyConstraint('room', ['room_id'], ['id']);
$courseRelClass = $schema->getTable('course_rel_class');
$courseRelClass->getColumn('class_id')->setUnsigned(false)->setType(Type::getType(Type::INTEGER));
$courseRelUser = $schema->getTable('course_rel_user');
$courseRelUser->addForeignKeyConstraint('course', ['c_id'], ['id']);
$courseRelUser->addForeignKeyConstraint('user', ['user_id'], ['id']);
$courseType = $schema->getTable('course_type');
$courseType->getColumn('id')->setUnsigned(false);
$schema->getTable('c_announcement')->addIndex(['c_id']);
$schema->getTable('c_announcement_attachment')->addIndex(['c_id']);
$schema->getTable('c_attendance')->addIndex(['c_id']);
$schema->getTable('c_attendance_calendar')->addIndex(['c_id']);
$cAttendanceCalendarRelGroup = $schema->getTable('c_attendance_calendar_rel_group');
$cAttendanceCalendarRelGroup->addIndex(['c_id']);
$cAttendanceCalendarRelGroup->addIndex(['group_id']);
$schema->getTable('c_attendance_result')->addIndex(['c_id']);
$cAttendanceSheet = $schema->getTable('c_attendance_sheet');
$cAttendanceSheet->addIndex(['c_id']);
$cAttendanceSheet->addIndex(['user_id']);
$schema->getTable('c_attendance_sheet_log')->addIndex(['c_id']);
$schema->getTable('c_blog')->addIndex(['c_id']);
$schema->getTable('c_blog_attachment')->addIndex(['c_id']);
$schema->getTable('c_blog_comment')->addIndex(['c_id']);
$schema->getTable('c_blog_post')->addIndex(['c_id']);
$schema->getTable('c_blog_rating')->addIndex(['c_id']);
$cBlogRelUser = $schema->getTable('c_blog_rel_user');
$cBlogRelUser->getColumn('blog_id')->setUnsigned(false);
$cBlogRelUser->getColumn('user_id')->setUnsigned(false);
$cBlogRelUser->addIndex(['c_id']);
$schema->getTable('c_blog_task')->addIndex(['c_id']);
$cBlogTaskRelUser = $schema->getTable('c_blog_task_rel_user');
$cBlogTaskRelUser->getColumn('blog_id')->setUnsigned(false);
$cBlogTaskRelUser->getColumn('user_id')->setUnsigned(false);
$cBlogTaskRelUser->getColumn('task_id')->setUnsigned(false);
$cBlogTaskRelUser->addIndex(['c_id']);
$cBlogTaskRelUser->addIndex(['user_id']);
$cBlogTaskRelUser->addIndex(['task_id']);
$cCalendarEvent = $schema->getTable('c_calendar_event');
$cCalendarEvent->addIndex(['c_id']);
$schema->getTable('c_calendar_event_attachment')->addIndex(['c_id']);
$schema->getTable('c_calendar_event_repeat')->addIndex(['c_id']);
$schema->getTable('c_calendar_event_repeat_not')->addIndex(['c_id']);
$cChatConnected = $schema->getTable('c_chat_connected');
$cChatConnected->addIndex(['c_id']);
$cChatConnected->addIndex(['user_id']);
$schema->getTable('c_course_setting')->addIndex(['c_id']);
$schema->getTable('c_document')->addIndex(['c_id']);
$schema->getTable('c_dropbox_category')->addIndex(['c_id']);
$schema->getTable('c_dropbox_feedback')->addIndex(['c_id']);
$schema->getTable('c_dropbox_file')->addIndex(['c_id']);
$cDropboxPerson = $schema->getTable('c_dropbox_person');
$cDropboxPerson->addIndex(['c_id']);
$cDropboxPerson->addIndex(['user_id']);
$cDropboxPost = $schema->getTable('c_dropbox_post');
$cDropboxPost->addIndex(['c_id']);
$cDropboxPost->addIndex(['dest_user_id']);
$schema->getTable('c_forum_attachment')->addIndex(['c_id']);
$schema->getTable('c_forum_category')->addIndex(['c_id']);
$schema->getTable('c_forum_forum')->addIndex(['c_id']);
$cForumMailcue = $schema->getTable('c_forum_mailcue');
$cForumMailcue->addIndex(['c_id']);
$cForumMailcue->addIndex(['thread_id']);
$cForumMailcue->addIndex(['user_id']);
$cForumMailcue->addIndex(['post_id']);
$cForumNotification = $schema->getTable('c_forum_notification');
$cForumNotification->addIndex(['c_id']);
$cForumNotification->addIndex(['thread_id']);
$cForumNotification->addIndex(['post_id']);
$schema->getTable('c_forum_post')->addIndex(['c_id']);
$schema->getTable('c_forum_thread')->addIndex(['c_id']);
$schema->getTable('c_forum_thread_qualify')->addIndex(['c_id']);
$schema->getTable('c_forum_thread_qualify_log')->addIndex(['c_id']);
$schema->getTable('c_glossary')->addIndex(['c_id']);
$schema->getTable('c_group_category')->addIndex(['c_id']);
$schema->getTable('c_group_info')->addIndex(['c_id']);
$schema->getTable('c_group_rel_tutor')->addIndex(['c_id']);
$schema->getTable('c_group_rel_user')->addIndex(['c_id']);
$schema->getTable('c_link')->addIndex(['c_id']);
$schema->getTable('c_link_category')->addIndex(['c_id']);
$schema->getTable('c_lp')->addIndex(['c_id']);
$schema->getTable('c_lp_category')->addIndex(['c_id']);
$schema->getTable('c_lp_item')->addIndex(['c_id']);
$schema->getTable('c_lp_item_view')->addIndex(['c_id']);
$schema->getTable('c_lp_iv_interaction')->addIndex(['c_id']);
$schema->getTable('c_lp_iv_objective')->addIndex(['c_id']);
$schema->getTable('c_lp_view')->addIndex(['c_id']);
$schema->getTable('c_notebook')->addIndex(['c_id']);
$schema->getTable('c_online_connected')->addIndex(['c_id']);
$schema->getTable('c_online_link')->addIndex(['c_id']);
$schema->getTable('c_permission_group')->addIndex(['c_id']);
$schema->getTable('c_permission_task')->addIndex(['c_id']);
$schema->getTable('c_permission_user')->addIndex(['c_id']);
$schema->getTable('c_quiz')->addIndex(['c_id']);
$schema->getTable('c_quiz_answer')->addIndex(['c_id']);
$schema->getTable('c_quiz_question')->addIndex(['c_id']);
$schema->getTable('c_quiz_question_category')->addIndex(['c_id']);
$schema->getTable('c_quiz_question_option')->addIndex(['c_id']);
$schema->getTable('c_quiz_question_rel_category')->addIndex(['c_id']);
$cQuizRelQuestion = $schema->getTable('c_quiz_rel_question');
$cQuizRelQuestion->addIndex(['c_id']);
$cQuizRelQuestion->addIndex(['question_id']);
$cQuizRelQuestion->addIndex(['exercice_id']);
$schema->getTable('c_resource')->addIndex(['c_id']);
$schema->getTable('c_role')->addIndex(['c_id']);
$cRoleGroup = $schema->getTable('c_role_group');
$cRoleGroup->addIndex(['c_id']);
$cRoleGroup->addIndex(['group_id']);
$cRolePermissions = $schema->getTable('c_role_permissions');
$cRolePermissions->addIndex(['c_id']);
$cRolePermissions->addIndex(['role_id']);
$cRoleUser = $schema->getTable('c_role_user');
$cRoleUser->addIndex(['c_id']);
$cRoleUser->addIndex(['user_id']);
$schema->getTable('c_student_publication')->addIndex(['c_id']);
$schema->getTable('c_student_publication_assignment')->addIndex(['c_id']);
$cStudentPublicationComment = $schema->getTable('c_student_publication_comment');
$cStudentPublicationComment->addIndex(['c_id']);
$cStudentPublicationComment->addIndex(['user_id']);
$cStudentPublicationComment->addIndex(['work_id']);
$cStudentPublicationComment = $schema->getTable('c_student_publication_rel_document');
$cStudentPublicationComment->addIndex(['c_id']);
$cStudentPublicationComment->addIndex(['work_id']);
$cStudentPublicationComment->addIndex(['document_id']);
$cStudentPublicationComment = $schema->getTable('c_student_publication_rel_user');
$cStudentPublicationComment->addIndex(['c_id']);
$cStudentPublicationComment->addIndex(['work_id']);
$cStudentPublicationComment->addIndex(['user_id']);
$schema->getTable('c_survey')->addIndex(['c_id']);
$schema->getTable('c_survey_answer')->addIndex(['c_id']);
$schema->getTable('c_survey_group')->addIndex(['c_id']);
$schema->getTable('c_survey_invitation')->addIndex(['c_id']);
$schema->getTable('c_survey_question')->addIndex(['c_id']);
$schema->getTable('c_survey_question_option')->addIndex(['c_id']);
$schema->getTable('c_thematic')->addIndex(['c_id']);
$schema->getTable('c_thematic_advance')->addIndex(['c_id']);
$schema->getTable('c_thematic_plan')->addIndex(['c_id']);
$schema->getTable('c_tool')->addIndex(['c_id']);
$schema->getTable('c_tool_intro')->addIndex(['c_id']);
$schema->getTable('c_userinfo_content')->addIndex(['c_id']);
$schema->getTable('c_userinfo_def')->addIndex(['c_id']);
$schema->getTable('c_wiki')->addIndex(['c_id']);
$schema->getTable('c_wiki_conf')->addIndex(['c_id']);
$schema->getTable('c_wiki_discuss')->addIndex(['c_id']);
$cWikiMailcue = $schema->getTable('c_wiki_mailcue');
$cWikiMailcue->addIndex(['c_id']);
$cWikiMailcue->addIndex(['user_id']);
$schema->getTable('extra_field_values')->addForeignKeyConstraint('extra_field', ['field_id'], ['id']);
$session = $schema->getTable('session');
$session->getColumn('id_coach')->setUnsigned(false);
$session->addIndex(['session_category_id']);
$session->addIndex(['id_coach']);
$session->addForeignKeyConstraint('session_category', ['session_category_id'], ['id']);
$session->addForeignKeyConstraint('user', ['id_coach'], ['id']);
$this->connection->executeQuery('UPDATE session_category SET access_url_id = 1 WHERE access_url_id NOT IN (SELECT id FROM access_url)');
$sessionCategory = $schema->getTable('session_category');
$sessionCategory->addIndex(['access_url_id']);
$sessionCategory->addForeignKeyConstraint('access_url', ['access_url_id'], ['id']);
$sessionRelCourse = $schema->getTable('session_rel_course');
$sessionRelCourse->dropColumn('course_code');
$sessionRelCourse->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sessionRelCourse->getColumn('c_id')->setUnsigned(false);
$sessionRelCourse->setPrimaryKey(['id']);
$sessionRelCourse->addIndex(['c_id']);
$sessionRelCourse->addIndex(['session_id']);
$sessionRelCourse->addForeignKeyConstraint('course', ['c_id'], ['id']);
$sessionRelCourse->addForeignKeyConstraint('session', ['session_id'], ['id']);
$this->connection->executeQuery('DELETE FROM session_rel_course_rel_user WHERE c_id NOT IN (SELECT id FROM course)');
$this->connection->executeQuery('DELETE FROM session_rel_course_rel_user WHERE session_id NOT IN (SELECT id FROM session)');
$this->connection->executeQuery('DELETE FROM session_rel_course_rel_user WHERE user_id NOT IN (SELECT id FROM user)');
$sessionRelCourseRelUser = $schema->getTable('session_rel_course_rel_user');
$sessionRelCourseRelUser->dropColumn('course_code');
$sessionRelCourseRelUser->addColumn('id', Type::INTEGER)->setAutoincrement(true);
$sessionRelCourseRelUser->getColumn('c_id')->setUnsigned(false);
$sessionRelCourseRelUser->setPrimaryKey(['id']);
$sessionRelCourseRelUser->addIndex(['c_id']);
$sessionRelCourseRelUser->addIndex(['session_id']);
$sessionRelCourseRelUser->addForeignKeyConstraint('course', ['c_id'], ['id']);
$sessionRelCourseRelUser->addForeignKeyConstraint('session', ['session_id'], ['id']);
$sessionRelCourseRelUser->addForeignKeyConstraint('user', ['user_id'], ['id']);
$this->connection->executeQuery('DELETE FROM session_rel_user WHERE user_id NOT IN (SELECT id FROM user)');
$this->connection->executeQuery('DELETE FROM session_rel_user WHERE session_id NOT IN (SELECT id FROM session)');
$sessionRelUser = $schema->getTable('session_rel_user');
$sessionRelUser->addColumn('moved_to', Type::INTEGER)->setNotnull(false);
$sessionRelUser->addColumn('moved_status', Type::INTEGER)->setNotnull(false);
$sessionRelUser->addColumn('moved_at', Type::DATETIME)->setNotnull(false);
$sessionRelUser->addIndex(['session_id']);
$sessionRelUser->addIndex(['user_id']);
$sessionRelUser->addIndex(['user_id', 'moved_to']);
$sessionRelUser->addForeignKeyConstraint('user', ['user_id'], ['id']);
$sessionRelUser->addForeignKeyConstraint('session', ['session_id'], ['id']);
$settingsCurrent = $schema->getTable('settings_current');
$settingsCurrent->addUniqueIndex(['variable', 'subkey', 'access_url']);
$settingsCurrent = $schema->getTable('settings_options');
$settingsCurrent->dropIndex('id');
$settingsCurrent->addUniqueIndex(['variable', 'value']);
$schema->getTable('track_e_access')->addIndex(['c_id']);
$schema->getTable('track_e_attempt')->addIndex(['c_id']);
$schema->getTable('track_e_course_access')->addIndex(['c_id']);
$trackEDefault = $schema->getTable('track_e_default');
$trackEDefault->addIndex(['c_id']);
$trackEDefault->addIndex(['session_id']);
$schema->getTable('track_e_downloads')->addIndex(['c_id']);
$schema->getTable('track_e_exercises')->addIndex(['c_id']);
$schema->getTable('track_e_hotpotatoes')->addIndex(['c_id']);
$schema->getTable('track_e_lastaccess')->addIndex(['c_id']);
$schema->getTable('track_e_links')->addIndex(['c_id']);
$schema->getTable('track_e_online')->addIndex(['c_id']);
$schema->getTable('track_e_uploads')->addIndex(['c_id']);
$schema->getTable('user')->addUniqueIndex(['username_canonical']);
$this->connection->executeQuery('DELETE FROM usergroup_rel_user WHERE user_id NOT IN (SELECT id FROM user)');
$this->connection->executeQuery('DELETE FROM usergroup_rel_user WHERE usergroup_id NOT IN (SELECT id FROM usergroup)');
$usergroupRelUSer = $schema->getTable('usergroup_rel_user');
$usergroupRelUSer->addIndex(['user_id']);
$usergroupRelUSer->addIndex(['usergroup_id']);
$usergroupRelUSer->addForeignKeyConstraint('usergroup', ['usergroup_id'], ['id']);
$usergroupRelUSer->addForeignKeyConstraint('user', ['user_id'], ['id']);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
}
}

@ -1,34 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Type;
/**
* Add new indexes
*/
class Version20151119082400 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$user = $schema->getTable('user');
$user->addIndex(['user_id']);
$userRelTag = $schema->getTable('user_rel_tag');
$userRelTag->addIndex(['user_id']);
$userRelTag->addIndex(['tag_id']);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
}
}

@ -1,32 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Add indexes
*/
class Version20151214164000 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$extraFieldValueTable = $schema->getTable('extra_field_values');
$extraFieldValueTable->addIndex(['field_id', 'item_id']);
$extraFieldTable = $schema->getTable('extra_field');
$extraFieldTable->addIndex(['extra_field_type']);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
}
}

@ -1,129 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Type;
/**
* Fix track_e_hotspot table and migrate hotspot/values
* In the wake of an issue with the hotspot code not being possible to update without moving from AS2 to AS3 (Flash), we
* have decided to rewrite the hotspot tool in JS.
* Little did we know that we would find out that the coordinates system in use by the Flash version of hotspot was in
* fact a projection into a square form of 360x360, not depending on the original size of the image, and that a square
* was defined by its center's coordinates and its width, with an initial not-null margin on the left and top borders.
* The migration below fixes those parallax issues.
*/
class Version20151214170800 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql("ALTER TABLE track_e_hotspot ADD c_id INT NULL");
$this->addSql("ALTER TABLE track_e_hotspot MODIFY COLUMN hotspot_coordinate LONGTEXT NOT NULL");
$this->addSql("UPDATE track_e_hotspot SET c_id = (SELECT id FROM course WHERE code = hotspot_course_code)");
$answers = $this->connection->fetchAll("
SELECT a.iid, a.c_id, a.question_id, a.hotspot_coordinates, a.hotspot_type, q.picture, c.directory
FROM c_quiz_answer a
INNER JOIN c_quiz_question q
ON a.question_id = q.id
INNER JOIN course c
ON (a.c_id = c.id AND q.c_id = c.id)
WHERE a.hotspot_type IN ('square', 'circle', 'poly', 'delineation', 'oar')
");
foreach ($answers as $answer) {
// Recover the real image size to recalculate coordinates
$imagePath = api_get_path(SYS_PATH) . "courses/{$answer['directory']}/document/images/{$answer['picture']}";
$imageSize = getimagesize($imagePath);
$widthRatio = $imageSize[0] / 360;
$heightRatio = $imageSize[1] / 360;
$oldCoords = $answer['hotspot_coordinates'];
$oldPairedString = explode('|', $oldCoords);
$newPairedString = [];
switch ($answer['hotspot_type']) {
case 'square':
$oldCenter = explode(';', $oldPairedString[0]);
$oldCenterX = intval($oldCenter[0]);
$oldCenterY = intval($oldCenter[1]);
$oldWidth = intval($oldPairedString[1]);
$oldHeight = intval($oldPairedString[2]);
$newX = floor(($oldCenterX - $oldWidth / 2) * $widthRatio) + ceil($widthRatio);
$newY = floor(($oldCenterY - $oldHeight / 2) * $heightRatio) + ceil($heightRatio);
$newWidth = ceil($oldWidth * $widthRatio) + ceil(1 * $heightRatio);
$newHeight = ceil($oldHeight * $heightRatio) + floor(1 * $heightRatio);
$newPairedString[] = implode(';', [$newX, $newY]);
$newPairedString[] = $newWidth;
$newPairedString[] = $newHeight;
break;
case 'circle':
$oldCenter = explode(';', $oldPairedString[0]);
$oldCenterX = intval($oldCenter[0]);
$oldCenterY = intval($oldCenter[1]);
$oldRadiusX = intval($oldPairedString[1]) / 2;
$oldRadiusY = intval($oldPairedString[2]) / 2;
$newCenterX = floor($oldCenterX * $widthRatio) + ceil($widthRatio);
$newCenterY = floor($oldCenterY * $heightRatio) + ceil($heightRatio);
$newRadiusX = floor($oldRadiusX * $widthRatio);
$newRadiusY = floor($oldRadiusY * $heightRatio);
$newPairedString[] = implode(';', [$newCenterX, $newCenterY]);
$newPairedString[] = $newRadiusX;
$newPairedString[] = $newRadiusY;
break;
case 'poly':
//no break;
case 'delineation':
//no break
case 'oar':
$paired = [];
foreach ($oldPairedString as $pairString) {
$pair = explode(';', $pairString);
$x = isset($pair[0]) ? intval($pair[0]) : 0;
$y = isset($pair[1]) ? intval($pair[1]) : 0;
$paired[] = [$x, $y];
}
foreach ($paired as $pair) {
$x = floor($pair[0] * $widthRatio) + ceil($widthRatio);
$y = ceil($pair[1] * $heightRatio);
$newPairedString[] = implode(';', [$x, $y]);
}
break;
}
$stmt = $this->connection->prepare("
UPDATE c_quiz_answer
SET hotspot_coordinates = :coordinates
WHERE iid = :iid AND c_id = :cid
");
$stmt->bindValue('coordinates', implode('|', $newPairedString), Type::TEXT);
$stmt->bindValue('iid', $answer['iid'], Type::INTEGER);
$stmt->bindValue('cid', $answer['c_id'], Type::INTEGER);
$stmt->execute();
}
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
}
}

@ -1,52 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Fix c_quiz_answer's correct field for id_auto
*/
class Version20151221150100 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql("
UPDATE track_e_attempt a
INNER JOIN c_quiz_answer qa
ON a.question_id = qa.question_id
INNER JOIN c_quiz_question q
ON qa.question_id = q.id
SET a.answer = qa.id_auto
WHERE
a.answer = qa.id AND
q.c_id = a.c_id AND
q.type IN (" . MATCHING . ", " . DRAGGABLE . ", " . MATCHING_DRAGGABLE . ")
");
$this->addSql("
UPDATE c_quiz_answer a
INNER JOIN c_quiz_answer b
ON a.question_id = b.question_id
INNER JOIN c_quiz_question q
ON b.question_id = q.id
SET a.correct = b.id_auto
WHERE
a.correct = b.id AND
q.c_id = a.c_id AND
q.type IN (" . MATCHING . ", " . DRAGGABLE . ", " . MATCHING_DRAGGABLE . ")
");
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
}
}

@ -1,29 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Fix c_quiz_answer's correct field for id_auto
*/
class Version20160707131900 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql("
ALTER TABLE c_quiz_answer ADD INDEX idx_cqa_q (question_id)");
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
}
}
Loading…
Cancel
Save