changing foreign key in user_response from id to uuid, completed add greedy loading, some refactoring

This commit is contained in:
iIronside
2021-11-09 17:41:44 +03:00
parent de90b3178e
commit 560de1c05e
29 changed files with 3539 additions and 202 deletions

View File

@ -1,29 +1,23 @@
<?php
use backend\modules\questionnaire\models\Questionnaire;
use backend\modules\questionnaire\models\Question;
use backend\modules\questionnaire\models\UserQuestionnaire;
use common\helpers\AnswerHelper;
use common\models\User;
use kartik\depdrop\DepDrop;
use yii\helpers\ArrayHelper;
use yii\helpers\Html;
use yii\grid\GridView;
use yii\helpers\Url;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $searchModel backend\modules\questionnaire\models\UserResponseSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */
/* @var $model backend\modules\questionnaire\models\UserResponse */
/* @var $questionnaire backend\modules\questionnaire\models\Questionnaire */
$this->title = 'Ответы пользователей';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="user-responses-index">
<div class="user-response-index">
<p>
<?= Html::a('Создать новый ответ пользователя', ['create'], ['class' => 'btn btn-success']) ?>
<?= Html::a('Новый ответ пользователя', ['create'], ['class' => 'btn btn-success']) ?>
</p>
<?= GridView::widget([
@ -31,39 +25,34 @@ $this->params['breadcrumbs'][] = $this->title;
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'attribute' => 'user_questionnaire_id',
'filter' => Questionnaire::find()->select(['title', 'id'])->indexBy('id')->column(),
'value' => function($model){
return $model->getQuestionnaireTitle();
}
],
[
'attribute' => 'user_id',
'filter' => User::find()->select(['username', 'id'])->indexBy('id')->column(),
'value' => 'user.username',
],
[
'attribute' => 'question_id',
'filter' => Question::find()->select(['question_body', 'id'])->indexBy('id')->column(),
'value' => 'question.question_body',
],
'response_body',
'created_at',
'updated_at',
[
'attribute' => 'Тип вопроса',
'value' => function($model){
return $model->getQuestionType();
}
],
[
'attribute' => 'answer_flag',
'filter' => AnswerHelper::answerFlagsList(),
'attribute' =>'answer_flag',
'format' => 'raw',
'filter' => AnswerHelper::answerFlagsList(),
'value' => function ($model) {
return AnswerHelper::answerFlagLable($model->answer_flag);
return AnswerHelper::answerStatusLabel($model->answer_flag);
},
],
[
'attribute' => 'user_questionnaire_uuid',
'filter' => UserQuestionnaire::find()->select(['uuid', 'id'])->indexBy('id')->column(),
'value' => 'questionnaire.title',
],
['class' => 'yii\grid\ActionColumn'],
],
]); ?>