Duplicate a project with tasks will copy the new tasks in the same columns

This commit is contained in:
Frederic Guillot
2015-10-07 19:01:08 -04:00
parent 6dba53317c
commit 4785174e43
5 changed files with 40 additions and 14 deletions

View File

@@ -402,6 +402,18 @@ class Board extends Base
return (int) $this->db->table(self::TABLE)->eq('project_id', $project_id)->eq('title', $title)->findOneColumn('id');
}
/**
* Get a column title by the id
*
* @access public
* @param integer $column_id
* @return integer
*/
public function getColumnTitleById($column_id)
{
return $this->db->table(self::TABLE)->eq('id', $column_id)->findOneColumn('title');
}
/**
* Get the position of the last column for a given project
*

View File

@@ -105,7 +105,7 @@ class TaskDuplication extends Base
{
$values = $this->copyFields($task_id);
$values['project_id'] = $project_id;
$values['column_id'] = $column_id !== null ? $column_id : $this->board->getFirstColumn($project_id);
$values['column_id'] = $column_id !== null ? $column_id : $values['column_id'];
$values['swimlane_id'] = $swimlane_id !== null ? $swimlane_id : $values['swimlane_id'];
$values['category_id'] = $category_id !== null ? $category_id : $values['category_id'];
$values['owner_id'] = $owner_id !== null ? $owner_id : $values['owner_id'];
@@ -134,7 +134,7 @@ class TaskDuplication extends Base
$values = array();
$values['is_active'] = 1;
$values['project_id'] = $project_id;
$values['column_id'] = $column_id !== null ? $column_id : $this->board->getFirstColumn($project_id);
$values['column_id'] = $column_id !== null ? $column_id : $task['column_id'];
$values['position'] = $this->taskFinder->countByColumnId($project_id, $values['column_id']) + 1;
$values['swimlane_id'] = $swimlane_id !== null ? $swimlane_id : $task['swimlane_id'];
$values['category_id'] = $category_id !== null ? $category_id : $task['category_id'];
@@ -181,6 +181,16 @@ class TaskDuplication extends Base
);
}
// Check if the column exists for the destination project
if ($values['column_id'] > 0) {
$values['column_id'] = $this->board->getColumnIdByTitle(
$values['project_id'],
$this->board->getColumnTitleById($values['column_id'])
);
$values['column_id'] = $values['column_id'] ?: $this->board->getFirstColumn($values['project_id']);
}
return $values;
}