/** * Responds to requests to GET /quizzes/{id} */ public function getQuizzesId($id) { // check that quiz had not already been taken by this user $grade = Grade::where('quiz_id', $id)->where('user_id', Auth::user()->id)->first(); if (isset($grade) && $grade->taken) { \Session::flash('flash_message', 'Quiz already graded!'); return redirect('/'); } // get quiz $quiz = Quiz::with('question.answer')->find($id); // check quiz is exists and is active if (is_null($quiz) || !$quiz->ready) { return view('errors.404'); } // create new grade for this quiz set it to zero if (!isset($grade)) { $grade = new Grade(); } $grade->user_id = Auth::user()->id; $grade->quiz_id = $id; $grade->grade = 0; $grade->taken = TRUE; $grade->save(); return view('quiz.take')->with('quiz', $quiz); }
/** * Responds to requests to GET /edit/{id} */ public function getEditQuiz($id) { $quiz = Quiz::with('question.answer')->find($id); if (is_null($quiz)) { \Session::flash('flash_message', 'Quiz not found.'); return redirect('/edit/quizzes'); } return view('edit.quiz')->with('quiz', $quiz); }
public function examineeTests(User $examinee) { $user = auth()->user(); if ($user->isExaminer()) { $quizzes = Quiz::with('tests')->where('user_id', $user->id)->lists('id'); $tests = $examinee->tests()->whereIn('quiz_id', $quizzes)->latest()->get(); } else { $tests = $examinee->tests()->latest()->get(); } return view('tests.byexaminee', compact('tests', 'examinee')); }