From ad3a4aa67f28e841cfa573b9a9936b01617acd68 Mon Sep 17 00:00:00 2001 From: pichetp Date: Thu, 21 May 2009 12:10:42 +0000 Subject: [PATCH] MDL-19210 eliminate the generation of multiple dataitems having the same item number --- question/type/calculated/questiontype.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/question/type/calculated/questiontype.php b/question/type/calculated/questiontype.php index 31428e287b..3be9faa2f7 100644 --- a/question/type/calculated/questiontype.php +++ b/question/type/calculated/questiontype.php @@ -976,8 +976,19 @@ class question_calculated_qtype extends default_questiontype { WHERE definition = ? ORDER BY itemnumber", array($datasetdef->id)); } for ($numberadded =$maxnumber+1 ; $numberadded <= $maxnumber+$numbertoadd ; $numberadded++){ - if (isset($datasetdefs[$defid]->items[$numberadded]) && ! $regenerate ){ - // echo "

Reuse an previously used record".$numberadded."id".$datasetdef->id."

"; + if (isset($datasetdefs[$defid]->items[$numberadded]) ){ + // in case of regenerate it modifies the already existing record + if ( $regenerate ) { + $datasetitem = new stdClass; + $datasetitem->id = $datasetdefs[$defid]->items[$numberadded]->id; + $datasetitem->definition = $datasetdef->id ; + $datasetitem->itemnumber = $numberadded; + $datasetitem->value = $this->generate_dataset_item($datasetdef->options); + if (!$DB->update_record('question_dataset_items', $datasetitem)) { + print_error('cannotupdateitem', 'question'); + } + } + //if not regenerate do nothing as there is already a record } else { $datasetitem = new stdClass; $datasetitem->definition = $datasetdef->id ; -- 2.39.5