This commit is contained in:
Kavalar 2018-12-03 12:10:39 +03:00
parent c730e2547e
commit 45173d3b66
7 changed files with 111 additions and 13 deletions

View File

@ -34,7 +34,8 @@ $this->params['breadcrumbs'][] = $this->title;
}, },
], ],
'fio', 'fio',
'passport', //'passport',
'salary',
'email:email', 'email:email',
//'gender', //'gender',
//'dob', //'dob',

View File

@ -2,6 +2,7 @@
namespace backend\modules\company\models; namespace backend\modules\company\models;
use common\classes\Debug;
use Yii; use Yii;
use yii\base\Model; use yii\base\Model;
use yii\data\ActiveDataProvider; use yii\data\ActiveDataProvider;
@ -18,7 +19,7 @@ class CompanySearch extends Company
public function rules() public function rules()
{ {
return [ return [
[['id', 'status_id'], 'integer'], [['id', 'status_id', 'projectId'], 'integer'],
[['name', 'description', 'created_at', 'updated_at'], 'safe'], [['name', 'description', 'created_at', 'updated_at'], 'safe'],
]; ];
} }
@ -41,7 +42,7 @@ class CompanySearch extends Company
*/ */
public function search($params) public function search($params)
{ {
$query = Company::find(); $query = Company::find()->joinWith('project');
// add conditions that should always apply here // add conditions that should always apply here
@ -63,6 +64,7 @@ class CompanySearch extends Company
'status_id' => $this->status_id, 'status_id' => $this->status_id,
'created_at' => $this->created_at, 'created_at' => $this->created_at,
'updated_at' => $this->updated_at, 'updated_at' => $this->updated_at,
'project.id' => $this->projectId
]); ]);
$query->andFilterWhere(['like', 'name', $this->name]) $query->andFilterWhere(['like', 'name', $this->name])

View File

@ -26,8 +26,36 @@ $this->params['breadcrumbs'][] = $this->title;
//'id', //'id',
'name', 'name',
'description:ntext', [
'status_id', 'attribute' => 'project.name',
'label' => 'Проект',
'filter' => kartik\select2\Select2::widget([
'model' => $searchModel,
'name' => 'CompanySearch[projectId]',
'data' => \common\models\Project::getList(),
'options' => ['placeholder' => 'Начните вводить...','class' => 'form-control'],
'pluginOptions' => [
'allowClear' => true
],
]),
],
//'description:ntext',
//'status_id',
[
'attribute' => 'status',
'value' => function($model){
return isset($model->status0->name) ? $model->status0->name : 'Не задано';
},
'filter' => kartik\select2\Select2::widget([
'model' => $searchModel,
'attribute' => 'status',
'data' => \common\models\Status::getStatusesArray(\common\models\UseStatus::USE_COMPANY),
'options' => ['placeholder' => 'Начните вводить...','class' => 'form-control'],
'pluginOptions' => [
'allowClear' => true
],
]),
],
//'created_at', //'created_at',
//'updated_at', //'updated_at',

View File

@ -1,5 +1,6 @@
<?php <?php
use common\models\Project;
use yii\helpers\Html; use yii\helpers\Html;
use yii\grid\GridView; use yii\grid\GridView;
@ -13,7 +14,7 @@ $this->params['breadcrumbs'][] = $this->title;
<div class="project-index"> <div class="project-index">
<?php // echo $this->render('_search', ['model' => $searchModel]); ?> <?php // echo $this->render('_search', ['model' => $searchModel]); ?>
<?php ?>
<p> <p>
<?= Html::a('Создать', ['create'], ['class' => 'btn btn-success']) ?> <?= Html::a('Создать', ['create'], ['class' => 'btn btn-success']) ?>
</p> </p>
@ -24,11 +25,29 @@ $this->params['breadcrumbs'][] = $this->title;
'columns' => [ 'columns' => [
['class' => 'yii\grid\SerialColumn'], ['class' => 'yii\grid\SerialColumn'],
'id', //'id',
'name', [
'attribute' => 'name',
'filter' => kartik\select2\Select2::widget([
'model' => $searchModel,
'attribute' => 'name',
'data' => \common\models\Project::getListName(),
'options' => ['placeholder' => 'Начните вводить...','class' => 'form-control'],
'pluginOptions' => [
'allowClear' => true
],
]),
],
'budget',
'description:ntext', 'description:ntext',
'created_at', [
'updated_at', 'label' => 'Исполнители',
'value' => function($model){
return implode(', ', $model->getUsersNameList());
}
],
//'created_at',
//'updated_at',
['class' => 'yii\grid\ActionColumn'], ['class' => 'yii\grid\ActionColumn'],
], ],

View File

@ -1,5 +1,12 @@
<aside class="main-sidebar"> <aside class="main-sidebar">
<section class="sidebar"> <section class="sidebar">
<?php
$userStatuses = \common\models\Status::getStatusesArray(\common\models\UseStatus::USE_PROFILE);
$menuItems = [['label' => 'Все', 'icon' => 'user', 'url' => ['/card/user-card']]];
foreach($userStatuses as $key => $status){
$menuItems[] = ['label' => $status, 'icon' => 'user', 'url' => ['/card/user-card?UserCardSearch[status]=' . $key]];
}
?>
<?= dmstr\widgets\Menu::widget( <?= dmstr\widgets\Menu::widget(
[ [
@ -14,8 +21,10 @@
['label' => 'Навыки', 'icon' => 'flask', 'url' => ['/settings/skill']], ['label' => 'Навыки', 'icon' => 'flask', 'url' => ['/settings/skill']],
] ]
], ],
[
['label' => 'Профили', 'icon' => 'users', 'url' => ['/card/user-card']], 'label' => 'Профили', 'icon' => 'users', 'url' => '#',
'items' => $menuItems,
],
['label' => 'Пректы', 'icon' => 'files-o', 'url' => ['/project/project']], ['label' => 'Пректы', 'icon' => 'files-o', 'url' => ['/project/project']],
['label' => 'Компании', 'icon' => 'files-o', 'url' => ['/company/company']], ['label' => 'Компании', 'icon' => 'files-o', 'url' => ['/company/company']],
[ [

View File

@ -13,6 +13,7 @@ use yii\db\Expression;
* @property string $name * @property string $name
* @property string $description * @property string $description
* @property int $status_id * @property int $status_id
* @property int $projectId
* @property string $created_at * @property string $created_at
* @property string $updated_at * @property string $updated_at
* *
@ -21,6 +22,7 @@ use yii\db\Expression;
*/ */
class Company extends \yii\db\ActiveRecord class Company extends \yii\db\ActiveRecord
{ {
public $projectId;
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
@ -49,7 +51,7 @@ class Company extends \yii\db\ActiveRecord
return [ return [
[['name'], 'required'], [['name'], 'required'],
[['description'], 'string'], [['description'], 'string'],
[['status_id'], 'integer'], [['status_id', 'projectId'], 'integer'],
[['created_at', 'updated_at'], 'safe'], [['created_at', 'updated_at'], 'safe'],
[['name'], 'string', 'max' => 255], [['name'], 'string', 'max' => 255],
[['status_id'], 'exist', 'skipOnError' => true, 'targetClass' => Status::className(), 'targetAttribute' => ['status_id' => 'id']], [['status_id'], 'exist', 'skipOnError' => true, 'targetClass' => Status::className(), 'targetAttribute' => ['status_id' => 'id']],
@ -86,4 +88,20 @@ class Company extends \yii\db\ActiveRecord
{ {
return $this->hasMany(FieldsValue::className(), ['company_id' => 'id']); return $this->hasMany(FieldsValue::className(), ['company_id' => 'id']);
} }
/**
* @return \yii\db\ActiveQuery
*/
public function getStatus0()
{
return $this->hasOne(Status::class, ['id' => 'status']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getProject()
{
return $this->hasOne(Project::class, ['company_id' => 'id']);
}
} }

View File

@ -2,9 +2,11 @@
namespace common\models; namespace common\models;
use common\classes\Debug;
use Yii; use Yii;
use yii\behaviors\TimestampBehavior; use yii\behaviors\TimestampBehavior;
use yii\db\Expression; use yii\db\Expression;
use yii\helpers\ArrayHelper;
/** /**
* This is the model class for table "project". * This is the model class for table "project".
@ -108,4 +110,23 @@ class Project extends \yii\db\ActiveRecord
{ {
return $this->hasMany(ProjectUser::class, ['project_id' => 'id']); return $this->hasMany(ProjectUser::class, ['project_id' => 'id']);
} }
/**
* @return array
*/
public static function getList()
{
return ArrayHelper::map(self::find()->all(), 'id', 'name');
}
public static function getListName()
{
return ArrayHelper::map(self::find()->all(), 'name', 'name');
}
public function getUsersNameList()
{
$model = $this->getProjectUsers()->with('card')->all();
return ArrayHelper::getColumn($model, 'card.fio');
}
} }