/** * Displays a single Tasks model. * @param integer $id * @return mixed */ public function actionView($id) { if ($this->findModel($id)->visible == 1) { return $this->render('view', ['model' => $this->findModel($id), 'accepted' => Tasks::isTaskAccepted(Yii::$app->user->identity->id, $id)]); } else { throw new NotFoundHttpException('The task haven\' been opened yet.'); } }
public static function submitFlag($team, $task, $flag) { if (Tasks::isTaskAccepted($team, $task)) { return true; } $model = Tasks::find()->where(["id" => $task])->one(); if (!$model) { return false; } if ($model->visible !== 1) { return false; } $request = new Requests(); $request->user_id = $team; $request->task_id = $task; $request->answer = $flag; $task_is_accepted = false; if ($model->checker_name === 0) { $task_is_accepted = $flag === $model->answer; } else { $main_checker = new MainChecker(); $task_is_accepted = $main_checker->checkFlag($model->checker_name, $flag); } if ($task_is_accepted === true) { Tasks::givePoints($team, $task); $request->result = 1; $request->save(); $tasks_open = Tasks::find()->where(["category" => $model->category])->andWhere('position = :position+1', [':position' => $model->position])->orderBy("position")->all(); foreach ($tasks_open as $task_open) { $task_open->visible = 1; $task_open->save(); } return true; } else { $request->result = 0; $request->save(); return false; } }