add at_project field to user_card

This commit is contained in:
iIronside 2022-12-19 16:21:19 +03:00
parent b6d958bdc0
commit 3c922a6627
7 changed files with 74 additions and 3 deletions

View File

@ -20,7 +20,7 @@ class UserCardSearch extends UserCard
public function rules() public function rules()
{ {
return [ return [
[['id', 'gender', 'status'], 'integer'], [['id', 'gender', 'status', 'at_project'], 'integer'],
[['fio', 'passport', 'photo', 'email', 'dob', 'created_at', 'updated_at', 'city', 'test_task_getting_date', 'test_task_complete_date'], 'safe'], [['fio', 'passport', 'photo', 'email', 'dob', 'created_at', 'updated_at', 'city', 'test_task_getting_date', 'test_task_complete_date'], 'safe'],
['skills', 'each', 'rule' => ['integer']], ['skills', 'each', 'rule' => ['integer']],
]; ];
@ -86,6 +86,7 @@ class UserCardSearch extends UserCard
'test_task_getting_date' => $this->test_task_getting_date, 'test_task_getting_date' => $this->test_task_getting_date,
'test_task_complete_date' => $this->test_task_complete_date, 'test_task_complete_date' => $this->test_task_complete_date,
'resume_tariff' => $this->resume_tariff, 'resume_tariff' => $this->resume_tariff,
'at_project' => $this->at_project,
]); ]);
$query->andFilterWhere(['like', 'fio', $this->fio]) $query->andFilterWhere(['like', 'fio', $this->fio])

View File

@ -149,6 +149,17 @@ use yii\widgets\ActiveForm;
</div> </div>
</div> </div>
<div class="row">
<div class="col-xs-6">
<?= $form->field($model, 'at_project')->dropDownList(
$model->getBusyness(),
[
'prompt' => 'Выберите'
]
) ?>
</div>
</div>
<div class="row"> <div class="row">
<div class="col-xs-12"> <div class="col-xs-12">

View File

@ -35,6 +35,8 @@ use yii\widgets\ActiveForm;
<?php // echo $form->field($model, 'updated_at') ?> <?php // echo $form->field($model, 'updated_at') ?>
<?php // echo $form->field($model, 'at_project') ?>
<div class="form-group"> <div class="form-group">
<?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?> <?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
<?= Html::resetButton('Reset', ['class' => 'btn btn-default']) ?> <?= Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>

View File

@ -59,6 +59,13 @@ $this->params['breadcrumbs'][] = $this->title;
], ],
]), ]),
], ],
[
'attribute' => 'at_project',
'value' => function ($model) {
return $model->getBusynessForUser($model->at_project);
},
'filter' => \common\models\UserCard::getBusyness(),
],
//'created_at', //'created_at',
//'updated_at', //'updated_at',
[ [

View File

@ -8,6 +8,10 @@
$menuItems[] = ['label' => $status, 'icon' => 'id-card', 'url' => ['/card/user-card?UserCardSearch[status]=' . $key], 'active' => \Yii::$app->controller->id == 'user-card',]; $menuItems[] = ['label' => $status, 'icon' => 'id-card', 'url' => ['/card/user-card?UserCardSearch[status]=' . $key], 'active' => \Yii::$app->controller->id == 'user-card',];
} }
$busynessArr = \common\models\UserCard::getBusyness();
foreach ($busynessArr as $key => $busyness) {
$menuItems[] = ['label' => $busyness, 'icon' => 'id-card', 'url' => ['/card/user-card?UserCardSearch[at_project]=' . $key], 'active' => \Yii::$app->controller->id == 'user-card'];
}
$projectStatuses = \common\models\Status::getStatusesArray(\common\models\UseStatus::USE_PROJECT); $projectStatuses = \common\models\Status::getStatusesArray(\common\models\UseStatus::USE_PROJECT);
$projectItems = [['label' => 'Все', 'icon' => 'cubes', 'url' => ['/project/project'], 'active' => \Yii::$app->controller->id == 'project']]; $projectItems = [['label' => 'Все', 'icon' => 'cubes', 'url' => ['/project/project'], 'active' => \Yii::$app->controller->id == 'project']];
foreach ($projectStatuses as $key => $status) { foreach ($projectStatuses as $key => $status) {

View File

@ -41,6 +41,7 @@ use yii\helpers\ArrayHelper;
* @property string $resume_text * @property string $resume_text
* @property int $resume_template_id * @property int $resume_template_id
* @property int $resume_tariff * @property int $resume_tariff
* @property int $at_project
* *
* @property FieldsValue[] $fieldsValues * @property FieldsValue[] $fieldsValues
* @property ProjectUser[] $projectUsers * @property ProjectUser[] $projectUsers
@ -63,6 +64,9 @@ class UserCard extends \yii\db\ActiveRecord
const SCENARIO_UPDATE_RESUME_TEXT = 'update_resume_text'; const SCENARIO_UPDATE_RESUME_TEXT = 'update_resume_text';
const SCENARIO_DOWNLOAD_RESUME = 'download_resume_text'; const SCENARIO_DOWNLOAD_RESUME = 'download_resume_text';
const AT_PROJECT_BUSY = 1;
const AT_PROJECT_FREE = 0;
/** /**
* @return string[] * @return string[]
@ -113,7 +117,7 @@ class UserCard extends \yii\db\ActiveRecord
{ {
return [ return [
[['fio', 'status', 'gender', 'email', 'level', 'position_id'], 'required'], [['fio', 'status', 'gender', 'email', 'level', 'position_id'], 'required'],
[['gender', 'status', 'position_id', 'id_user', 'level', 'years_of_exp', 'resume_tariff'], 'integer'], [['gender', 'status', 'position_id', 'id_user', 'level', 'years_of_exp', 'resume_tariff', 'at_project'], 'integer'],
[['dob', 'created_at', 'updated_at', 'deleted_at', 'vc_text', 'vc_text_short', 'test_task_getting_date', 'test_task_complete_date'], 'safe'], [['dob', 'created_at', 'updated_at', 'deleted_at', 'vc_text', 'vc_text_short', 'test_task_getting_date', 'test_task_complete_date'], 'safe'],
['email', 'unique', 'message'=>'Почтовый адрес уже используется'], ['email', 'unique', 'message'=>'Почтовый адрес уже используется'],
[['fio', 'passport', 'photo', 'email', 'resume', 'city', 'link_vk', 'link_telegram', 'specification'], 'string', 'max' => 255], [['fio', 'passport', 'photo', 'email', 'resume', 'city', 'link_vk', 'link_telegram', 'specification'], 'string', 'max' => 255],
@ -160,7 +164,8 @@ class UserCard extends \yii\db\ActiveRecord
'test_task_complete_date' => 'Дата выполнения тестового', 'test_task_complete_date' => 'Дата выполнения тестового',
'resume_template_id' => 'Шаблон резюме', 'resume_template_id' => 'Шаблон резюме',
'resume_text' => 'Резюме сгенерированный текст', 'resume_text' => 'Резюме сгенерированный текст',
'resume_tariff' => 'Ставка для резюме' 'resume_tariff' => 'Ставка для резюме',
'at_project' => 'Занят на проекте'
]; ];
} }
@ -212,6 +217,22 @@ class UserCard extends \yii\db\ActiveRecord
]; ];
} }
public static function getBusyness()
{
return [
self::AT_PROJECT_BUSY => 'На проекте',
self::AT_PROJECT_FREE => 'Не занят'
];
}
/**
* @throws Exception
*/
public function getBusynessForUser($key)
{
return ArrayHelper::getValue($this->getBusyness(), $key);
}
/** /**
* @return string status text label * @return string status text label
*/ */

View File

@ -0,0 +1,25 @@
<?php
use yii\db\Migration;
/**
* Handles adding columns to table `{{%user_card}}`.
*/
class m221219_115735_add_busy_on_project_column_to_user_card_table extends Migration
{
/**
* {@inheritdoc}
*/
public function safeUp()
{
$this->addColumn('user_card', 'at_project', $this->integer(2)->defaultValue(null));
}
/**
* {@inheritdoc}
*/
public function safeDown()
{
$this->dropColumn('user_card', 'at_project');
}
}