Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 34
TaskListWidget
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 5
42
0.00% covered (danger)
0.00%
0 / 34
 run
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 17
 getNonCompletedTasks
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 3
 getCompletedTasksQuery
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 3
 getTitle
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 3
 getData
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 8
<?php
/**
 * @link https://www.humhub.org/
 * @copyright Copyright (c) 2018 HumHub GmbH & Co. KG
 * @license https://www.humhub.com/licences
 *
 */
namespace humhub\modules\tasks\widgets\lists;
use humhub\modules\content\components\ContentContainerActiveRecord;
use humhub\modules\tasks\helpers\TaskListUrl;
use humhub\modules\tasks\models\Task;
use humhub\modules\tasks\models\lists\TaskListInterface;
use humhub\widgets\JsWidget;
use Yii;
class TaskListWidget extends JsWidget
{
    /**
     * @inheritdocs
     */
    public $init = true;
    /**
     * @inheritdocs
     */
    public $jsWidget = 'task.list.TaskList';
    /**
     * @var TaskListInterface
     */
    public $list;
    /**
     * @var Task[] | null
     */
    public $tasks;
    public $canBeSorted = true;
    public $canManage = false;
    public $canCreate = false;
    /**
     * @inheritdocs
     */
    public function run()
    {
        $completedTasksQuery = $this->getCompletedTasksQuery();
        $countQuery = clone $completedTasksQuery;
        $tasks = $this->getNonCompletedTasks();
        return $this->render('taskList', [
            'list' => $this->list,
            'title' => $this->getTitle(),
            'tasks' => $tasks,
            'canManage' => $this->canManage,
            'canSort' => $this->canManage && $this->canBeSorted,
            'canCreate' => $this->canCreate,
            'completedTasks' => $completedTasksQuery->limit(3)->all(),
            'completedTasksCount' => $countQuery->count(),
            'options' => $this->getOptions(),
            'color' => $this->list->getColor(),
        ]);
    }
    protected function getNonCompletedTasks()
    {
        return $this->list->getNonCompletedTasks()->all();
    }
    protected function getCompletedTasksQuery()
    {
        return $this->list->getCompletedTasks();
    }
    protected function getTitle()
    {
        return $this->list->getTitle();
    }
    public function getData()
    {
        return [
            'task-list-id' => $this->list->getId(),
            'can-manage' => $this->canManage,
            'reload-url' => TaskListUrl::reloadTaskList($this->list),
            'drop-task-url' => TaskListUrl::dropTaskListTask($this->list)
        ];
    }
}