finished basic test taking functionality

This commit is contained in:
mwalbeck 2016-09-10 18:08:33 +02:00
parent 7987e74a6e
commit 75253b0b64
7 changed files with 40 additions and 45 deletions
app/Http/Controllers

View file

@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Requests;
use App\Test;
@ -10,10 +11,11 @@ class TestController extends Controller
{
public function startTest(Test $test)
{
if (!$test->startTest(\Auth::user())) {
//session flash
if (Auth::user()->testTaken(2)) {
//insert session flash
return redirect('/home');
}
session(['questions' => $test->randomizeQuestions(), 'question_counter' => 1, 'test' => $test, 'wrong_answers' => 0, 'is_correct' => false, 'has_failed' => false, 'last_question' => false]);
return redirect()->action('TestController@showQuestion');
}
@ -35,47 +37,29 @@ class TestController extends Controller
}
$answers["$question_id"] = $answer_id;
session(['answers' => $answers]);
return redirect()->action('TestController@isCorrect');
}
public function isCorrect()
{
$question = session('questions')->get(session('question_counter')-1);
if (!$question->isCorrect(session('answers')["$question->id"])) {
session(['wrong_answers' => session('wrong_answers')+1]);
session(['is_correct' => false]);
} else {
session(['is_correct' => true]);
}
return redirect()->action('TestController@hasFailed');
}
public function hasFailed()
{
if (session('test')->hasFailed(session('wrong_answers'))) {
//Abort logic
return redirect('/home');
session(['has_failed' => true]);
}
return redirect()->action('TestController@lastQuestion');
}
public function lastQuestion()
{
/*if (session('test')->lastQuestion(session('question_counter'))) {
}*/
if (session('test')->lastQuestion(session('question_counter'))) {
session(['last_question' => true]);
}
return redirect()->action('TestController@showAnswer');
}
public function showAnswer()
{
$question = session('questions')->get(session('question_counter')-1);
if (session('answers')["$question->id"] == $question->answer_id) {
$question_status = "GZ, that was the correct answer!";
} else {
$question_status = "Sorry, wrong answer, pal!";
}
$options = session('options');
session(['question_counter' => session('question_counter')+1]);
return view('tests.answer');
return view('tests.answer', compact("question"), compact("options"));
}
}