From: pichetp Date: Thu, 21 May 2009 12:10:42 +0000 (+0000) Subject: MDL-19210 eliminate the generation of multiple dataitems having the same item number X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=ad3a4aa67f28e841cfa573b9a9936b01617acd68;p=moodle.git MDL-19210 eliminate the generation of multiple dataitems having the same item number --- 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 ;