summaryrefslogtreecommitdiff
path: root/app/Model/Project.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Model/Project.php')
-rw-r--r--app/Model/Project.php36
1 files changed, 35 insertions, 1 deletions
diff --git a/app/Model/Project.php b/app/Model/Project.php
index 32b7fcbe..ad64edcd 100644
--- a/app/Model/Project.php
+++ b/app/Model/Project.php
@@ -96,6 +96,40 @@ class Project extends Base
}
/**
+ * Get project summary for a list of project (number of tasks for each column)
+ *
+ * @access public
+ * @param array $project_ids List of project id
+ * @param integer $status Project status
+ * @param string $order Sort on this column
+ * @param string $direction Sorting direction
+ * @return array Project properties
+ */
+ public function getSummary(array $project_ids, $status = self::ACTIVE, $order = 'last_modified', $direction = 'desc')
+ {
+ if (empty($project_ids)) {
+ return array();
+ }
+
+ $projects = $this->db->table(self::TABLE)
+ ->in('id', $project_ids)
+ ->eq('is_active', $status)
+ ->orderby($order, $direction)
+ ->findAll();
+
+ foreach ($projects as &$project) {
+
+ $project['columns'] = $this->board->getColumns($project['id']);
+
+ foreach ($project['columns'] as &$column) {
+ $column['nb_tasks'] = $this->taskFinder->countByColumnId($project['id'], $column['id']);
+ }
+ }
+
+ return $projects;
+ }
+
+ /**
* Get all projects, optionaly fetch stats for each project and can check users permissions
*
* @access public
@@ -192,7 +226,7 @@ class Project extends Base
public function getStats($project_id)
{
$stats = array();
- $columns = $this->board->getcolumns($project_id);
+ $columns = $this->board->getColumns($project_id);
$stats['nb_active_tasks'] = 0;
foreach ($columns as &$column) {