diff --git a/main/inc/lib/extra_field_value.lib.php b/main/inc/lib/extra_field_value.lib.php index 4b0422e575..a833241ced 100644 --- a/main/inc/lib/extra_field_value.lib.php +++ b/main/inc/lib/extra_field_value.lib.php @@ -32,18 +32,22 @@ class ExtraFieldValue extends Model case 'course': $this->table = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES); $this->table_handler_field = Database::get_main_table(TABLE_MAIN_COURSE_FIELD); + $this->author_id = 'user_id'; break; case 'user': $this->table = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES); $this->table_handler_field = Database::get_main_table(TABLE_MAIN_USER_FIELD); + $this->author_id = 'author_id'; break; case 'session': $this->table = Database::get_main_table(TABLE_MAIN_SESSION_FIELD_VALUES); $this->table_handler_field = Database::get_main_table(TABLE_MAIN_SESSION_FIELD); + $this->author_id = 'user_id'; break; case 'question': $this->table = Database::get_main_table(TABLE_MAIN_QUESTION_FIELD_VALUES); $this->table_handler_field = Database::get_main_table(TABLE_MAIN_QUESTION_FIELD); + $this->author_id = 'question_id'; break; default: //unmanaged datatype, return false to let the caller know it @@ -51,6 +55,7 @@ class ExtraFieldValue extends Model return false; } $this->columns[] = $this->handler_id; + $this->columns[] = $this->author_id; } /** @@ -168,6 +173,8 @@ class ExtraFieldValue extends Model } $params['field_value'] = $value_to_insert; $params['tms'] = api_get_utc_datetime(); + $params[$this->author_id] = api_get_user_id(); + return parent::save($params, $show_query); } } @@ -309,6 +316,7 @@ class ExtraFieldValue extends Model } return false; } + /** * Deletes all the values related to a specific field ID * @param int Field ID diff --git a/main/install/1.10.0/db_main.sql b/main/install/1.10.0/db_main.sql index 5c89c294d0..4acc1305c1 100644 --- a/main/install/1.10.0/db_main.sql +++ b/main/install/1.10.0/db_main.sql @@ -238,6 +238,7 @@ CREATE TABLE IF NOT EXISTS course_field_values( course_code varchar(40) NOT NULL, field_id int NOT NULL, field_value text, + user_id INT unsigned NOT NULL default 0, tms DATETIME NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY(id) ); @@ -565,6 +566,7 @@ CREATE TABLE IF NOT EXISTS session_field_values( session_id int NOT NULL, field_id int NOT NULL, field_value text, + user_id INT unsigned NOT NULL default 0, tms DATETIME NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY(id) ); @@ -1477,13 +1479,13 @@ CREATE TABLE IF NOT EXISTS user_field_values( user_id int unsigned NOT NULL, field_id int NOT NULL, field_value text, + author_id INT unsigned NOT NULL default 0, tms DATETIME NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY(id) ); ALTER TABLE user_field_values ADD INDEX (user_id, field_id); - INSERT INTO user_field (field_type, field_variable, field_display_text, field_visible, field_changeable) VALUES (1, 'legal_accept','Legal',0,0); INSERT INTO user_field (field_type, field_variable, field_display_text, field_visible, field_changeable) VALUES (1, 'already_logged_in','Already logged in',0,0); INSERT INTO user_field (field_type, field_variable, field_display_text, field_visible, field_changeable) VALUES (1, 'update_type','Update script type',0,0); @@ -1509,9 +1511,6 @@ INSERT INTO user_field_options (field_id, option_value, option_display_text, opt INSERT INTO user_field_options (field_id, option_value, option_display_text, option_order) values (10, '8', 'Daily',2); INSERT INTO user_field_options (field_id, option_value, option_display_text, option_order) values (10, '0', 'No',3); - - - DROP TABLE IF EXISTS gradebook_result_log; CREATE TABLE IF NOT EXISTS gradebook_result_log ( id int NOT NULL auto_increment, @@ -3484,6 +3483,7 @@ CREATE TABLE IF NOT EXISTS question_field_values( question_id int NOT NULL, field_id int NOT NULL, field_value text, + user_id INT unsigned NOT NULL default 0, tms DATETIME NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY(id) ); @@ -3493,4 +3493,4 @@ ALTER TABLE question_field_values ADD INDEX idx_question_field_values_question_i ALTER TABLE question_field_values ADD INDEX idx_question_field_values_field_id(field_id); -- Do not move this -UPDATE settings_current SET selected_value = '1.10.002' WHERE variable = 'chamilo_database_version'; +UPDATE settings_current SET selected_value = '1.10.003' WHERE variable = 'chamilo_database_version'; diff --git a/main/install/1.10.0/migrate-db-1.9.0-1.10.0-pre.sql b/main/install/1.10.0/migrate-db-1.9.0-1.10.0-pre.sql index a462f3de99..cbb93e0214 100755 --- a/main/install/1.10.0/migrate-db-1.9.0-1.10.0-pre.sql +++ b/main/install/1.10.0/migrate-db-1.9.0-1.10.0-pre.sql @@ -245,7 +245,7 @@ ALTER TABLE c_quiz_category MODIFY c_id INT NOT NULL; ALTER TABLE c_quiz_category DROP PRIMARY KEY; ALTER TABLE c_quiz_category ADD COLUMN iid INT unsigned NOT NULL auto_increment PRIMARY KEY; -CREATE TABLE IF NOT EXISTS question_field (id int NOT NULL auto_increment, field_type int NOT NULL default 1, field_variable varchar(64) NOT NULL, field_display_text varchar(64), field_default_value text, field_order int, field_visible tinyint default 0, field_changeable tinyint default 0, field_filter tinyint default 0, tms DATETIME NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY(id)); +CREATE TABLE IF NOT EXISTS question_field (id int NOT NULL auto_increment, field_type int NOT NULL default 1, field_variable varchar(64) NOT NULL, field_display_text varchar(64), field_default_value text, field_order int, field_visible tinyint default 0, field_changeable tinyint default 0, field_filter tinyint default 0, tms DATETIME NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY(id)); CREATE TABLE IF NOT EXISTS question_field_options(id int NOT NULL auto_increment, field_id int NOT NULL, option_value text, option_display_text varchar(255), option_order int, tms DATETIME NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (id)); CREATE TABLE IF NOT EXISTS question_field_values( id int NOT NULL auto_increment, question_id int NOT NULL, field_id int NOT NULL, field_value text, tms DATETIME NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY(id)); @@ -253,5 +253,10 @@ ALTER TABLE question_field_options ADD INDEX idx_question_field_options_field_id ALTER TABLE question_field_values ADD INDEX idx_question_field_values_question_id(question_id); ALTER TABLE question_field_values ADD INDEX idx_question_field_values_field_id(field_id); +ALTER TABLE question_field_values ADD COLUMN user_id INT unsigned NOT NULL default 0; +ALTER TABLE session_field_values ADD COLUMN user_id INT unsigned NOT NULL default 0; +ALTER TABLE course_field_values ADD COLUMN user_id INT unsigned NOT NULL default 0; +ALTER TABLE user_field_values ADD COLUMN author_id INT unsigned NOT NULL default 0; + -- Do not move this -UPDATE settings_current SET selected_value = '1.10.0.002' WHERE variable = 'chamilo_database_version'; \ No newline at end of file +UPDATE settings_current SET selected_value = '1.10.0.003' WHERE variable = 'chamilo_database_version'; \ No newline at end of file