/** * Creates a new StudentEvidence model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate($task_id, $project_id, $student_id) { $studentEvidence = $this->findModelWithoutEvidence($task_id, $project_id, $student_id); $evidence = new Evidence(); if (Yii::$app->request->post()) { $params = Yii::$app->request->post(); $evidence->load($params); //Cambiar estado de evidencia a pendiente $studentEvidence->status = StudentEvidence::$PENDING; $evidence->file = UploadedFile::getInstance($evidence, 'file'); if ($evidence->validate() && $evidence->save()) { $this->saveEvidenceFile($evidence); $evidence->update(false); $studentEvidence->evidence_id = $evidence->id; $studentEvidence->update(); $notification = Yii::createObject(['class' => Notification::className(), 'user_id' => ProjectManager::findOne([Project::findOne([$project_id])->manager_id])->user_id, 'description' => Notification::RECEIVED_TASK, 'role' => Notification::ROLE_STUDENT, 'created_at' => Yii::$app->formatter->asDate('now', 'yyyy-MM-dd'), 'viewed' => false, 'url' => Url::to(['/project_manager/task/show-feedback-screen', 'taskId' => $task_id, 'evidenceId' => $evidence->id])]); $notification->save(false); return $this->redirect(['view', 'task_id' => $studentEvidence->task_id, 'project_id' => $studentEvidence->project_id, 'student_id' => $studentEvidence->student_id]); } else { Yii::$app->session->setFlash('danger', 'Ocurrió un error al guardar. Vuelve a intentar'); echo $evidence->validate(); return $this->render('create', ['studentEvidence' => $studentEvidence, 'evidence' => $evidence]); } } else { return $this->render('create', ['studentEvidence' => $studentEvidence, 'evidence' => $evidence]); } }