diff options
Diffstat (limited to 'app/Model/Task.php')
-rw-r--r-- | app/Model/Task.php | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/app/Model/Task.php b/app/Model/Task.php index 09c77573..64f3b74c 100644 --- a/app/Model/Task.php +++ b/app/Model/Task.php @@ -545,7 +545,7 @@ class Task extends Base * @param boolean $trigger_events Flag to trigger events * @return boolean */ - public function move($task_id, $column_id, $position, $trigger_events = true) + public function movePosition($task_id, $column_id, $position, $trigger_events = true) { $this->event->clearTriggeredEvents(); @@ -559,6 +559,35 @@ class Task extends Base } /** + * Move a task to another project + * + * @access public + * @param integer $project_id Project id + * @param array $task Task data + * @return boolean + */ + public function moveToAnotherProject($project_id, array $task) + { + $values = array(); + + // Clear values (categories are different for each project) + $values['category_id'] = 0; + $values['owner_id'] = 0; + + // Check if the assigned user is allowed for the new project + if ($task['owner_id'] && $this->project->isUserAllowed($project_id, $task['owner_id'])) { + $values['owner_id'] = $task['owner_id']; + } + + // We use the first column of the new project + $values['column_id'] = $this->board->getFirstColumn($project_id); + $values['position'] = $this->countByColumnId($project_id, $values['column_id']); + $values['project_id'] = $project_id; + + return $this->db->table(self::TABLE)->eq('id', $task['id'])->update($values); + } + + /** * Validate task creation * * @access public @@ -663,6 +692,28 @@ class Task extends Base } /** + * Validate project modification + * + * @access public + * @param array $values Form values + * @return array $valid, $errors [0] = Success or not, [1] = List of errors + */ + public function validateProjectModification(array $values) + { + $v = new Validator($values, array( + new Validators\Required('id', t('The id is required')), + new Validators\Integer('id', t('This value must be an integer')), + new Validators\Required('project_id', t('The project is required')), + new Validators\Integer('project_id', t('This value must be an integer')), + )); + + return array( + $v->execute(), + $v->getErrors() + ); + } + + /** * Return a timestamp if the given date format is correct otherwise return 0 * * @access public |