/**
  * Creates a new SurveyHasParticipant model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new SurveyHasParticipant();
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['view', 'Survey_id' => $model->Survey_id, 'Participant_id' => $model->Participant_id]);
     } else {
         return $this->render('create', ['model' => $model]);
     }
 }
Esempio n. 2
0
 /**
  * Displays a single Survey model.
  * @param integer $id
  * @param integer $Administrator_id
  * @return mixed
  */
 public function actionView($id)
 {
     $validate = false;
     $model = $this->findModel($id);
     if (Yii::$app->user->can('surveyDo') && !SurveyHasParticipant::checkParticipantHasDone($id) && $model->is_enable == 1) {
         $validate = true;
     }
     if (Yii::$app->user->can('surveyEdit')) {
         $validate = true;
     }
     if ($validate) {
         //The permission name
         $questionModels = [];
         $questions = Question::getAllQuestionBySurveyId($model->id);
         foreach ($questions as $row) {
             $question = Question::findOne(['id' => $row['id']]);
             if ($question->required == 1) {
                 $question->temp_input_required = null;
             }
             if (TextBox::checkIsTextBoxByQuestionId($row['id'])) {
                 $question->temp_type = 0;
                 array_push($questionModels, $question);
                 continue;
             }
             if (Checkbutton::checkIsCheckBoxByQuestionId($row['id'])) {
                 $question->temp_type = 1;
                 array_push($questionModels, $question);
                 continue;
             }
             if (RadioButton::checkIsRadioButtonByQuestionId($row['id'])) {
                 $question->temp_type = 2;
                 array_push($questionModels, $question);
                 continue;
             }
         }
         $post = Yii::$app->request->post();
         if (Model::loadMultiple($questionModels, $post)) {
             foreach ($questionModels as $row) {
                 if ($row['required'] == 1) {
                     $input = $row['temp_input_required'];
                 } else {
                     $input = $row['temp_input'];
                     if ($input == '') {
                         continue;
                     }
                 }
                 if ($row['temp_type'] == 0) {
                     $respond = new TextResponse();
                     $respond->content = $input;
                     $respond->TextBox_id = $row['id'];
                     $respond->save();
                 }
                 if ($row['temp_type'] == 1) {
                     foreach ($input as $checked) {
                         Checkbutton::increaseOptionById($checked);
                     }
                 }
                 if ($row['temp_type'] == 2) {
                     Radiobutton::increaseOptionById($input);
                 }
             }
             $participant = new SurveyHasParticipant();
             $participant->Participant_id = Yii::$app->user->id;
             $participant->Survey_id = $model->id;
             $participant->datetime = date("Y-m-d H:i:s");
             $participant->save();
             \app\models\User::addScore(5, Yii::$app->user->id);
             return $this->redirect(['index', 'done' => true]);
         } else {
             //die(var_dump($questionModels));
             return $this->render('view', ['model' => $model, 'questionModels' => $questionModels]);
         }
     } else {
         if (Yii::$app->user->isGuest) {
             Yii::$app->user->loginRequired();
         } else {
             throw new ForbiddenHttpException(Yii::t('yii', 'You are not allowed to perform this action.'));
         }
     }
 }