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 / 7
CRAP
0.00% covered (danger)
0.00%
0 / 29
Module
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 7
210
0.00% covered (danger)
0.00%
0 / 29
 getContentContainerTypes
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 getConfigUrl
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 disable
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 7
 disableContentContainer
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 8
 onUserDelete
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 5
 onDashboardSidebarInit
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 2
 getPermissions
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 5
<?php
namespace humhub\modules\tasks;
use humhub\modules\tasks\helpers\TaskUrl;
use humhub\modules\tasks\models\lists\TaskList;
use humhub\modules\tasks\permissions\ProcessUnassignedTasks;
use humhub\modules\tasks\permissions\CreateTask;
use humhub\modules\tasks\permissions\ManageTasks;
use Yii;
use yii\helpers\Url;
use humhub\modules\user\models\User;
use humhub\modules\space\models\Space;
use humhub\modules\tasks\models\Task;
use humhub\modules\tasks\models\user\TaskUser;
use humhub\modules\content\components\ContentContainerActiveRecord;
use humhub\modules\content\components\ContentContainerModule;
class Module extends ContentContainerModule
{
    /**
     * @inheritdoc
     */
    public $resourcesPath = 'resources';
    /**
     * @inheritdoc
     */
    public $searchPaginationSize = 30;
    /**
     * @inheritdoc
     */
    public function getContentContainerTypes()
    {
        return [
            Space::class,
        ];
    }
    /**
     * @inheritdoc
     */
    public function getConfigUrl()
    {
        return TaskUrl::toConfig();
    }
    /**
     * @inheritdoc
     */
    public function disable()
    {
        foreach (Task::find()->all() as $task) {
            $task->delete();
        }
        foreach (TaskList::find()->all() as $taskList) {
            $taskList->delete();
        }
        TaskList::deleteByModule();
        parent::disable();
    }
    /**
     * @inheritdoc
     * @throws \yii\base\Exception
     */
    public function disableContentContainer(ContentContainerActiveRecord $container)
    {
        parent::disableContentContainer($container);
        foreach (Task::find()->contentContainer($container)->all() as $task) {
            $task->delete();
        }
        foreach (TaskList::findByContainer($container)->all() as $taskList) {
            $taskList->delete();
        }
        TaskList::deleteByModule($container);
        parent::disableContentContainer($container);
    }
    public static function onUserDelete($event)
    {
        foreach (TaskUser::findAll(['created_by' => $event->sender->id]) as $task) {
            $task->delete();
        }
        foreach (TaskUser::findAll(['user_id' => $event->sender->id]) as $task) {
            $task->delete();
        }
        return true;
    }
    public static function onDashboardSidebarInit($event)
    {
        $event->sender->addWidget(widgets\MyTasks::class, [], ['sortOrder' => 600]);
    }
    /**
     * @inheritdoc
     */
    public function getPermissions($contentContainer = null)
    {
        if ($contentContainer instanceof Space) {
            return [
                new CreateTask(),
                new ManageTasks(),
                new ProcessUnassignedTasks(),
            ];
        }
        return [];
    }
}