/** * Run the database seeds. * * @return void */ public function run() { Model::unguard(); if (Exam::count()) { return; } $tests = DB::connection('old')->table('tests')->where('test_id', '>', 6)->WhereIn('test_type', [1, 2, 3, 11, 21])->get(); DB::statement('SET FOREIGN_KEY_CHECKS = 0'); Exam::truncate(); ExamQuestion::truncate(); $exam_type = [1 => 'midterm', 2 => 'final', 3 => 'summer', 11 => 'remidterm', 21 => 'refinal']; $all_test = []; $all_test_q = []; foreach ($tests as $test) { $exams = []; $exams['id'] = $test->test_id; $exams['name'] = $test->test_title; $exams['subject_id'] = $test->test_subjectid; $exams['type'] = $exam_type[$test->test_type]; $exams['semester_id'] = $test->test_semid; $exams['active'] = 1; $exams['start_at'] = date('Y-m-d H:i:s', $test->test_starttime); $exams['finish_at'] = date('Y-m-d H:i:s', $test->test_endtime); $exams['created_at'] = $test->test_created; $exams['updated_at'] = $test->test_modified; $all_test[] = $exams; foreach (explode(',', $test->test_question_ids) as $q_id) { $test_q = []; $test_q['question_id'] = $q_id; $test_q['exam_id'] = $test->test_id; $all_test_q[] = $test_q; } } foreach (array_chunk($all_test, 500) as $exam_group) { DB::table('exams')->insert($exam_group); } foreach (array_chunk($all_test_q, 500) as $test_q_group) { DB::table('exam_questions')->insert($test_q_group); } $this->command->info('table tests successfully transferd'); }
public function getDevideGrade($exam_id = 0, $question_id = 0) { ExamQuestion::where(['exam_id' => $exam_id, 'question_id' => $question_id])->update(['devide_grade' => 1]); return redirect()->route('exams.questions.index', $exam_id); }
public function student_exam_result($exam_id, $student_id) { $exam = Exam::findOrFail($exam_id); $questions = ExamQuestion::select('exams.id', 'exam_questions.question_id', 'answer', 'degree')->with('question', 'question.choices')->where('exam_questions.exam_id', $exam_id)->join('exams', function ($j) { $j->on('exam_questions.exam_id', '=', 'exams.id')->where('exams.semester_id', '=', semester()->id); })->join('exam_results', function ($j) use($student_id) { $j->on('exams.id', '=', 'exam_results.exam_id')->where('exam_results.semester_id', '=', semester()->id)->where('exam_results.student_id', '=', $student_id); })->join('exam_result_answers', function ($j) { $j->on('exam_results.id', '=', 'exam_result_answers.exam_result_id')->on('exam_questions.question_id', '=', 'exam_result_answers.question_id'); })->get(); $records = ExamRecording::select('stream_name', 'id')->where('student_id', $student_id)->where('exam_id', $exam_id)->get(); return view('exams::exams.student_exam_result', compact('questions', 'exam', 'records')); }
public function questions($activity_id = 0) { # code... $exam = Exam::findOrFail($activity_id); $subject_id = $exam->subject_id; $exam_questions = ExamQuestion::with('question')->has('question')->where('exam_id', $exam->id)->get(); $list_questions = Question::select('questionbank_questions.*')->selectRaw('CONCAT(( CASE questionbank_questions.type WHEN "essay" THEN "مقالي" WHEN "true_false" THEN "صح أو خطأ" WHEN "single_choice" THEN "إختياري إجابة واحدة" WHEN "multiple_choice" THEN "إختياري متعدد" WHEN "essay" THEN "مقالي" END), " --- ", questionbank_questions.question) as full_question')->join('subject_lessons as sl', 'sl.id', '=', 'questionbank_questions.lesson_id')->join('subject_subjects as ss', function ($join) use($exam) { $join->on('ss.id', '=', 'sl.subject_subject_id')->where('ss.id', '=', $exam->subject_id); })->groupBy('questionbank_questions.id')->whereNotIn('questionbank_questions.id', $exam_questions->pluck('question_id'))->pluck('full_question', 'id')->toArray(); return view('teachers::profile.questions.index', compact('exam_questions', 'list_questions', 'exam', 'subject_id', 'activity_id')); }
/** * Register the service provider. * * @return void */ public function register() { //Exam Exam::created(function ($exam) { UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_exam', 'reference_id' => $exam->id]); }); Exam::updated(function ($exam) { UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_exam', 'reference_id' => $exam->id]); }); Exam::deleted(function ($exam) { UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_exam', 'reference_id' => $exam->id]); }); //ExamCenter ExamCenter::created(function ($center) { UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_center', 'reference_id' => $center->id]); }); ExamCenter::updated(function ($center) { UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_center', 'reference_id' => $center->id]); }); ExamCenter::deleted(function ($center) { UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_center', 'reference_id' => $center->id]); }); //ExamCenterPeriod ExamCenterPeriod::created(function ($period) { UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_period', 'reference_id' => $period->id]); }); ExamCenterPeriod::updated(function ($period) { UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_period', 'reference_id' => $period->id]); }); ExamCenterPeriod::deleted(function ($period) { UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_period', 'reference_id' => $period->id]); }); //ExamQuestion ExamQuestion::created(function ($question) { UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_question', 'reference_id' => $question->id]); }); ExamQuestion::updated(function ($question) { UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_question', 'reference_id' => $question->id]); }); ExamQuestion::deleted(function ($question) { UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_question', 'reference_id' => $question->id]); }); //ExamRecording ExamRecording::created(function ($recording) { UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_recording', 'reference_id' => $recording->id]); }); ExamRecording::updated(function ($recording) { UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_recording', 'reference_id' => $recording->id]); }); ExamRecording::deleted(function ($recording) { UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_recording', 'reference_id' => $recording->id]); }); //ExamResult ExamResult::created(function ($result) { UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_result', 'reference_id' => $result->id]); }); ExamResult::updated(function ($result) { UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_result', 'reference_id' => $result->id]); }); ExamResult::deleted(function ($result) { UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_result', 'reference_id' => $result->id]); }); //ExamResultAnswer ExamResultAnswer::created(function ($answer) { UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_answer', 'reference_id' => $answer->id]); }); ExamResultAnswer::updated(function ($answer) { UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_answer', 'reference_id' => $answer->id]); }); ExamResultAnswer::deleted(function ($answer) { UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_answer', 'reference_id' => $answer->id]); }); //ExamRules ExamRules::created(function ($rule) { UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_rule', 'reference_id' => $rule->id]); }); ExamRules::updated(function ($rule) { UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_rule', 'reference_id' => $rule->id]); }); ExamRules::deleted(function ($rule) { UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_rule', 'reference_id' => $rule->id]); }); //ExamExcuse ExamExcuse::created(function ($excuse) { UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_excuses', 'reference_id' => $excuse->id]); }); ExamExcuse::updated(function ($excuse) { UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_excuses', 'reference_id' => $excuse->id]); }); ExamExcuse::deleted(function ($excuse) { UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'Exams_excuses', 'reference_id' => $excuse->id]); }); }
public function saveresult($subject_id = 0, $exam_id = 0, $student_id = 0, $exam_type = null) { # code... $exam = Exam::findOrFail($exam_id); $student = Student::findOrFail($student_id); $grade = config('exams.grade'); $questions = ExamQuestion::select('exams.id', 'exam_results.id as exam_result_id', 'exam_questions.question_id', 'answer', 'degree', 'qbq.question as questionname', 'qbq.model_answer as modelanswer')->with('question', 'question.choices')->where('exam_questions.exam_id', $exam_id)->join('exams', function ($j) { $j->on('exam_questions.exam_id', '=', 'exams.id')->where('exams.semester_id', '=', semester()->id); })->join("questionbank_questions AS qbq", "qbq.id", '=', "exam_questions.question_id")->join('exam_results', function ($j) use($student_id) { $j->on('exams.id', '=', 'exam_results.exam_id')->where('exam_results.semester_id', '=', semester()->id)->where('exam_results.student_id', '=', $student_id); })->join('exam_result_answers', function ($j) { $j->on('exam_results.id', '=', 'exam_result_answers.exam_result_id')->on('exam_questions.question_id', '=', 'exam_result_answers.question_id'); })->where('qbq.type', '=', 'essay')->get(); return view('teachers::profile.tests.saveresult', compact('questions', 'subject_id', 'exam_id', 'grade', 'exam_type', 'student_id', 'student')); }