Adding user_id in extra_field_values tables (course, session, question, user)

skala
Julio Montoya 13 years ago
parent 73323bbd2c
commit e5d9a384b5
  1. 8
      main/inc/lib/extra_field_value.lib.php
  2. 10
      main/install/1.10.0/db_main.sql
  3. 9
      main/install/1.10.0/migrate-db-1.9.0-1.10.0-pre.sql

@ -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

@ -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';

@ -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';
UPDATE settings_current SET selected_value = '1.10.0.003' WHERE variable = 'chamilo_database_version';
Loading…
Cancel
Save