| <?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(); |
| } |
| } |
|
|