| | <?php |
| |
|
| | namespace Kanboard\Export; |
| |
|
| | use Kanboard\Core\Base; |
| | use Kanboard\Model\TaskModel; |
| | use Kanboard\Model\SubtaskModel; |
| | use Kanboard\Model\UserModel; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | class SubtaskExport extends Base |
| | { |
| | |
| | |
| | |
| | |
| | |
| | |
| | private $subtask_status = array(); |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function export($project_id, $from, $to) |
| | { |
| | $this->subtask_status = $this->subtaskModel->getStatusList(); |
| | $subtasks = $this->getSubtasks($project_id, $from, $to); |
| | $results = array($this->getColumns()); |
| |
|
| | foreach ($subtasks as $subtask) { |
| | $results[] = $this->format($subtask); |
| | } |
| |
|
| | return $results; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getColumns() |
| | { |
| | return array( |
| | e('Subtask Id'), |
| | e('Title'), |
| | e('Status'), |
| | e('Assignee'), |
| | e('Time estimated'), |
| | e('Time spent'), |
| | e('Task Id'), |
| | e('Task Title'), |
| | ); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function format(array $subtask) |
| | { |
| | $values = array(); |
| | $values[] = $subtask['id']; |
| | $values[] = $subtask['title']; |
| | $values[] = t($this->subtask_status[$subtask['status']]); |
| | $values[] = $subtask['assignee_name'] ?: $subtask['assignee_username']; |
| | $values[] = $subtask['time_estimated']; |
| | $values[] = $subtask['time_spent']; |
| | $values[] = $subtask['task_id']; |
| | $values[] = $subtask['task_title']; |
| |
|
| | return $values; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getSubtasks($project_id, $from, $to) |
| | { |
| | if (! is_numeric($from)) { |
| | $from = $this->dateParser->removeTimeFromTimestamp($this->dateParser->getTimestamp($from)); |
| | } |
| |
|
| | if (! is_numeric($to)) { |
| | $to = $this->dateParser->removeTimeFromTimestamp(strtotime('+1 day', $this->dateParser->getTimestamp($to))); |
| | } |
| |
|
| | return $this->db->table(SubtaskModel::TABLE) |
| | ->eq('project_id', $project_id) |
| | ->columns( |
| | SubtaskModel::TABLE.'.*', |
| | UserModel::TABLE.'.username AS assignee_username', |
| | UserModel::TABLE.'.name AS assignee_name', |
| | TaskModel::TABLE.'.title AS task_title' |
| | ) |
| | ->gte('date_creation', $from) |
| | ->lte('date_creation', $to) |
| | ->join(TaskModel::TABLE, 'id', 'task_id') |
| | ->join(UserModel::TABLE, 'id', 'user_id') |
| | ->asc(SubtaskModel::TABLE.'.id') |
| | ->findAll(); |
| | } |
| | } |
| |
|