/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
backend/forms/data/task_user/TaskDefaultForm.php
110 строк
2 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace backend\forms\data\task_user; use common\forms\base\BaseModel; use common\helpers\ArrayHelper; use common\helpers\UserHelper; use common\kdf\KTaskType; use common\models\Task; use Yii; /** * Форма добавления task по умолчанию * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2024 */ class TaskDefaultForm extends BaseModel { /** * User * @var null */ public $user_id = null; /** * Тип task * @var null */ public $type_id = null; /** * Task * @var array */ public $task_id = null; /** * @inheritdoc */ public function rules() { return ArrayHelper::merge(parent::rules(), [ [['user_id', 'type_id', 'task_id'], 'required'], [['user_id', 'type_id', 'task_id'], 'integer'], ]); } /** * @inheritdoc */ public function attributeLabels() { return ArrayHelper::merge(parent::attributeLabels(), [ 'type_id' => Yii::t('app', 'Task type'), 'task_id' => Yii::t('app', 'Task'), ]); } /** * @inheritdoc */ public function getPublicFields() { return ArrayHelper::merge(parent::getPublicFields(), [ 'user_id', 'type_id' => function () { return $this->prepareSelectField(KTaskType::find(), 'type_id', 'title'); }, 'task_id' => function () { return $this->prepareSelectField(Task::find(), 'task_id', 'title'); }, ]); } /** * @inheritdoc */ public function loadModel($condition) { parent::loadModel($condition); $this->user_id = ArrayHelper::getValue($condition, 'parent_id'); } /** * @inheritdoc */ protected function doSave() { $a = Task::getAlias(); $task = Task::find() ->prepareDefault() ->andWhere([ $a . '.type_id' => $this->type_id, $a . '.id' => $this->task_id ]) ->one(); if (!$task) { $this->addError('summary', Yii::t('app', 'Default task not found')); return false; } UserHelper::cloneTask($task, $this->user_id); return true; } }