/**
  * Vote for selected float answer
  * @return mixed Json
  */
 public function actionVoteFloat()
 {
     $answerValues = Yii::$app->request->post('answer');
     $userID = isset(Yii::$app->user->id) ? Yii::$app->user->id : false;
     // validation
     $answers = [];
     if (is_array($answerValues) && $userID) {
         foreach ($answerValues as $aid => $value) {
             $answer = $this->findModel($aid);
             if (isset($answer)) {
                 $answers[] = $answer;
             }
         }
     }
     if (count($answers) == 0) {
         Yii::$app->getSession()->setFlash('error-question', 'Ошибка при сохранении ответа в опросе: Нет выбранных вариантов.');
         return Yii::$app->getResponse()->redirect(Url::to('/'));
     }
     $first = $answers[0];
     $question = $this->findModel($first->parent_id);
     if (isset($question)) {
         $question->voutes++;
         $vote = new QuestionVote();
         $vote->question_id = $question->id;
         $vote->user_id = $userID;
         if (!$vote->validate() || !$question->validate()) {
             Yii::$app->getSession()->setFlash('error-question', 'Ошибка при сохранении ответа в опросе.');
             return Yii::$app->getResponse()->redirect(Url::to('/'));
         }
         $vote->save(false);
         $question->save(false);
         foreach ($answers as $answer) {
             if (!isset($answerValues[$answer->id])) {
                 continue;
             }
             $value = $answerValues[$answer->id];
             if ($answer->mark == 0) {
                 $answer->mark = $value;
             } else {
                 $answer->mark = round(($value + $answer->mark * ($question->voutes - 1)) / $question->voutes, 4);
             }
             $answer->save();
         }
         Yii::$app->getSession()->setFlash('success-question', 'Ваш ответ на опрос успешно сохранен.');
     }
     return Yii::$app->getResponse()->redirect(Url::to('/'));
 }
 /**
  * Vote for selected float answer
  * @return mixed Json
  */
 public function actionVoteFloat()
 {
     $answerValues = Yii::$app->request->get('answer');
     $userID = isset(Yii::$app->user->id) ? Yii::$app->user->id : false;
     // validation
     $answers = [];
     if (is_array($answerValues) && $userID) {
         foreach ($answerValues as $aid => $value) {
             $answer = $this->findModel($aid);
             if (isset($answer)) {
                 $answers[] = $answer;
             }
         }
     }
     if (count($answers) == 0) {
         return Json::encode(['success' => false, 'msg' => 'answers']);
     }
     $first = $answers[0];
     $question = $this->findModel($first->parent_id);
     if (isset($question)) {
         $question->voutes++;
         $vote = new QuestionVote();
         $vote->question_id = $answer->parent_id;
         $vote->user_id = $userID;
         if (!$vote->validate() || !$question->validate()) {
             return Json::encode(['success' => false, 'msg' => 'vote']);
         }
         $vote->save();
         $question->save();
         foreach ($answers as $answer) {
             $answer->mark = round(($value + $answer->mark * ($question->voutes - 1)) / $question->voutes, 4);
             $answer->save();
         }
         return Json::encode(['success' => true]);
     }
     return Json::encode(['success' => false]);
 }