diff --git a/module/task/config.php b/module/task/config.php index 317f4b44a3..7b00e3a2ad 100644 --- a/module/task/config.php +++ b/module/task/config.php @@ -48,7 +48,7 @@ $config->task->custom->batchCreateFields = 'module,story,assignedTo,estimate,des $config->task->custom->batchEditFields = 'module,assignedTo,status,pri,estimate,record,left'; $config->task->datatable = new stdclass(); -$config->task->datatable->defaultField = array('id', 'pri', 'name', 'status', 'assignedTo', 'finishedBy', 'estimate', 'consumed', 'left', 'progress', 'deadline', 'actions'); +$config->task->datatable->defaultField = array('id', 'pri', 'name', 'status', 'assignedTo', 'lane', 'finishedBy', 'estimate', 'consumed', 'left', 'progress', 'deadline', 'actions'); global $lang; $config->task->datatable->fieldList['id']['title'] = 'idAB'; @@ -128,6 +128,11 @@ $config->task->datatable->fieldList['assignedTo']['fixed'] = 'no'; $config->task->datatable->fieldList['assignedTo']['width'] = '100'; $config->task->datatable->fieldList['assignedTo']['required'] = 'no'; +$config->task->datatable->fieldList['lane']['title'] = 'lane'; +$config->task->datatable->fieldList['lane']['fixed'] = 'no'; +$config->task->datatable->fieldList['lane']['width'] = '90'; +$config->task->datatable->fieldList['lane']['required'] = 'no'; + $config->task->datatable->fieldList['assignedDate']['title'] = 'assignedDate'; $config->task->datatable->fieldList['assignedDate']['fixed'] = 'no'; $config->task->datatable->fieldList['assignedDate']['width'] = '110'; diff --git a/module/task/model.php b/module/task/model.php index 4482e1639f..ca7ce77c90 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -2118,7 +2118,20 @@ class taskModel extends model if($task->parent > 0) $parents[$task->parent] = $task->parent; } $parents = $this->dao->select('*')->from(TABLE_TASK)->where('id')->in($parents)->fetchAll('id'); - + $lanes = array(); + $cardsWhere = ''; + foreach ($tasks as $task) { + if (empty($cardsWhere)) { + $cardsWhere = "cards like '%,{$task->id},%'"; + } else { + $cardsWhere .= " or cards like '%,{$task->id},%'"; + } + } + $lanes = $this->dao->select('t1.lane,t2.name,t1.cards') + ->from(TABLE_KANBANCELL)->alias('t1') + ->leftJoin(TABLE_KANBANLANE)->alias('t2')->on('t1.lane = t2.id') + ->where('t1.kanban')->eq($executionID)->andWhere($cardsWhere, true)->markRight(1)->fetchAll('cards'); + foreach($tasks as $task) { if($task->parent > 0) @@ -2134,6 +2147,15 @@ class taskModel extends model $task->parentName = $parent->name; } } + + $task->lane = ''; + if (!empty($lanes)) { + foreach ($lanes as $lane) { + if (strpos($lane->cards, $task->id) !== false) { + $task->lane = $lane->name; + } + } + } } return $this->processTasks($tasks); @@ -3101,6 +3123,7 @@ class taskModel extends model if($id == 'deadline') $class .= ' text-center'; if($id == 'deadline' and isset($task->delay)) $class .= ' delayed'; if($id == 'assignedTo') $class .= ' has-btn text-left'; + if($id == 'lane') $class .= ' text-left'; if(strpos('progress', $id) !== false) $class .= ' text-right'; $title = ''; @@ -3182,6 +3205,9 @@ class taskModel extends model case 'assignedTo': $this->printAssignedHtml($task, $users); break; + case 'lane': + echo trim($task->lane); + break; case 'assignedDate': echo substr($task->assignedDate, 5, 11); break;