public function actionGetQuestionGroups()
 {
     // get question groups
     $rsQuestionGroups = EvaQuestionGroups::model()->find("section='evaCriteriaMethod'");
     $questionGroups = json_decode($rsQuestionGroups->questions);
     //Get questions
     $rsQuestions = EvaluationQuestion::model()->findAll(['condition' => "flag='final'"], ['select' => "*, CAST(`questionNumber` as SIGNED) AS castedColumn"]);
     $panels = [];
     foreach ($questionGroups as $group => $questions) {
         //print_r($questions); die;
         //asort($questions);
         $panels['Group ' . $group] = '<ul class="rb">';
         foreach ($rsQuestions as $evaQuestion) {
             if (in_array($evaQuestion->evalQuestionId, $questions)) {
                 $panels['Group ' . $group] .= '<li>' . $evaQuestion->questionNumber . ' ' . $evaQuestion->question . '</li>';
             }
         }
         $panels['Group ' . $group] .= '</ul>';
     }
     //		print_r($panels); die;
     $this->renderPartial('questionGroupPopup', ['panels' => $panels], false, true);
 }
예제 #2
0
 /**
  * actionEvalQuestionList
  * @param string $questionId
  */
 public function actionEvalQuestionList($questionId = null)
 {
     Yii::log("actionEvalQuestionList called", "trace", self::LOG_CAT);
     $this->setPageTitle('Select evaluation question');
     $model = EvaluationHeader::model()->findByPk($this->evaContextId);
     //print_r($_POST); die;
     if (!empty($_POST['EvaluationHeader']['questionId'])) {
         $model->questionId = $_POST['EvaluationHeader']['questionId'];
         $model->update();
         $session = Yii::app()->session;
         $sessionEvaParams = $session['evaContext'];
         //print_r(Yii::app()->session['evaContext']); die;
         $sessionEvaParams['questionId'] = $model->questionId;
         $session['evaContext'] = $sessionEvaParams;
         Yii::app()->user->setFlash('success', 'Evaluation question saved successfully');
         if (isset($_POST['next'])) {
             $this->redirect('selectComponents');
             return;
         }
     }
     //		$model = new EvaluationQuestion();
     $questionCriteria = new CDbCriteria();
     $questionCriteria->select = "*, CAST(`questionNumber` as SIGNED) AS castedColumn";
     $questionCriteria->condition = "flag='final'";
     $questionCriteria->order = 'castedColumn ASC, questionNumber ASC';
     //		$questionsRs = EvaQuestionHasCriteriaAndMethod::model()->with(['question', 'method', 'criteria'])->findAll();
     $questionsRs = EvaluationQuestion::model()->with(['methods', 'criteria'])->findAll($questionCriteria);
     //print_r($questionsRs); die;
     $questionArray = [];
     foreach ($questionsRs as $questionData) {
         $questionArray[$questionData->evalQuestionId] = ['questionId' => $questionData->evalQuestionId, 'questionNumber' => $questionData->questionNumber, 'question' => $questionData->question, 'method' => '', 'criteria' => ''];
         foreach ($questionData->methods as $evaMethod) {
             $questionArray[$questionData->evalQuestionId]['method'] .= $evaMethod->name . ', ';
         }
         foreach ($questionData->criteria as $evaCriteria) {
             $questionArray[$questionData->evalQuestionId]['criteria'] .= $evaCriteria->name . ', ';
         }
         $questionArray[$questionData->evalQuestionId]['criteria'] = rtrim($questionArray[$questionData->evalQuestionId]['criteria'], ", ");
         $questionArray[$questionData->evalQuestionId]['method'] = rtrim($questionArray[$questionData->evalQuestionId]['method'], ", ");
     }
     //		$currentQuestion = EvaluationHeader::model()->findByPk($this->evaContextId);
     //		$model->question = $currentQuestion->questionId;
     $elements = ContextController::getDefaultElements();
     $elements['title'] = '<h3>Select Evaluation Question</h3>';
     $elements['elements'] = ['<table id="questionSelect" width="100%" border="0" cellspacing="0" cellpadding="0">', '<thead><tr></tr><th></th><th>Question Number</th><th>Question</th><th>Evaluation Criteria</th>' . '<th>Evaluation Method</th></tr></thead>', '<tbody></tbody>', '</table>'];
     $elements['buttons'] = ["save" => ["label" => 'Save', 'type' => 'submit'], 'next' => ['label' => 'Next', 'type' => 'submit']];
     if (isset($questionId)) {
         $model->questionId = $questionId;
     }
     if (!isset($model->questionId)) {
         $model->questionId = 0;
     }
     $form = new CForm($elements, $model);
     $this->docName = 'evalQuestionList';
     if (isset($_POST['pageId'])) {
         SystemController::savePage('evalQuestionList');
     }
     $page = SystemController::getPageContent($this->docName);
     $this->render('evaQuestionList', ['form' => $form, 'questionId' => $model->questionId, 'questions' => $questionArray, 'page' => $page]);
 }
 /**
  * @param $questions
  * @return array
  */
 private function getAssociationData($questions)
 {
     $questionArray = json_decode($questions, true);
     $econMethods = array_keys($questionArray);
     $methodQuestions = [];
     foreach ($questionArray as $questionGroup) {
         //print_r($questionArray); die;
         $methodQuestions = array_merge($methodQuestions, $questionGroup);
     }
     //print_r($methodQuestions); die;
     $questionCriteria = new CDbCriteria();
     $questionCriteria->addInCondition('evalQuestionId', $methodQuestions);
     $rsQuestions = EvaluationQuestion::model()->findAll($questionCriteria);
     $econMethodCriteria = new CDbCriteria();
     $econMethodCriteria->addInCondition('id', $econMethods);
     $rsEconMethod = EconEvaMethods::model()->findAll($econMethodCriteria);
     $associationData = [];
     foreach ($rsEconMethod as $methodKey => $method) {
         //print_r($questionArray);
         //print_r($method);
         $associationData[$methodKey]['methodName'] = $method->buttonName;
         $associationData[$methodKey]['methodId'] = $method->id;
         $associationData[$methodKey]['questions'] = '<ul>';
         foreach ($rsQuestions as $question) {
             if (isset(array_flip($questionArray[$method->id])[$question->evalQuestionId])) {
                 $associationData[$methodKey]['questions'] .= CHtml::tag('li', [], $question->questionNumber . ' ' . $question->question);
             }
         }
         $associationData[$methodKey]['questions'] .= '</ul>';
     }
     return $associationData;
 }
예제 #4
0
파일: _form.php 프로젝트: schrapps/risksur
<?php

/* @var $this EvaQuestionGroupsController */
/* @var $model EvaQuestionGroups */
/* @var $form CActiveForm */
?>

<div class="form">

<?php 
$form = $this->beginWidget('CActiveForm', array('id' => 'eva-question-groups-form', 'enableAjaxValidation' => false));
$evaluationQuestions = CHtml::listData(EvaluationQuestion::model()->findAll('flag=:flag', [':flag' => 'final']), 'evalQuestionId', function ($question) {
    return $question->questionNumber . ' ' . $question->question;
});
$economicMethods = CHtml::listData(EconEvaMethods::model()->findAll(), 'id', 'buttonName');
?>

	<p class="note">Fields with <span class="required">*</span> are required.</p>

	<?php 
echo $form->errorSummary($model);
?>

	<div class="row">
		<?php 
echo $form->labelEx($model, 'method');
?>
		<?php 
echo $form->dropdownlist($model, 'method', $economicMethods, ['class' => 'chozen']);
?>
		<?php 
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return EvaluationQuestion the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = EvaluationQuestion::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }