From 73dce1279760434e1d1b7a903a0a7500462d6f9c Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Wed, 8 Feb 2017 18:36:13 -0500 Subject: Prevent people to remove columns that contains tasks --- app/Model/ColumnModel.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'app/Model/ColumnModel.php') diff --git a/app/Model/ColumnModel.php b/app/Model/ColumnModel.php index 5498ef54..535a31e5 100644 --- a/app/Model/ColumnModel.php +++ b/app/Model/ColumnModel.php @@ -120,6 +120,24 @@ class ColumnModel extends Base return $this->db->table(self::TABLE)->eq('project_id', $project_id)->asc('position')->findAll(); } + /** + * Get all columns with tasks count + * + * @access public + * @param integer $project_id Project id + * @return array + */ + public function getAllWithTasksCount($project_id) + { + return $this->db->table(self::TABLE) + ->columns('id', 'title', 'position', 'task_limit', 'description', 'hide_in_dashboard', 'project_id') + ->subquery('SELECT COUNT(*) FROM '.TaskModel::TABLE.' WHERE column_id='.self::TABLE.'.id AND is_active=1', 'nb_open_tasks') + ->subquery('SELECT COUNT(*) FROM '.TaskModel::TABLE.' WHERE column_id='.self::TABLE.'.id AND is_active=0', 'nb_closed_tasks') + ->eq('project_id', $project_id) + ->asc('position') + ->findAll(); + } + /** * Get the list of columns sorted by position [ column_id => title ] * -- cgit v1.2.3