Move Task::duplicate() to class ProjectTaskDuplicationModel

This commit is contained in:
Frederic Guillot
2016-07-02 15:29:48 -04:00
parent 6d5577fa0b
commit b7ac354e83
8 changed files with 75 additions and 59 deletions

View File

@@ -17,80 +17,80 @@ class TaskModel extends Base
*
* @var string
*/
const TABLE = 'tasks';
const TABLE = 'tasks';
/**
* Task status
*
* @var integer
*/
const STATUS_OPEN = 1;
const STATUS_CLOSED = 0;
const STATUS_OPEN = 1;
const STATUS_CLOSED = 0;
/**
* Events
*
* @var string
*/
const EVENT_MOVE_PROJECT = 'task.move.project';
const EVENT_MOVE_COLUMN = 'task.move.column';
const EVENT_MOVE_POSITION = 'task.move.position';
const EVENT_MOVE_SWIMLANE = 'task.move.swimlane';
const EVENT_UPDATE = 'task.update';
const EVENT_CREATE = 'task.create';
const EVENT_CLOSE = 'task.close';
const EVENT_OPEN = 'task.open';
const EVENT_CREATE_UPDATE = 'task.create_update';
const EVENT_MOVE_PROJECT = 'task.move.project';
const EVENT_MOVE_COLUMN = 'task.move.column';
const EVENT_MOVE_POSITION = 'task.move.position';
const EVENT_MOVE_SWIMLANE = 'task.move.swimlane';
const EVENT_UPDATE = 'task.update';
const EVENT_CREATE = 'task.create';
const EVENT_CLOSE = 'task.close';
const EVENT_OPEN = 'task.open';
const EVENT_CREATE_UPDATE = 'task.create_update';
const EVENT_ASSIGNEE_CHANGE = 'task.assignee_change';
const EVENT_OVERDUE = 'task.overdue';
const EVENT_USER_MENTION = 'task.user.mention';
const EVENT_DAILY_CRONJOB = 'task.cronjob.daily';
const EVENT_OVERDUE = 'task.overdue';
const EVENT_USER_MENTION = 'task.user.mention';
const EVENT_DAILY_CRONJOB = 'task.cronjob.daily';
/**
* Recurrence: status
*
* @var integer
*/
const RECURRING_STATUS_NONE = 0;
const RECURRING_STATUS_PENDING = 1;
const RECURRING_STATUS_PROCESSED = 2;
const RECURRING_STATUS_NONE = 0;
const RECURRING_STATUS_PENDING = 1;
const RECURRING_STATUS_PROCESSED = 2;
/**
* Recurrence: trigger
*
* @var integer
*/
const RECURRING_TRIGGER_FIRST_COLUMN = 0;
const RECURRING_TRIGGER_LAST_COLUMN = 1;
const RECURRING_TRIGGER_CLOSE = 2;
const RECURRING_TRIGGER_FIRST_COLUMN = 0;
const RECURRING_TRIGGER_LAST_COLUMN = 1;
const RECURRING_TRIGGER_CLOSE = 2;
/**
* Recurrence: timeframe
*
* @var integer
*/
const RECURRING_TIMEFRAME_DAYS = 0;
const RECURRING_TIMEFRAME_MONTHS = 1;
const RECURRING_TIMEFRAME_YEARS = 2;
const RECURRING_TIMEFRAME_DAYS = 0;
const RECURRING_TIMEFRAME_MONTHS = 1;
const RECURRING_TIMEFRAME_YEARS = 2;
/**
* Recurrence: base date used to calculate new due date
*
* @var integer
*/
const RECURRING_BASEDATE_DUEDATE = 0;
const RECURRING_BASEDATE_TRIGGERDATE = 1;
const RECURRING_BASEDATE_DUEDATE = 0;
const RECURRING_BASEDATE_TRIGGERDATE = 1;
/**
* Remove a task
*
* @access public
* @param integer $task_id Task id
* @param integer $task_id Task id
* @return boolean
*/
public function remove($task_id)
{
if (! $this->taskFinderModel->exists($task_id)) {
if (!$this->taskFinderModel->exists($task_id)) {
return false;
}
@@ -105,7 +105,7 @@ class TaskModel extends Base
* Example: "Fix bug #1234" will return 1234
*
* @access public
* @param string $message Text
* @param string $message Text
* @return integer
*/
public function getTaskIdFromText($message)
@@ -179,8 +179,8 @@ class TaskModel extends Base
* Get task progress based on the column position
*
* @access public
* @param array $task
* @param array $columns
* @param array $task
* @param array $columns
* @return integer
*/
public function getProgress(array $task, array $columns)
@@ -201,25 +201,4 @@ class TaskModel extends Base
return round(($position * 100) / count($columns), 1);
}
/**
* Helper method to duplicate all tasks to another project
*
* @access public
* @param integer $src_project_id
* @param integer $dst_project_id
* @return boolean
*/
public function duplicate($src_project_id, $dst_project_id)
{
$task_ids = $this->taskFinderModel->getAllIds($src_project_id, array(TaskModel::STATUS_OPEN, TaskModel::STATUS_CLOSED));
foreach ($task_ids as $task_id) {
if (! $this->taskProjectDuplicationModel->duplicateToProject($task_id, $dst_project_id)) {
return false;
}
}
return true;
}
}