Example #1
0
 public function run()
 {
     $category = MappingCategories::findOne($this->mappingCategoryId);
     $route = Yii::$app->controller->route;
     $request_id = Yii::$app->request->get('id');
     $ignore_route = array('site/changepassword', 'mapping/index');
     if ($route == 'mapping/update-answer' && $request_id == $this->mappingCategoryId || in_array($route, $ignore_route)) {
         return false;
     } else {
         if ($category) {
             return $this->render('mapping/modal', ['category' => $category]);
         }
     }
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = MappingCategories::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'duration' => $this->duration, 'sort_order' => $this->sort_order, 'is_active' => $this->is_active]);
     $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'attributes_id', $this->attributes_id]);
     return $dataProvider;
 }
Example #3
0
 /**
  * @return array|\yii\db\ActiveRecord[]
  */
 public function getCategories($options = array(), $asArray = true, $all = true)
 {
     //if (empty($this->categories)) {
     $categories = MappingCategories::find()->orderBy('sort_order, name');
     if (!empty($options)) {
         $categories->where($options);
     }
     if ($asArray) {
         $categories->asArray();
     }
     if ($all == true) {
         $this->categories = $categories->all();
     } else {
         $this->categories = $categories->one();
     }
     //}
     return $this->categories;
 }
Example #4
0
 /**
  * Displays a single Members model.
  * @param integer $id
  * @return mixed
  */
 public function actionView($id)
 {
     // get mapping category
     //$pageModel = CmsPages::findOne(['id' => GeneralSettings::findOne(['name' => 'mapping_page_id'])->value]);
     //$categoryModel = MappingCategories::findOne($pageModel->mapping_id);
     $categoriesModel = MappingCategories::findAll(['is_active' => 1]);
     // get questions answers
     /*$questionsAnswers = new ActiveDataProvider([
           'query' => $categoryModel->getQuestions()->with('questionsAnswers'),
       ]);*/
     // get attributes Answers
     /*$attributesAnswers = new ActiveDataProvider([
           'query' => MembersAttributes::find($categoryModel->attributes_id)->with('attributesAnswers'),
       ]);*/
     $weightTracker = new ActiveDataProvider(['query' => MembersWeightTracker::find(['member_id' => $id]), 'sort' => ['defaultOrder' => ['created_at' => SORT_DESC]]]);
     $diaryNutritions = new ActiveDataProvider(['query' => DiaryNutrition::find()->where(['member_id' => $id])->select(["*, DATE_FORMAT(created_at,'%m-%d-%Y') as c"])->groupBy(['c']), 'pagination' => ['pageSize' => 5, 'validatePage' => false], 'sort' => ['defaultOrder' => ['created_at' => SORT_DESC]]]);
     $diaryTraining = new ActiveDataProvider(['query' => DiaryTraining::find()->where(['member_id' => $id])->select(["*, DATE_FORMAT(created_at,'%m-%d-%Y') as c"])->groupBy(['c']), 'pagination' => ['pageSize' => 5, 'validatePage' => false], 'sort' => ['defaultOrder' => ['created_at' => SORT_DESC]]]);
     return $this->render('view', ['model' => $this->findModel($id), 'categoriesModel' => $categoriesModel, 'weightTracker' => $weightTracker, 'diaryNutritions' => $diaryNutritions, 'diaryTraining' => $diaryTraining]);
 }
Example #5
0
 public function actionMapping_old_171115()
 {
     if (!Yii::$app->user->isGuest) {
         $user = Yii::$app->getUser()->getIdentity();
         //@TODO new logic to find out if there are answers
         /*$answers = MembersQuestionsAnswers::find(['member_id' => $user->id])->count();
         
                     if ($answers > 0) {
                         $user->status = User::STATUS_ACTIVE;
         
                         if ($user->save()) {
                             return Yii::$app->response->redirect(array('members/index'));
                         } else {
                             Yii::$app->getSession()->setFlash('warning', Yii::t('errors', 'Can not update user status. Please contact system administrator'));
                         }
                     }*/
         $settingsModel = GeneralSettings::findOne(['name' => 'mapping_page_id']);
         $pageModel = CmsPages::findOne(['id' => $settingsModel->value]);
         $categoryModel = MappingCategories::findOne(['id' => $pageModel->mapping_id]);
         $attributesModel = MembersAttributes::findAll(['id' => $categoryModel->attributes_id]);
         $questionsModel = MappingQuestions::find(['category_id' => $categoryModel->id])->with('fieldsTypes')->all();
         $questionsAnswers = new MembersQuestionsAnswers($pageModel->category_id);
         $attributesAnswers = new MembersAttributesAnswers($categoryModel->attributes_id);
         if (Yii::$app->request->post()) {
             $mappingQuestionsSaved = false;
             $mappingAttributesSaved = false;
             if ($questionsAnswers->load(Yii::$app->request->post()) && $questionsAnswers->validate()) {
                 foreach ($questionsAnswers->attributes as $attribute_id => $attribute) {
                     $attributesArray = explode('_', $attribute_id);
                     if (count($attributesArray) > 1) {
                         list($name, $id) = $attributesArray;
                         if (!($model = MembersQuestionsAnswers::findOne(['question_id' => $id, 'member_id' => Yii::$app->getUser()->id]))) {
                             $model = new MembersQuestionsAnswers();
                         }
                         $has_option = false;
                         if ($questionsModel = MappingQuestions::findOne($id)) {
                             $type_id = $questionsModel->type_id;
                             $has_option = FieldsTypes::findOne($type_id)->has_options;
                         }
                         if ($has_option) {
                             $model->value = '';
                             $model->option_id = '';
                             if ($optionsModel = MappingQuestionsToOptions::findOne($questionsAnswers->{$attribute_id})) {
                                 $model->value = $optionsModel->title;
                                 $model->option_id = $optionsModel->id;
                             }
                         } else {
                             $model->value = $questionsAnswers->{$attribute_id};
                         }
                         $model->question_id = $id;
                         $model->member_id = Yii::$app->getUser()->id;
                         $model->save();
                     }
                 }
                 $mappingQuestionsSaved = true;
             }
             if ($attributesAnswers->load(Yii::$app->request->post()) && $attributesAnswers->validate()) {
                 foreach ($attributesAnswers->attributes as $attribute_id => $attribute) {
                     $attributesArray = explode('_', $attribute_id);
                     if (count($attributesArray) > 1) {
                         list($name, $id) = $attributesArray;
                         if (!($model = MembersAttributesAnswers::findOne(['attribute_id' => $id, 'member_id' => Yii::$app->getUser()->id]))) {
                             $model = new MembersAttributesAnswers();
                         }
                         $has_option = false;
                         if ($questionsModel = MembersAttributes::findOne($id)) {
                             $type_id = $questionsModel->type_id;
                             $has_option = FieldsTypes::findOne($type_id)->has_options;
                             $filedTypeTitle = FieldsTypes::findOne($type_id)->title;
                         }
                         if ($has_option) {
                             $model->value = '';
                             $model->option_id = '';
                             if ($optionsModel = MembersAttributesToOptions::findOne($attributesAnswers->{$attribute_id})) {
                                 $model->value = $optionsModel->title;
                                 $model->option_id = $optionsModel->id;
                             }
                         } else {
                             $model->value = $attributesAnswers->{$attribute_id};
                             if (isset($filedTypeTitle) && $filedTypeTitle == 'Date Picker') {
                                 //@TODO replace datepicker with some database constatnt value;
                                 $model->value = strtotime($attributesAnswers->{$attribute_id});
                             }
                         }
                         $model->attribute_id = $id;
                         $model->member_id = Yii::$app->getUser()->id;
                         $model->save();
                     }
                 }
                 $mappingAttributesSaved = true;
             }
             if ($mappingQuestionsSaved && $mappingAttributesSaved) {
                 $user = Yii::$app->getUser()->getIdentity();
                 $user->status = User::STATUS_ACTIVE;
                 if ($user->save()) {
                     return Yii::$app->response->redirect(array('members'));
                 } else {
                     Yii::$app->getSession()->setFlash('warning', Yii::t('errors', 'Can not save mapping data. Please contact system administrator'));
                 }
             } else {
                 $categoryModel = MappingCategories::findOne(['id' => $pageModel->category_id]);
                 $attributesModel = MembersAttributes::find(['id in ' => $categoryModel->attributes_id])->with('fieldsTypes')->all();
                 $questionsModel = MappingQuestions::find(['category_id' => $categoryModel->id])->with('fieldsTypes')->all();
                 return $this->render('mapping', ['questionsAnswers' => $questionsAnswers, 'attributesAnswers' => $attributesAnswers, 'pageModel' => $pageModel, 'categoryModel' => $categoryModel, 'questionsModel' => $questionsModel, 'attributesModel' => $attributesModel]);
             }
         } else {
             return $this->render('mapping', ['questionsAnswers' => $questionsAnswers, 'attributesAnswers' => $attributesAnswers, 'pageModel' => $pageModel, 'categoryModel' => $categoryModel, 'questionsModel' => $questionsModel, 'attributesModel' => $attributesModel]);
         }
     } else {
         return Yii::$app->response->redirect(array('site/login'));
     }
 }
Example #6
0
    $category_options['options'] = [$model->category_id => ['Selected' => 'selected']];
    $questions_condition['category_id'] = $model->category_id;
    $question_options['options'] = [$model->question_id => ['Selected' => 'selected']];
    $answers_condition['question_id'] = $model->question_id;
    $answers_options['options'] = [$model->options_id => ['Selected' => 'selected']];
}
$question_items = array();
$options_items = array();
if (!$model->isNewRecord) {
    $question_items = \yii\helpers\ArrayHelper::map(\backend\models\MappingQuestions::find()->joinWith('fieldsTypes')->where($questions_condition)->all(), 'id', 'title');
    $options_items = \yii\helpers\ArrayHelper::map(\backend\models\MappingQuestionsToOptions::find()->where($answers_condition)->all(), 'id', 'title');
}
?>

    <?php 
echo $form->field($model, 'category_id')->dropDownList(\yii\helpers\ArrayHelper::map(\backend\models\MappingCategories::find()->all(), 'id', 'name'), $category_options)->label(Yii::t('backend', 'Select Categories'));
?>

    <?php 
echo $form->field($model, 'question_id')->dropDownList($question_items, $question_options)->label(Yii::t('backend', 'Select Question'));
?>

    <?php 
echo $form->field($model, 'options_id')->dropDownList($options_items, $answers_options)->label(Yii::t('backend', 'Select Answers'));
?>

    <?php 
echo $form->field($model, 'progress')->textInput();
?>

    <?php 
Example #7
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getCategory()
 {
     return $this->hasOne(MappingCategories::className(), ['id' => 'category_id']);
 }
Example #8
0
 /**
  * Displays homepage.
  *
  * @return mixed
  */
 public function actionIndex()
 {
     if (!Yii::$app->user->isGuest) {
         Yii::$app->MappingComponent->process();
         $steps = Yii::$app->MappingComponent->getSteps();
         if (empty($steps['view'])) {
             $user = Yii::$app->getUser()->getIdentity();
             $user->status = User::STATUS_ACTIVE;
             if ($user->save()) {
                 return Yii::$app->response->redirect(array('members/index'));
             } else {
                 Yii::$app->getSession()->setFlash('warning', Yii::t('errors', 'Can not update user status. Please contact system administrator'));
             }
         }
         $settingsModel = GeneralSettings::findOne(['name' => 'mapping_page_id']);
         //$pageModel = CmsPages::findOne(['id' => $settingsModel->value]);
         return $this->render('mapping', ['steps' => $steps]);
         $user = Yii::$app->getUser()->getIdentity();
         //@TODO new logic to find out if there are answers
         /*$answers = MembersQuestionsAnswers::find(['member_id' => $user->id])->count();
         
                     if ($answers > 0) {
                         $user->status = User::STATUS_ACTIVE;
         
                         if ($user->save()) {
                             return Yii::$app->response->redirect(array('members/index'));
                         } else {
                             Yii::$app->getSession()->setFlash('warning', Yii::t('errors', 'Can not update user status. Please contact system administrator'));
                         }
                     }*/
         if (Yii::$app->request->post()) {
             $mappingQuestionsSaved = false;
             if ($questionsAnswers->load(Yii::$app->request->post()) && $questionsAnswers->validate()) {
                 foreach ($questionsAnswers->attributes as $attribute_id => $attribute) {
                     $attributesArray = explode('_', $attribute_id);
                     if (count($attributesArray) > 1) {
                         list($name, $id) = $attributesArray;
                         if (!($model = MembersQuestionsAnswers::findOne(['question_id' => $id, 'member_id' => Yii::$app->getUser()->id]))) {
                             $model = new MembersQuestionsAnswers();
                         }
                         $has_option = false;
                         if ($questionsModel = MappingQuestions::findOne($id)) {
                             $type_id = $questionsModel->type_id;
                             $has_option = FieldsTypes::findOne($type_id)->has_options;
                         }
                         if ($has_option) {
                             $model->value = '';
                             $model->option_id = '';
                             if ($optionsModel = MappingQuestionsToOptions::findOne($questionsAnswers->{$attribute_id})) {
                                 $model->value = $optionsModel->title;
                                 $model->option_id = $optionsModel->id;
                             }
                         } else {
                             $model->value = $questionsAnswers->{$attribute_id};
                         }
                         $model->question_id = $id;
                         $model->member_id = Yii::$app->getUser()->id;
                         $model->save();
                     }
                 }
                 $mappingQuestionsSaved = true;
             }
             if ($mappingQuestionsSaved) {
                 $user = Yii::$app->getUser()->getIdentity();
                 //$user->status = User::STATUS_ACTIVE;
                 if ($user->save()) {
                     return Yii::$app->response->redirect(array('members'));
                 } else {
                     Yii::$app->getSession()->setFlash('warning', Yii::t('errors', 'Can not save mapping data. Please contact system administrator'));
                 }
             }
         }
         //$categoryModel = MappingCategories::findOne(['id' => $pageModel->mapping_id]);
         $categoryModel = MappingCategories::find()->where(['is_active' => 1])->orderBy('sort_order')->all();
         $questionsModel = \backend\models\MappingQuestions::find()->where(['category_id' => $category->id])->with('fieldsTypes')->all();
         //$questionsModel = MappingQuestions::find()->where(['category_id' => $categoryModel->id])->with('fieldsTypes')->all();
         return $this->render('mapping', ['questionsAnswers' => $questionsAnswers, 'pageModel' => $pageModel, 'categoryModel' => $categoryModel]);
     } else {
         return Yii::$app->response->redirect(array('site/login'));
     }
 }
Example #9
0
<?php

use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\models\MappingQuestions */
$this->title = Yii::t('backend', 'Create Question');
$this->params['breadcrumbs'][] = ['label' => Yii::t('backend', 'Mapping Categories'), 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => \backend\models\MappingCategories::findOne($category_id)->name . ' ' . Yii::t('backend', 'Questions'), 'url' => ['mapping-categories/view', 'id' => $category_id]];
$this->params['breadcrumbs'][] = $this->title;
$this->registerJsFile(Yii::getAlias('@web/js/questions.js'), ['depends' => ['yii\\web\\YiiAsset', 'yii\\bootstrap\\BootstrapAsset']]);
?>
<div class="mapping-questions-create">

    <h1><?php 
echo Html::encode($this->title);
?>
</h1>

    <?php 
echo $this->render('_form', ['model' => $model, 'category_id' => $category_id, 'optionsDataProvider' => $optionsDataProvider, 'optionsModel' => $optionsModel, 'languages' => $languages, 'languageDefault' => $languageDefault]);
?>

</div>
 /**
  * Finds the MappingCategories model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return MappingCategories the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = MappingCategories::find()->where(['id' => $id])->multilingual()->one()) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Example #11
0
use yii\helpers\Html;
use yii\grid\GridView;
use backend\models\MappingCategoriesLang;
use backend\models\MappingCategories;
/* @var $this yii\web\View */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = Yii::t('backend', 'Mapping Categories');
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="mapping-categories-index">

    <h1><?php 
echo Html::encode($this->title);
?>
</h1>

    <p>
        <?php 
echo Html::a(Yii::t('backend', 'Create Category'), ['create'], ['class' => 'btn btn-success']);
?>
    </p>

    <?php 
?>
    <?php 
echo GridView::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [['class' => 'yii\\grid\\SerialColumn'], 'name', array('attribute' => 'is_active', 'filter' => Html::activeDropDownList($searchModel, 'is_active', MappingCategories::dropdownActive(), ['class' => 'form-control', 'prompt' => Yii::t('backend', 'All')]), 'format' => 'boolean'), 'duration', 'sort_order', ['class' => 'yii\\grid\\ActionColumn']]]);
?>

</div>