예제 #1
0
 /**
  * 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);
 }
예제 #2
0
 /**
  * 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);
 }
예제 #3
0
 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'));
 }