%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/tasks/models/state/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/tasks/models/state/PendingState.php |
<?php
namespace humhub\modules\tasks\models\state;
use humhub\modules\tasks\activities\TaskResetActivity;
use humhub\modules\tasks\models\Task;
use humhub\modules\tasks\notifications\TaskResetNotification;
use Yii;
class PendingState extends TaskState
{
public static $status = Task::STATUS_PENDING;
public static $defaultProceedStatus = Task::STATUS_IN_PROGRESS;
protected function proceedConfig($user = null)
{
return [
Task::STATUS_IN_PROGRESS => [
'label' => Yii::t('TasksModule.base', 'Begin Task'),
'icon' => 'fa-play'
],
Task::STATUS_PENDING_REVIEW => [
'label' => Yii::t('TasksModule.base', 'Ready For Review'),
'icon' => 'fa-eye'
],
Task::STATUS_COMPLETED => [
'label' => Yii::t('TasksModule.base', 'Finish Task'),
'icon' => 'fa-check-square-o'
],
];
}
protected function revertConfig($user = null)
{
return [];
}
public function checkProceedRules($newStatus = null, $user = null)
{
return $this->task->isTaskResponsible($user)
|| $this->task->isTaskAssigned($user)
|| $this->task->canProcess($user);
}
public function afterRevert(TaskState $oldState)
{
if ($this->task->hasItems()) {
$this->task->checklist->resetItems();
}
$this->notifyReset();
}
public function notifyReset()
{
$this->task->deleteOldNotifications();
$user = Yii::$app->user->getIdentity();
TaskResetNotification::instance()->from($user)->about($this->task)->sendBulk($this->task->users);
TaskResetActivity::instance()->from($user)->about($this->task)->create();
}
public function checkRevertRules($newStatus = null, $user = null)
{
return false;
}
public function afterProceed(TaskState $oldState)
{
// We can't proceed to a pending state (only revert)
}
}