public function actionUpdateEvaContext($id)
 {
     Yii::log("actionUpdateEvaContext called", "trace", self::LOG_CAT);
     $this->setPageTitle('Update Evaluation Context');
     if (isset($_POST['pageId'])) {
         SystemController::savePage($this->createUrl('updateEvaContext', ['id' => $id]));
     }
     $evaluationHeader = EvaluationHeader::model()->with('evalDetails')->find('t.evalId=:evaId', [':evaId' => $id]);
     //$this->frameworkId = Yii::app()->session['surDesign']['id'];
     $dataArray = [];
     $dataArray['formType'] = 'Update';
     $model = new EvalForm();
     //print_r(FrameworkContext::model()->getFrameworkSummary($this->frameworkId)); die;
     $returnArray = self::getElementsAndDynamicAttributes();
     $elements = $returnArray['elements'];
     $model->setRules($returnArray['rules']);
     $model->setProperties($returnArray['dynamicDataAttributes']);
     $model->setAttributeLabels($returnArray['labels']);
     //print_r($model->attributes); die;
     foreach ($model->attributes as $attributeName => $attributeVal) {
         $attributeNameAndId = explode('_', $attributeName);
         foreach ($evaluationHeader->evalDetails as $evaluationData) {
             if (isset($attributeNameAndId[1]) && $attributeNameAndId[1] == $evaluationData->evalElementsId) {
                 $model->setPropertyName($attributeName, $evaluationData->value);
                 if (DForm::isJson($evaluationData->value)) {
                     $model->setPropertyName($attributeName, json_decode($evaluationData->value));
                 }
                 break;
             }
         }
     }
     $elements['buttons'] = ['updateEvaluation' => ['label' => 'Update evaluation context', 'type' => 'submit']];
     // generate the elements form
     $form = new CForm($elements);
     $form['evaluationHeader']->model = $evaluationHeader;
     $form['evaContext']->model = $model;
     if ($form->submitted('updateEvaluation')) {
         //die('opop');
         $evaluationHeader = $form['evaluationHeader']->model;
         $evaluationHeader->frameworkId = Yii::app()->session['surDesign']['id'];
         $evaluationHeader->userId = Yii::app()->user->id;
         $model->setProperties($_POST['EvalForm']);
         //var_dump($model); die;
         //save the componentHead values
         if ($evaluationHeader->save() && $model->save($evaluationHeader->evalId, false)) {
             //
             if (isset(Yii::app()->session['evaContext'])) {
                 Yii::app()->session->add('evaContext', ['id' => $evaluationHeader->evalId, 'name' => $evaluationHeader->evaluationName, 'questionId' => $evaluationHeader->questionId]);
             }
             Yii::app()->user->setFlash('success', Yii::t("translation", "Evaluation protocol updated successfully"));
             $this->redirect(['listEvaContext']);
             return;
         }
         Yii::app()->user->setFlash('error', Yii::t("translation", "An error occurred when updating the " . "evaluation context, please try again or contact your administrator if the problem persists"));
     }
     $this->docName = 'addEvaContext';
     $page = SystemController::getPageContent($this->docName);
     $this->render('context', ['model' => $model, 'dataArray' => $dataArray, 'form' => $form, 'page' => $page]);
 }