diff --git a/common/models/Project.php b/common/models/Project.php
index 6069da8..21a56e8 100755
--- a/common/models/Project.php
+++ b/common/models/Project.php
@@ -24,6 +24,8 @@ use yii\helpers\ArrayHelper;
* @property FieldsValue[] $fieldsValues
* @property Company $company
* @property ProjectUser[] $projectUsers
+ * @property Mark[] $mark
+ * @property MarkEntity[] $markEntity
*/
class Project extends \yii\db\ActiveRecord
{
@@ -135,6 +137,24 @@ class Project extends \yii\db\ActiveRecord
return $this->hasMany(ProjectUser::class, ['project_id' => 'id']);
}
+ /**
+ * @return \yii\db\ActiveQuery
+ */
+ public function getMark()
+ {
+ return $this->hasMany(Mark::class, ['id' => 'mark_id'])
+ ->via('markEntity');
+ }
+
+ /**
+ * @return \yii\db\ActiveQuery
+ */
+ public function getMarkEntity()
+ {
+ return $this->hasMany(MarkEntity::class, ['entity_id' => 'id'])
+ ->where(['entity_type' => Entity::ENTITY_TYPE_PROJECT]);
+ }
+
/**
* @return array
*/
diff --git a/common/models/ProjectTask.php b/common/models/ProjectTask.php
index ca54fec..be19aac 100644
--- a/common/models/ProjectTask.php
+++ b/common/models/ProjectTask.php
@@ -25,8 +25,11 @@ use yii\helpers\ArrayHelper;
* @property string $dead_line
*
* @property Project $project
+ * @property User $user
* @property UserCard $card
* @property UserCard $cardIdCreator
+ * @property Mark[] $mark
+ * @property MarkEntity[] $markEntity
* @property ProjectTaskUser[] $taskUsers
*/
class ProjectTask extends ActiveRecord
@@ -94,65 +97,6 @@ class ProjectTask extends ActiveRecord
];
}
- /**
- * @return string[]
- */
- public function fields(): array
- {
- return [
- 'id',
- 'project_id',
- 'project_name' => function () {
- return $this->project->name ?? null;
- },
- 'title',
- 'created_at',
- 'updated_at',
- 'dead_line',
- 'description',
- 'status',
- 'column_id',
- 'user_id',
- 'user' => function () {
- return [
- "fio" => $this->user->userCard->fio ?? $this->user->username,
- "avatar" => $this->user->userCard->photo ?? '',
- ];
- },
- 'executor_id',
- 'priority',
- 'executor' => function () {
- if ($this->executor) {
- return [
- "fio" => $this->executor->userCard->fio ?? $this->executor->username,
- "avatar" => $this->executor->userCard->photo ?? '',
- ];
- }
-
- return null;
- },
- 'comment_count' => function () {
- return Comment::find()->where(['entity_id' => $this->id, 'entity_type' => 2, 'status' => Comment::STATUS_ACTIVE])->count();
- },
- 'taskUsers',
- ];
- }
-
- /**
- * @return string[]
- */
- public function extraFields(): array
- {
- return [
- 'timers',
- 'column' => function () {
- return [
- 'column_title' => $this->column->title ?? null
- ];
- }
- ];
- }
-
/**
* @return string[]
*/
@@ -217,6 +161,24 @@ class ProjectTask extends ActiveRecord
return $this->hasMany(Timer::class, ['entity_id' => 'id'])->where(['status' => Timer::STATUS_ACTIVE]);
}
+ /**
+ * @return \yii\db\ActiveQuery
+ */
+ public function getMark()
+ {
+ return $this->hasMany(Mark::class, ['id' => 'mark_id'])
+ ->via('markEntity');
+ }
+
+ /**
+ * @return \yii\db\ActiveQuery
+ */
+ public function getMarkEntity()
+ {
+ return $this->hasMany(MarkEntity::class, ['entity_id' => 'id'])
+ ->where(['entity_type' => Entity::ENTITY_TYPE_TASK]);
+ }
+
public static function usersByTaskArr($task_id): array
{
return ArrayHelper::map(
diff --git a/common/services/TaskService.php b/common/services/TaskService.php
index e9fc814..c2a9b92 100644
--- a/common/services/TaskService.php
+++ b/common/services/TaskService.php
@@ -2,10 +2,8 @@
namespace common\services;
-use common\classes\Debug;
-use common\models\ProjectTask;
use common\models\ProjectTaskUser;
-use common\models\ProjectUser;
+use frontend\modules\api\models\ProjectTask;
class TaskService
{
diff --git a/frontend/modules/api/controllers/ProjectController.php b/frontend/modules/api/controllers/ProjectController.php
index 0707066..25ab4c3 100644
--- a/frontend/modules/api/controllers/ProjectController.php
+++ b/frontend/modules/api/controllers/ProjectController.php
@@ -66,8 +66,9 @@ class ProjectController extends ApiController
* @OA\Parameter(
* name="expand",
* in="query",
+ * example="column,mark",
* required=false,
- * description="В этом параметре по необходимости передаются поля, которые нужно добавить в ответ сервера, сейчас доступно только поле columns",
+ * description="В этом параметре по необходимости передаются поля, которые нужно добавить в ответ сервера, сейчас доступно только поле columns и mark",
* @OA\Schema(
* type="string",
* )
@@ -114,8 +115,9 @@ class ProjectController extends ApiController
* @OA\Parameter(
* name="expand",
* in="query",
+ * example="column,mark",
* required=false,
- * description="В этом параметре по необходимости передаются поля, которые нужно добавить в ответ сервера, сейчас доступно только поле columns",
+ * description="В этом параметре по необходимости передаются поля, которые нужно добавить в ответ сервера, сейчас доступно только поле columns и mark",
* @OA\Schema(
* type="string",
* )
diff --git a/frontend/modules/api/controllers/TaskController.php b/frontend/modules/api/controllers/TaskController.php
index 3c7ca1e..75db62d 100644
--- a/frontend/modules/api/controllers/TaskController.php
+++ b/frontend/modules/api/controllers/TaskController.php
@@ -140,8 +140,8 @@ class TaskController extends ApiController
* @OA\Parameter(
* name="expand",
* in="query",
- * example="column,timers",
- * description="В этом параметре по необходимости передаются поля, которые нужно добавить в ответ сервера, сейчас доступно только поля column, timers",
+ * example="column,timers,mark",
+ * description="В этом параметре по необходимости передаются поля, которые нужно добавить в ответ сервера, сейчас доступно только поля column, timers и mark",
* @OA\Schema(
* type="string",
* )
@@ -196,8 +196,8 @@ class TaskController extends ApiController
* @OA\Parameter(
* name="expand",
* in="query",
- * example="column,timers",
- * description="В этом параметре по необходимости передаются поля, которые нужно добавить в ответ сервера, сейчас доступно только поля column, timers",
+ * example="column,timers,mark",
+ * description="В этом параметре по необходимости передаются поля, которые нужно добавить в ответ сервера, сейчас доступно только поля column, timers и mark",
* @OA\Schema(
* type="string",
* )
@@ -254,8 +254,8 @@ class TaskController extends ApiController
* @OA\Parameter(
* name="expand",
* in="query",
- * example="column,timers",
- * description="В этом параметре по необходимости передаются поля, которые нужно добавить в ответ сервера, сейчас доступно только поля column, timers",
+ * example="column,timers,mark",
+ * description="В этом параметре по необходимости передаются поля, которые нужно добавить в ответ сервера, сейчас доступно только поля column, timers и mark",
* @OA\Schema(
* type="string",
* )
diff --git a/frontend/modules/api/models/Project.php b/frontend/modules/api/models/Project.php
index 7b28818..34ce13f 100644
--- a/frontend/modules/api/models/Project.php
+++ b/frontend/modules/api/models/Project.php
@@ -124,7 +124,7 @@ class Project extends \common\models\Project
*/
public function extraFields(): array
{
- return ['columns',];
+ return ['columns', 'mark'];
}
/**
diff --git a/frontend/modules/api/models/ProjectTask.php b/frontend/modules/api/models/ProjectTask.php
index 78d6de0..ed80fd9 100644
--- a/frontend/modules/api/models/ProjectTask.php
+++ b/frontend/modules/api/models/ProjectTask.php
@@ -152,5 +152,63 @@ namespace frontend\modules\api\models;
*/
class ProjectTask extends \common\models\ProjectTask
{
+ /**
+ * @return string[]
+ */
+ public function fields(): array
+ {
+ return [
+ 'id',
+ 'project_id',
+ 'project_name' => function () {
+ return $this->project->name ?? null;
+ },
+ 'title',
+ 'created_at',
+ 'updated_at',
+ 'dead_line',
+ 'description',
+ 'status',
+ 'column_id',
+ 'user_id',
+ 'user' => function () {
+ return [
+ "fio" => $this->user->userCard->fio ?? $this->user->id,
+ "avatar" => $this->user->userCard->photo ?? '',
+ ];
+ },
+ 'executor_id',
+ 'priority',
+ 'executor' => function () {
+ if ($this->executor) {
+ return [
+ "fio" => $this->executor->userCard->fio ?? $this->executor->username,
+ "avatar" => $this->executor->userCard->photo ?? '',
+ ];
+ }
+ return null;
+ },
+ 'comment_count' => function () {
+ return Comment::find()->where(['entity_id' => $this->id, 'entity_type' => 2, 'status' => Comment::STATUS_ACTIVE])->count();
+ },
+ 'taskUsers',
+ ];
+ }
+
+ /**
+ * @return string[]
+ */
+ public function extraFields(): array
+ {
+ return [
+ 'timers',
+ 'column' => function () {
+ return [
+ 'column_title' => $this->column->title ?? null
+ ];
+ },
+ 'mark'
+ ];
+ }
}
\ No newline at end of file