/** * GET * Building blocks student * @return Response */ public function index() { $bbs = BuildingBlock::with('curators')->get(); $tempSprints = Sprint::where('course_id', $this->currentCourse->id)->get(); $sprints = []; $courseCompleted = 1; // default value foreach ($tempSprints as $index => $sprint) { $sprints[$index]['sprint'] = $sprint; $exams = Exam::where('sprint_id', $sprint->id)->get(); $sprintCompleted = 1; foreach ($exams as $index2 => $exam) { $sprints[$index]['exams'][$index2]['exam'] = $exam; // Resultaten per toets inclusief de feedback van alle resultaten. // In de front-end wordt alleen het laatst toegevoegd resultaat voorzien van feedback $sprints[$index]['exams'][$index2]['results'] = Result::leftJoin('feedbacks', 'feedbacks.result_id', '=', 'results.id')->where('results.exam_id', $exam->id)->where('results.student_id', $this->userId)->orderBy('results.created_at')->get(); // Checks if exam is completed $completed = Result::where('exam_id', $exam->id)->where('student_id', $this->userId)->where('result', 'v')->where('result', 'V')->orderBy('created_at')->get(); if ($completed->isEmpty()) { $examCompleted = 0; $sprintCompleted = 0; } else { $examCompleted = 1; } $sprints[$index]['exams'][$index2]['completed'] = $examCompleted; } if (!$sprintCompleted) { $courseCompleted = 0; } // alleen overschrijven als een sprint niet behaald is. $sprints[$index]['sprintCompleted'] = $sprintCompleted; } // dd($sprints); return view('student.index', ['bbs' => $bbs, 'navbbs' => $this->navbbs, 'course' => $this->currentCourse, 'sprints' => $sprints, 'courseCompleted' => $courseCompleted]); }