diff --git a/extension/lite/execution/ext/model/lite.php b/extension/lite/execution/ext/model/lite.php index 95f97b295d..a4c0406aea 100644 --- a/extension/lite/execution/ext/model/lite.php +++ b/extension/lite/execution/ext/model/lite.php @@ -32,3 +32,48 @@ public function setMenu($executionID, $buildID = 0, $extra = '') $this->lang->modulePageNav = $modulePageNav; } + +public function getTree($executionID) +{ + $fullTrees = $this->loadModel('tree')->getTaskStructure($executionID, 0); + + array_unshift($fullTrees, array('id' => 0, 'name' => '/', 'type' => 'task', 'actions' => false, 'root' => $executionID)); + + foreach($fullTrees as $i => $tree) + { + $tree = (object)$tree; + + if($tree->type == 'product') array_unshift($tree->children, array('id' => 0, 'name' => '/', 'type' => 'story', 'actions' => false, 'root' => $tree->root)); + $fullTree = $this->fillTasksInTree($tree, $executionID); + + if(empty($fullTree->children)) + { + unset($fullTrees[$i]); + } + else + { + $fullTrees[$i] = $fullTree; + } + } + + if(isset($fullTrees[0]) and empty($fullTrees[0]->children)) array_shift($fullTrees); + + $newTrees = array(); + + foreach($fullTrees as $i => $tree) + { + if($tree->type == 'product') + { + foreach($tree->children as $value) + { + $newTrees[] = $value; + } + } + else + { + $newTrees[] = $tree; + } + } + + return array_values($newTrees); +}