diff --git a/main/exercice/question.class.php b/main/exercice/question.class.php index e4f6865b4b..2bebb44de0 100644 --- a/main/exercice/question.class.php +++ b/main/exercice/question.class.php @@ -1602,7 +1602,7 @@ abstract class Question $this->save($objExercise->id); $field_value = new ExtraFieldValue('question'); - $params = $form->exportValues(); + $params = $form->getSubmitValues(); $params['question_id'] = $this->id; $field_value->save_field_values($params); diff --git a/main/exercice/question_admin.inc.php b/main/exercice/question_admin.inc.php index ad7f5e48a3..31a973dfaa 100644 --- a/main/exercice/question_admin.inc.php +++ b/main/exercice/question_admin.inc.php @@ -66,7 +66,6 @@ if (is_object($objQuestion)) { $form->freeze(); } - // Form validation //$result = $objQuestion->allQuestionWithMediaHaveTheSameCategory($exerciseId, 100); @@ -92,7 +91,6 @@ if (is_object($objQuestion)) { if (count($categories) > 1) { $message = Display::display_warning_message(get_lang('WhenUsingAMediaQuestionYouCantAddMoreThanOneCategory')); $message .= ' '.$tryAgain; - $process = false; } diff --git a/main/inc/lib/extra_field_value.lib.php b/main/inc/lib/extra_field_value.lib.php index f18bb9f34c..c4755b381c 100644 --- a/main/inc/lib/extra_field_value.lib.php +++ b/main/inc/lib/extra_field_value.lib.php @@ -120,7 +120,7 @@ class ExtraFieldValue extends Model { $extra_field = new ExtraField($this->type); - //Setting value to insert + // Setting value to insert. $value = $params['field_value']; $value_to_insert = null; @@ -211,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(); + if (!empty($params['field_value'])) { + $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 { @@ -252,12 +254,25 @@ class ExtraFieldValue extends Model } 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(); + if (!empty($params['field_value'])) { + + /* + * If the field value is similar to the previous value then the comment will be the same + in order to no save in the log an empty record + */ + if ($extraFieldValue->getFieldValue() == $params['field_value']) { + if (empty($params['comment'])) { + $params['comment'] = $extraFieldValue->getComment(); + } + } + + $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 { $params['id'] = $field_values['id'];