Fixing question field log error. An empty row was added in the database when the field value was the same as the previous record.

skala
Julio Montoya 13 years ago
parent 2b92ed2759
commit 021194035b
  1. 2
      main/exercice/question.class.php
  2. 2
      main/exercice/question_admin.inc.php
  3. 41
      main/inc/lib/extra_field_value.lib.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);

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

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

Loading…
Cancel
Save