/** * Update the enabled status of the given question. */ public function actionSetQuestionStatus() { if ($model = models\OphCiExamination_InjectionManagementComplex_Question::model()->findByPk((int) @$_POST['id'])) { if (!array_key_exists('enabled', $_POST)) { throw new \Exception('cannot determine status for question'); } if ($_POST['enabled']) { $model->active = true; } else { $model->active = false; } if (!$model->save()) { throw new \Exception('Unable to set question status: ' . print_r($model->getErrors(), true)); } Audit::add('admin', 'set-question-status', $_POST['id'], null, array('module' => 'OphCiExamination', 'model' => 'OphCiExamination_InjectionManagementComplex_Question')); } else { throw new \Exception('Cannot find question with id' . @$_POST['id']); } }
/** * return the questions for a given disorder id * * @param integer $disorder_id * @param array $answered_question_ids * @throws Exception */ public function getInjectionQuestionsForDisorderId($disorder_id, $answered_question_ids = null) { if (!$disorder_id) { throw new Exception('Disorder id required for injection questions'); } $criteria = new \CDbCriteria(); $criteria->condition = 'disorder_id = :disorder_id'; $criteria->params = array(':disorder_id' => $disorder_id); $criteria->order = 'display_order asc'; // get the questions return OphCiExamination_InjectionManagementComplex_Question::model()->activeOrPk($answered_question_ids)->findAll($criteria); }