Prevent people to remove swimlanes that contains tasks

This commit is contained in:
Frederic Guillot
2017-02-18 13:38:51 -05:00
parent 948b7fbaaa
commit 49c8e5c1be
13 changed files with 132 additions and 54 deletions

View File

@@ -163,6 +163,40 @@ class SwimlaneModel extends Base
return $query->findAll();
}
/**
* Get all swimlanes with task count
*
* @access public
* @param integer $project_id Project id
* @return array
*/
public function getAllWithTaskCount($project_id)
{
$result = array(
'active' => array(),
'inactive' => array(),
);
$swimlanes = $this->db->table(self::TABLE)
->columns('id', 'name', 'description', 'project_id', 'position', 'is_active')
->subquery("SELECT COUNT(*) FROM ".TaskModel::TABLE." WHERE swimlane_id=".self::TABLE.".id AND is_active='1'", 'nb_open_tasks')
->subquery("SELECT COUNT(*) FROM ".TaskModel::TABLE." WHERE swimlane_id=".self::TABLE.".id AND is_active='0'", 'nb_closed_tasks')
->eq('project_id', $project_id)
->asc('position')
->asc('name')
->findAll();
foreach ($swimlanes as $swimlane) {
if ($swimlane['is_active']) {
$result['active'][] = $swimlane;
} else {
$result['inactive'][] = $swimlane;
}
}
return $result;
}
/**
* Get list of all swimlanes
*