diff --git a/main/inc/Entity/ExtraFieldValues.php b/main/inc/Entity/ExtraFieldValues.php
index 98f246f8d6..048a8ec558 100644
--- a/main/inc/Entity/ExtraFieldValues.php
+++ b/main/inc/Entity/ExtraFieldValues.php
@@ -43,6 +43,37 @@ class ExtraFieldValues
*/
private $userId;
+ /**
+ * @var string
+ * @Gedmo\Versioned
+ *
+ * @ORM\Column(name="comment", type="string", precision=0, scale=0, nullable=true, unique=false)
+ */
+ private $comment;
+
+ /**
+ * Set comment
+ *
+ * @param string $comment
+ * @return ExtraFieldValues
+ */
+ public function setComment($comment)
+ {
+ $this->comment = $comment;
+
+ return $this;
+ }
+
+ /**
+ * Get comment
+ *
+ * @return string
+ */
+ public function getComment()
+ {
+ return $this->comment;
+ }
+
/**
* Get id
diff --git a/main/inc/lib/extra_field.lib.php b/main/inc/lib/extra_field.lib.php
index 0c60f6745a..ea3394ca20 100644
--- a/main/inc/lib/extra_field.lib.php
+++ b/main/inc/lib/extra_field.lib.php
@@ -664,44 +664,54 @@ class ExtraField extends Model
array('id' => 'extra_'.$field_details['field_variable'])
);
-
if ($optionsExists && $field_details['field_loggeable'] && !empty($defaultValueId)) {
+ $form->addElement(
+ 'textarea',
+ 'extra_'.$field_details['field_variable'].'_comment',
+ $field_details['field_display_text'].' '.get_lang('Comment')
+ );
+
/*$extraField = new Extrafield($field_details['field_type']);
$link = Display::url();*/
$extraFieldValue = new ExtraFieldValue($this->type);
$repo = $app['orm.em']->getRepository($extraFieldValue->entityName);
$repoLog = $app['orm.em']->getRepository('Gedmo\Loggable\Entity\LogEntry');
$newEntity = $repo->findOneBy(
- array(
- $this->handlerEntityId => $itemId,
- 'fieldId' => $field_details['id']
- ));
-
-
+ array(
+ $this->handlerEntityId => $itemId,
+ 'fieldId' => $field_details['id']
+ )
+ );
+ // @todo move this in a function inside the class
if ($newEntity) {
$logs = $repoLog->getLogEntries($newEntity);
if (!empty($logs)) {
- $html = get_lang('LatestChanges').'
';
+ $html = ''.get_lang('LatestChanges').'
';
$table = new HTML_Table(array('class' => 'data_table'));
$table->setHeaderContents(0, 0, get_lang('Value'));
- $table->setHeaderContents(0, 1, get_lang('ModifyDate'));
- $table->setHeaderContents(0, 2, get_lang('Username'));
+ $table->setHeaderContents(0, 1, get_lang('Comment'));
+ $table->setHeaderContents(0, 2, get_lang('ModifyDate'));
+ $table->setHeaderContents(0, 3, get_lang('Username'));
$row = 1;
foreach ($logs as $log) {
$column = 0;
$data = $log->getData();
- $table->setCellContents($row, $column, $data['fieldValue']);
+ $fieldValue = isset($data['fieldValue']) ? $data['fieldValue'] : null;
+ $comment = isset($data['comment']) ? $data['comment'] : null;
+
+ $table->setCellContents($row, $column, $fieldValue);
+ $column++;
+ $table->setCellContents($row, $column, $comment);
$column++;
$table->setCellContents($row, $column, api_get_local_time($log->getLoggedAt()->format('Y-m-d H:i:s')));
$column++;
$table->setCellContents($row, $column, $log->getUsername());
$row++;
}
- $form->addElement('label', null, $table->toHtml());
+ $form->addElement('label', null, $html.$table->toHtml());
}
-
}
}
diff --git a/main/inc/lib/extra_field_value.lib.php b/main/inc/lib/extra_field_value.lib.php
index dcea376df6..f18bb9f34c 100644
--- a/main/inc/lib/extra_field_value.lib.php
+++ b/main/inc/lib/extra_field_value.lib.php
@@ -13,8 +13,9 @@
class ExtraFieldValue extends Model
{
public $type = null;
- public $columns = array('id', 'field_id', 'field_value', 'tms');
- public $handler_id = null;//session_id, course_code, user_id
+ public $columns = array('id', 'field_id', 'field_value', 'tms', 'comment');
+ /** @var string session_id, course_code, user_id, question id */
+ public $handler_id = null;
public $entityName;
/**
@@ -87,17 +88,20 @@ class ExtraFieldValue extends Model
if (empty($params[$this->handler_id])) {
return false;
}
- //Parse params
+ // Parse params.
foreach ($params as $key => $value) {
if (substr($key, 0, 6) == 'extra_') {
// An extra field.
$field_variable = substr($key, 6);
$extra_field_info = $extra_field->get_handler_field_info_by_field_variable($field_variable);
if ($extra_field_info) {
+ $commentVariable = 'extra_'.$field_variable.'_comment';
+ $comment = isset($params[$commentVariable]) ? $params[$commentVariable] : null;
$new_params = array(
$this->handler_id => $params[$this->handler_id],
'field_id' => $extra_field_info['id'],
- 'field_value' => $value
+ 'field_value' => $value,
+ 'comment' => $comment
);
self::save($new_params);
}
@@ -207,12 +211,14 @@ class ExtraFieldValue extends Model
break;
}
if (isset($extraFieldValue)) {
+ $extraFieldValue->setComment($params['comment']);
$extraFieldValue->setFieldValue($params['field_value']);
$extraFieldValue->setFieldId($params['field_id']);
$extraFieldValue->setTms(api_get_utc_datetime(null, false, true));
$app['orm.em']->persist($extraFieldValue);
$app['orm.em']->flush();
}
+
} else {
return parent::save($params, $show_query);
}
@@ -244,8 +250,9 @@ class ExtraFieldValue extends Model
$extraFieldValue->setSessionId($params[$this->handler_id]);
break;
}
- if (isset($extraFieldValue)) {
+ if (isset($extraFieldValue)) {
+ $extraFieldValue->setComment($params['comment']);
$extraFieldValue->setFieldValue($params['field_value']);
$extraFieldValue->setFieldId($params['field_id']);
$extraFieldValue->setTms(api_get_utc_datetime(null, false, true));
diff --git a/main/install/1.10.0/db_main.sql b/main/install/1.10.0/db_main.sql
index d95f0d46f3..8537f9cb8a 100644
--- a/main/install/1.10.0/db_main.sql
+++ b/main/install/1.10.0/db_main.sql
@@ -242,11 +242,12 @@ CREATE TABLE IF NOT EXISTS course_field_options (
DROP TABLE IF EXISTS course_field_values;
CREATE TABLE IF NOT EXISTS course_field_values(
- id int NOT NULL auto_increment,
+ id bigint NOT NULL auto_increment,
course_code varchar(40) NOT NULL,
field_id int NOT NULL,
field_value text,
user_id INT unsigned NOT NULL default 0,
+ comment VARCHAR(100) default '',
tms DATETIME NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY(id)
);
@@ -571,11 +572,12 @@ CREATE TABLE IF NOT EXISTS session_field_options(
DROP TABLE IF EXISTS session_field_values;
CREATE TABLE IF NOT EXISTS session_field_values(
- id int NOT NULL auto_increment,
+ id bigint NOT NULL auto_increment,
session_id int NOT NULL,
field_id int NOT NULL,
field_value text,
user_id INT unsigned NOT NULL default 0,
+ comment VARCHAR(100) default '',
tms DATETIME NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY(id)
);
@@ -1490,6 +1492,7 @@ CREATE TABLE IF NOT EXISTS user_field_values(
field_id int NOT NULL,
field_value text,
author_id INT unsigned NOT NULL default 0,
+ comment VARCHAR(100) default '',
tms DATETIME NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY(id)
);
@@ -2593,11 +2596,11 @@ CREATE TABLE IF NOT EXISTS specific_field (
DROP TABLE IF EXISTS specific_field_values;
CREATE TABLE IF NOT EXISTS specific_field_values (
- id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
- course_code VARCHAR(40) NOT NULL ,
- tool_id VARCHAR(100) NOT NULL ,
- ref_id INT NOT NULL ,
- field_id INT NOT NULL ,
+ id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ course_code VARCHAR(40) NOT NULL,
+ tool_id VARCHAR(100) NOT NULL,
+ ref_id INT NOT NULL,
+ field_id INT NOT NULL,
value VARCHAR(200) NOT NULL
);
ALTER TABLE specific_field ADD CONSTRAINT unique_specific_field__code UNIQUE (code);
@@ -3487,11 +3490,12 @@ CREATE TABLE IF NOT EXISTS question_field_options(
DROP TABLE IF EXISTS question_field_values;
CREATE TABLE IF NOT EXISTS question_field_values(
- id int NOT NULL auto_increment,
+ id bigint NOT NULL auto_increment,
question_id int NOT NULL,
field_id int NOT NULL,
field_value text,
user_id INT unsigned NOT NULL default 0,
+ comment VARCHAR(100) default '',
tms DATETIME NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY(id)
);
@@ -3517,4 +3521,4 @@ CREATE TABLE ext_log_entries (
) DEFAULT CHARSET=utf8;
-- Do not move this
-UPDATE settings_current SET selected_value = '1.10.0.009' WHERE variable = 'chamilo_database_version';
+UPDATE settings_current SET selected_value = '1.10.0.010' 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 46c3761f60..eccbb1f040 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
@@ -272,5 +272,10 @@ ALTER TABLE session_field ADD COLUMN field_loggeable int default 0;
ALTER TABLE course_field ADD COLUMN field_loggeable int default 0;
ALTER TABLE question_field ADD COLUMN field_loggeable int default 0;
+ALTER TABLE user_field_values ADD COLUMN comment VARCHAR(100) default '';
+ALTER TABLE session_field_values ADD COLUMN comment VARCHAR(100) default '';
+ALTER TABLE course_field_values ADD COLUMN comment VARCHAR(100) default '';
+ALTER TABLE question_field_values ADD COLUMN comment VARCHAR(100) default '';
+
-- Do not move this
-UPDATE settings_current SET selected_value = '1.10.0.009' WHERE variable = 'chamilo_database_version';
+UPDATE settings_current SET selected_value = '1.10.0.010' WHERE variable = 'chamilo_database_version';