add filters, update api, update api docs

This commit is contained in:
iIronside
2021-11-12 14:30:01 +03:00
parent 560de1c05e
commit 12914e9f8f
27 changed files with 8734 additions and 111 deletions

View File

@ -0,0 +1,34 @@
<?php
use backend\modules\questionnaire\models\Questionnaire;
use kartik\select2\Select2;
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model backend\modules\questionnaire\models\AnswerSearch */
/* @var $form yii\widgets\ActiveForm */
?>
<div class="answer-search">
<?php $form = ActiveForm::begin([
'action' => ['index'],
'method' => 'get',
]); ?>
<?= $form->field($model, 'questionnaire')->widget(Select2::className(),[
'data' => Questionnaire::find()->select(['title', 'id'])->indexBy('id')->column(),
'options' => ['placeholder' => 'Выберите анкету'],
'pluginOptions' => [
'allowClear' => true
],
])->label('Анкета') ?>
<div class="form-group">
<?= Html::submitButton('Поиск', ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>

View File

@ -1,12 +1,11 @@
<?php
use backend\modules\questionnaire\models\Question;
use backend\modules\questionnaire\models\Questionnaire;
use common\helpers\AnswerHelper;
use common\helpers\StatusHelper;
use kartik\select2\Select2;
use yii\helpers\Html;
use yii\grid\GridView;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $searchModel backend\modules\questionnaire\models\AnswerSearch */
@ -17,33 +16,32 @@ $this->params['breadcrumbs'][] = $this->title;
?>
<div class="answer-index">
<?php // echo $this->render('_search', ['model' => $searchModel]); ?>
<p>
<?= Html::a('Создать новый ответ', ['create'], ['class' => 'btn btn-success']) ?>
</p>
<!-- --><?php
//
// echo Select2::widget([
// 'model' => \backend\modules\questionnaire\models\Questionnaire::findOne()->where(['id'=>1]),
// 'attribute' => 'state_2',
// 'data' => 1,
// 'options' => ['placeholder' => 'Select a state ...'],
// 'pluginOptions' => [
// 'allowClear' => true
// ],
// ]);
//
// ?>
<?= $this->render('_search_by_questionnaire', [
'model' => $searchModel,
]) ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
// [
// 'filter' => Questionnaire::find()->select(['title', 'id'])->indexBy('id')->column(),
// 'label' => 'Анкета',
// 'attribute' => 'questionnaire',
// 'value' => 'questionnaire.title'
// ],
[
'filter' => Question::find()->select(['question_body', 'id'])->where(['!=', 'question_type_id', '1'])->indexBy('id')->column(),
'filter' => Question::find()->select(['question_body', 'id'])->where(['!=', 'question_type_id', '1'])
->andWhere(['questionnaire_id' => ''])
->indexBy('id')->column(),
// 'filter' => function($model){
// return \yii\helpers\ArrayHelper::getValue(Question::find()->where(['questionnaire_id' => $model->questionnaire_id]), ['id', 'title']) ;
// },
'attribute' => 'question_id',
'value' => 'question.question_body'
],
@ -68,3 +66,4 @@ $this->params['breadcrumbs'][] = $this->title;
],
]); ?>
</div>

View File

@ -42,7 +42,7 @@ $this->params['breadcrumbs'][] = $this->title;
<?= GridView::widget([
'dataProvider' => $questionDataProvider,
'filterModel' => $questionSearchModel,
// 'filterModel' => $questionSearchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'question_body',

View File

@ -0,0 +1,35 @@
<?php
use backend\modules\questionnaire\models\Questionnaire;
use kartik\select2\Select2;
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model backend\modules\questionnaire\models\QuestionSearch */
/* @var $form yii\widgets\ActiveForm */
?>
<div class="question-search">
<?php $form = ActiveForm::begin([
'action' => ['index'],
'method' => 'get',
]); ?>
<?= $form->field($model, 'questionnaire_id')->widget(Select2::className(),[
'data' => Questionnaire::find()->select(['title', 'id'])->indexBy('id')->column(),
'options' => ['placeholder' => 'Выберите анкету'],
'pluginOptions' => [
'allowClear' => true
],
])->label('Анкета') ?>
<div class="form-group">
<?= Html::submitButton('Поиск', ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>

View File

@ -20,6 +20,10 @@ $this->params['breadcrumbs'][] = $this->title;
<?= Html::a('Создать вопрос', ['create'], ['class' => 'btn btn-success']) ?>
</p>
<?= $this->render('_search_by_questionnaire', [
'model' => $searchModel,
]) ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
@ -31,11 +35,11 @@ $this->params['breadcrumbs'][] = $this->title;
'filter' => QuestionType::find()->select(['question_type', 'id'])->indexBy('id')->column(),
'value' => 'questionType.question_type'
],
[
'attribute' => 'questionnaire_id',
'filter' => Questionnaire::find()->select(['title', 'id'])->indexBy('id')->column(),
'value' => 'questionnaire.title',
],
// [
// 'attribute' => 'questionnaire_id',
// 'filter' => Questionnaire::find()->select(['title', 'id'])->indexBy('id')->column(),
// 'value' => 'questionnaire.title',
// ],
'question_priority',
'next_question',
[

View File

@ -72,7 +72,7 @@ $this->params['breadcrumbs'][] = $this->title;
<?= GridView::widget([
'dataProvider' => $answerDataProvider,
'filterModel' => $answerSearchModel,
// 'filterModel' => $answerSearchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'answer_body',

View File

@ -50,7 +50,7 @@ YiiAsset::register($this);
<?= GridView::widget([
'dataProvider' => $questionnaireDataProvider,
'filterModel' => $questionnaireSearchModel,
// 'filterModel' => $questionnaireSearchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'title',

View File

@ -65,7 +65,7 @@ YiiAsset::register($this);
<?= GridView::widget([
'dataProvider' => $questionDataProvider,
'filterModel' => $questionSearchModel,
// 'filterModel' => $questionSearchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'question_body',

View File

@ -0,0 +1,38 @@
<?php
use backend\modules\questionnaire\models\Questionnaire;
use backend\modules\questionnaire\models\UserQuestionnaire;
use kartik\select2\Select2;
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model backend\modules\questionnaire\models\QuestionSearch */
/* @var $form yii\widgets\ActiveForm */
?>
<div class="question-search">
<?php $form = ActiveForm::begin([
'action' => ['index'],
'method' => 'get',
]); ?>
<?= $form->field($model, 'user_questionnaire_uuid')->widget(Select2::className(),[
// 'data' => Questionnaire::find()->select(['title', 'id'])->indexBy('id')->column(),
'data' => Questionnaire::find()->joinWith('userQuestionnaires')->select(['title', 'uuid',])->column(),
'options' => ['placeholder' => 'Выберите анкету'],
'pluginOptions' => [
'allowClear' => true
],
])->label('Анкета') ?>
<div class="form-group">
<?= Html::submitButton('Поиск', ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
<?php

View File

@ -20,6 +20,13 @@ $this->params['breadcrumbs'][] = $this->title;
<?= Html::a('Новый ответ пользователя', ['create'], ['class' => 'btn btn-success']) ?>
</p>
<?php
//echo $this->render('_search_by_questionnaire', [
// 'model' => $searchModel,
// ])
?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,