add portfolio projects
This commit is contained in:
@ -6,11 +6,11 @@ use backend\modules\card\models\ResumeTemplate;
|
||||
use backend\modules\card\models\UserCard;
|
||||
use backend\modules\card\models\UserCardSearch;
|
||||
use backend\modules\settings\models\Skill;
|
||||
use common\classes\Debug;
|
||||
use common\models\AchievementUserCard;
|
||||
use common\models\CardSkill;
|
||||
use common\models\FieldsValueNew;
|
||||
use common\models\User;
|
||||
use common\models\UserCardPortfolioProjects;
|
||||
use kartik\mpdf\Pdf;
|
||||
use Yii;
|
||||
use yii\data\ActiveDataProvider;
|
||||
@ -118,6 +118,13 @@ class UserCardController extends Controller
|
||||
]
|
||||
]);
|
||||
|
||||
$portfolioProjects = new ActiveDataProvider([
|
||||
'query' => UserCardPortfolioProjects::find()->where(['card_id' => $id]),
|
||||
'pagination' => [
|
||||
'pageSize' => 200,
|
||||
]
|
||||
]);
|
||||
|
||||
return $this->render('view', [
|
||||
'model' => $this->findModel($id),
|
||||
'modelFieldValue' => $dataProvider,
|
||||
@ -125,6 +132,7 @@ class UserCardController extends Controller
|
||||
'achievements' => $achievements,
|
||||
'userData' => User::findOne($id_current_user),
|
||||
'changeDataProvider' => $changeDataProvider,
|
||||
'portfolioProjects' => $portfolioProjects
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -2,16 +2,11 @@
|
||||
|
||||
namespace backend\modules\card\models;
|
||||
|
||||
use backend\modules\achievements\models\Achievement;
|
||||
use Common\Behaviors\LogBehavior;
|
||||
use common\models\AchievementUserCard;
|
||||
use Yii;
|
||||
use backend\modules\settings\models\Skill;
|
||||
use common\classes\Debug;
|
||||
use common\models\CardSkill;
|
||||
use common\models\User;
|
||||
use common\models\FieldsValue;
|
||||
use common\models\FieldsValueNew;
|
||||
use common\models\UserCardPortfolioProjects;
|
||||
use Yii;
|
||||
use yii\helpers\ArrayHelper;
|
||||
|
||||
class UserCard extends \common\models\UserCard
|
||||
@ -19,6 +14,7 @@ class UserCard extends \common\models\UserCard
|
||||
public $fields;
|
||||
public $skill;
|
||||
public $achievements;
|
||||
public $portfolioProjects;
|
||||
|
||||
public function init()
|
||||
{
|
||||
@ -79,6 +75,40 @@ class UserCard extends \common\models\UserCard
|
||||
if (!empty($achievements)) {
|
||||
$this->achievements = $achievements;
|
||||
}
|
||||
|
||||
/** @var UserCardPortfolioProjects[] $portfolioProjects */
|
||||
$portfolioProjects = UserCardPortfolioProjects::find()
|
||||
->where(['card_id' => \Yii::$app->request->get('id')])
|
||||
->all();
|
||||
|
||||
$array = [];
|
||||
if (!empty($portfolioProjects)) {
|
||||
foreach ($portfolioProjects as $item) {
|
||||
array_push(
|
||||
$array,
|
||||
[
|
||||
'id' => $item->id,
|
||||
'title' => $item->title,
|
||||
'description' => $item->description,
|
||||
'main_stack' => $item->main_stack,
|
||||
'additional_stack' => $item->additional_stack,
|
||||
'link' => $item->link
|
||||
]
|
||||
);
|
||||
}
|
||||
$this->portfolioProjects = $array;
|
||||
} else {
|
||||
$this->portfolioProjects = [
|
||||
[
|
||||
'id' => null,
|
||||
'title' => null,
|
||||
'description' => null,
|
||||
'main_stack' => null,
|
||||
'additional_stack' => null,
|
||||
'link' => null
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function behaviors()
|
||||
@ -135,6 +165,22 @@ class UserCard extends \common\models\UserCard
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists('portfolioProjects', $post) && is_array($post['portfolioProjects'])){
|
||||
UserCardPortfolioProjects::deleteAll(['card_id' => $this->id]);
|
||||
|
||||
foreach ($post['portfolioProjects'] as $item) {
|
||||
$portfolioProject = new UserCardPortfolioProjects();
|
||||
$portfolioProject->card_id = $this->id;
|
||||
$portfolioProject->title = $item['title'];
|
||||
$portfolioProject->description = $item['description'];
|
||||
$portfolioProject->main_stack = $item['main_stack'];
|
||||
$portfolioProject->additional_stack = $item['additional_stack'];
|
||||
$portfolioProject->link = $item['link'];
|
||||
|
||||
$portfolioProject->save();
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists('achievements', $post) && is_array($post['achievements'])){
|
||||
AchievementUserCard::deleteAll(['user_card_id' => $this->id]);
|
||||
|
||||
|
@ -223,6 +223,60 @@ use yii\widgets\ActiveForm;
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<?= $form->field($model, 'portfolioProjects')->widget(MultipleInput::class, [
|
||||
'cloneButton' => true,
|
||||
'columns' => [
|
||||
[
|
||||
'name' => 'title',
|
||||
'type' => 'textInput',
|
||||
'title' => 'Название',
|
||||
'defaultValue' => null,
|
||||
'options' => ['prompt' => 'Заполните']
|
||||
],
|
||||
[
|
||||
'name' => 'description',
|
||||
'type' => 'textarea',
|
||||
'title' => 'Описание',
|
||||
'defaultValue' => null,
|
||||
'options' => [
|
||||
'prompt' => 'Заполните',
|
||||
'rows' => '3'
|
||||
]
|
||||
],
|
||||
[
|
||||
'name' => 'main_stack',
|
||||
'type' => 'dropDownList',
|
||||
'title' => 'Основная технология',
|
||||
'defaultValue' => null,
|
||||
'items' => \yii\helpers\ArrayHelper::map(
|
||||
\backend\modules\settings\models\Skill::find()->all(),
|
||||
'id',
|
||||
'name'
|
||||
),
|
||||
'options' => ['prompt' => 'Выберите']
|
||||
],
|
||||
[
|
||||
'name' => 'additional_stack',
|
||||
'type' => 'textInput',
|
||||
'title' => 'Используемые технологии',
|
||||
'defaultValue' => null,
|
||||
'options' => ['prompt' => 'Заполните']
|
||||
],
|
||||
[
|
||||
'name' => 'link',
|
||||
'type' => 'textInput',
|
||||
'title' => 'Ссылка',
|
||||
'defaultValue' => null,
|
||||
'options' => ['prompt' => 'Заполните']
|
||||
],
|
||||
],
|
||||
])->label('Проекты в портфолио');
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<?= $form->field($model, 'fields')->widget(MultipleInput::class, [
|
||||
|
@ -1,7 +1,6 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\helpers\Url;
|
||||
use yii\grid\GridView;
|
||||
use yii\widgets\DetailView;
|
||||
|
||||
@ -14,6 +13,7 @@ use yii\widgets\DetailView;
|
||||
/* @var $achievement \common\models\Achievement */
|
||||
/* @var $modelFieldValue yii\data\ActiveDataProvider */
|
||||
/* @var $changeDataProvider yii\data\ActiveDataProvider */
|
||||
/* @var $portfolioProjects yii\data\ActiveDataProvider */
|
||||
|
||||
$this->title = $model->fio;
|
||||
$this->params['breadcrumbs'][] = ['label' => 'Профили', 'url' => ['index']];
|
||||
@ -127,6 +127,22 @@ $this->params['breadcrumbs'][] = $this->title;
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<h2>Проекты в портфолио</h2>
|
||||
<?= GridView::widget([
|
||||
'dataProvider' => $portfolioProjects,
|
||||
'layout' => "{items}",
|
||||
'columns' => [
|
||||
'title',
|
||||
'description',
|
||||
[
|
||||
'attribute' => 'main_stack',
|
||||
'value' => 'skill.name'
|
||||
],
|
||||
'additional_stack',
|
||||
'link:url',
|
||||
],
|
||||
]); ?>
|
||||
|
||||
<h2>Дополнительные сведения</h2>
|
||||
|
||||
<?= GridView::widget([
|
||||
|
Reference in New Issue
Block a user