finished basic test taking functionality
This commit is contained in:
parent
7987e74a6e
commit
75253b0b64
7 changed files with 40 additions and 45 deletions
app/Http/Controllers
|
@ -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"));
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue