diff options
Diffstat (limited to 'app/Model/Project.php')
-rw-r--r-- | app/Model/Project.php | 57 |
1 files changed, 20 insertions, 37 deletions
diff --git a/app/Model/Project.php b/app/Model/Project.php index 63077348..ba0716b0 100644 --- a/app/Model/Project.php +++ b/app/Model/Project.php @@ -47,6 +47,22 @@ class Project extends Base } /** + * Get a project by id with owner name + * + * @access public + * @param integer $project_id Project id + * @return array + */ + public function getByIdWithOwner($project_id) + { + return $this->db->table(self::TABLE) + ->columns(self::TABLE.'.*', User::TABLE.'.username AS owner_username', User::TABLE.'.name AS owner_name') + ->eq(self::TABLE.'.id', $project_id) + ->join(User::TABLE, 'id', 'owner_id') + ->findOne(); + } + + /** * Get a project by the name * * @access public @@ -276,23 +292,6 @@ class Project extends Base } /** - * Fetch more information for each project - * - * @access public - * @param array $projects - * @return array - */ - public function applyProjectDetails(array $projects) - { - foreach ($projects as &$project) { - $this->getColumnStats($project); - $project = array_merge($project, $this->projectUserRole->getAllUsersGroupedByRole($project['id'])); - } - - return $projects; - } - - /** * Get project summary for a list of project * * @access public @@ -307,30 +306,13 @@ class Project extends Base return $this->db ->table(Project::TABLE) - ->in('id', $project_ids) + ->columns(self::TABLE.'.*', User::TABLE.'.username AS owner_username', User::TABLE.'.name AS owner_name') + ->join(User::TABLE, 'id', 'owner_id') + ->in(self::TABLE.'.id', $project_ids) ->callback(array($this, 'applyColumnStats')); } /** - * Get project details (users + columns) for a list of project - * - * @access public - * @param array $project_ids List of project id - * @return \PicoDb\Table - */ - public function getQueryProjectDetails(array $project_ids) - { - if (empty($project_ids)) { - return $this->db->table(Project::TABLE)->limit(0); - } - - return $this->db - ->table(Project::TABLE) - ->in('id', $project_ids) - ->callback(array($this, 'applyProjectDetails')); - } - - /** * Create a project * * @access public @@ -346,6 +328,7 @@ class Project extends Base $values['token'] = ''; $values['last_modified'] = time(); $values['is_private'] = empty($values['is_private']) ? 0 : 1; + $values['owner_id'] = $user_id; if (! empty($values['identifier'])) { $values['identifier'] = strtoupper($values['identifier']); |