From f6b9ade20a74640e90c65d196cee13ebeb973bee Mon Sep 17 00:00:00 2001 From: Zongjun Lan Date: Wed, 23 Feb 2022 11:07:27 +0800 Subject: [PATCH 1/3] * Fix bug #49335 --- module/task/config.php | 7 ++++++- module/task/model.php | 28 +++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) 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; From 91f09fe4847fcd1d562fb6a0dfb6333b893cd01d Mon Sep 17 00:00:00 2001 From: Zongjun Lan Date: Wed, 23 Feb 2022 11:27:10 +0800 Subject: [PATCH 2/3] modify code format --- module/task/model.php | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/module/task/model.php b/module/task/model.php index ca7ce77c90..aaf526a0d8 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -2120,17 +2120,21 @@ class taskModel extends model $parents = $this->dao->select('*')->from(TABLE_TASK)->where('id')->in($parents)->fetchAll('id'); $lanes = array(); $cardsWhere = ''; - foreach ($tasks as $task) { - if (empty($cardsWhere)) { + foreach($tasks as $task) + { + if(empty($cardsWhere)) + { $cardsWhere = "cards like '%,{$task->id},%'"; - } else { + } + 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'); + ->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) { @@ -2149,9 +2153,12 @@ class taskModel extends model } $task->lane = ''; - if (!empty($lanes)) { - foreach ($lanes as $lane) { - if (strpos($lane->cards, $task->id) !== false) { + if(!empty($lanes)) + { + foreach($lanes as $lane) + { + if(strpos($lane->cards, $task->id) !== false) + { $task->lane = $lane->name; } } From 245a062277fb407c5373eebef12437ae260299e3 Mon Sep 17 00:00:00 2001 From: Zongjun Lan Date: Wed, 23 Feb 2022 11:34:17 +0800 Subject: [PATCH 3/3] modify code format --- module/task/model.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/module/task/model.php b/module/task/model.php index aaf526a0d8..2ae7b892a2 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -2118,7 +2118,8 @@ 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(); + + $lanes = array(); $cardsWhere = ''; foreach($tasks as $task) { @@ -2134,8 +2135,10 @@ class taskModel extends model $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'); - + ->where('t1.kanban')->eq($executionID) + ->andWhere("($cardsWhere)") + ->fetchAll('cards'); + foreach($tasks as $task) { if($task->parent > 0) @@ -2157,10 +2160,7 @@ class taskModel extends model { foreach($lanes as $lane) { - if(strpos($lane->cards, $task->id) !== false) - { - $task->lane = $lane->name; - } + if(strpos($lane->cards, $task->id) !== false) $task->lane = $lane->name; } } }