From 286b1935663ef3071ad6a0aae3078ad3a42b48e4 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Tue, 14 Oct 2014 22:02:35 -0400 Subject: Add a dashboard (first version) --- app/Model/ProjectActivity.php | 21 +++++++++++++++++++-- app/Model/TaskFinder.php | 27 +++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) (limited to 'app/Model') diff --git a/app/Model/ProjectActivity.php b/app/Model/ProjectActivity.php index d2457609..6d6ef454 100644 --- a/app/Model/ProjectActivity.php +++ b/app/Model/ProjectActivity.php @@ -61,15 +61,32 @@ class ProjectActivity extends Base * @param integer $limit Maximum events number * @return array */ - public function getAll($project_id, $limit = 50) + public function getProject($project_id, $limit = 50) { + return $this->getProjects(array($project_id), $limit); + } + + /** + * Get all events for the given projects list + * + * @access public + * @param integer $project_id Project id + * @param integer $limit Maximum events number + * @return array + */ + public function getProjects(array $projects, $limit = 50) + { + if (empty($projects)) { + return array(); + } + $events = $this->db->table(self::TABLE) ->columns( self::TABLE.'.*', User::TABLE.'.username AS author_username', User::TABLE.'.name AS author_name' ) - ->eq('project_id', $project_id) + ->in('project_id', $projects) ->join(User::TABLE, 'id', 'creator_id') ->desc('id') ->limit($limit) diff --git a/app/Model/TaskFinder.php b/app/Model/TaskFinder.php index 5bf8c139..56795152 100644 --- a/app/Model/TaskFinder.php +++ b/app/Model/TaskFinder.php @@ -111,6 +111,33 @@ class TaskFinder extends Base ->findAll(); } + /** + * Get all open tasks for a given user + * + * @access public + * @param integer $user_id User id + * @return array + */ + public function getAllTasksByUser($user_id) + { + return $this->db + ->table(Task::TABLE) + ->columns( + 'tasks.id', + 'tasks.title', + 'tasks.date_due', + 'tasks.date_creation', + 'tasks.project_id', + 'tasks.color_id', + 'projects.name AS project_name' + ) + ->join(Project::TABLE, 'id', 'project_id') + ->eq('tasks.owner_id', $user_id) + ->eq('tasks.is_active', Task::STATUS_OPEN) + ->asc('tasks.id') + ->findAll(); + } + /** * Get all tasks for a given project and status * -- cgit v1.2.3