| <?php |
|
|
| namespace Kanboard\Action; |
|
|
| use Kanboard\Model\TaskModel; |
|
|
| |
| |
| |
| |
| |
| |
| class TaskMoveColumnNotMovedPeriod extends Base |
| { |
| |
| |
| |
| |
| |
| |
| public function getDescription() |
| { |
| return t('Move the task to another column when not moved during a given period'); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function getCompatibleEvents() |
| { |
| return array(TaskModel::EVENT_DAILY_CRONJOB); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function getActionRequiredParameters() |
| { |
| return array( |
| 'duration' => t('Duration in days'), |
| 'src_column_id' => t('Source column'), |
| 'dest_column_id' => t('Destination column'), |
| ); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function getEventRequiredParameters() |
| { |
| return array('tasks'); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function doAction(array $data) |
| { |
| $results = array(); |
| $max = $this->getParam('duration') * 86400; |
|
|
| foreach ($data['tasks'] as $task) { |
| $duration = time() - $task['date_moved']; |
|
|
| if ($duration > $max && $task['column_id'] == $this->getParam('src_column_id')) { |
| $results[] = $this->taskPositionModel->movePosition( |
| $task['project_id'], |
| $task['id'], |
| $this->getParam('dest_column_id'), |
| 1, |
| $task['swimlane_id'], |
| false |
| ); |
| } |
| } |
|
|
| return in_array(true, $results, true); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function hasRequiredCondition(array $data) |
| { |
| return count($data['tasks']) > 0; |
| } |
| } |
|
|