Ejemplo n.º 1
0
    public function index($exam_id)
    {
        $exam = Exam::with('subject')->findOrFail($exam_id);
        $exam_questions = ExamQuestion::with(['question' => function ($query) {
            $query->orderByRaw("case\n          when questionbank_questions.type = 'true_false' then 'a'\n          when questionbank_questions.type = 'single_choice' then 'b'\n          when questionbank_questions.type = 'multiple_choice' then 'c'\n          when questionbank_questions.type = 'essay' then 'd'\n        end ASC");
        }])->select('era.id as has_been_corrected', 'exam_questions.exam_id', 'exam_questions.question_id', 'exam_questions.devide_grade')->has('question')->join('exams as e', 'e.id', '=', 'exam_questions.exam_id')->leftJoin('exam_results as er', 'er.exam_id', '=', 'e.id')->leftJoin('exam_result_answers as era', 'era.exam_result_id', '=', 'er.id')->where('exam_questions.exam_id', $exam->id)->groupBy('exam_questions.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('exams::questions.index', compact('exam_questions', 'list_questions', 'exam'));
    }
Ejemplo n.º 2
0
 public function print_exam($exam_id, $with_answer = false)
 {
     $exam = Exam::with('subject')->findOrFail($exam_id);
     /*\DB::listen(function ($query) {
           var_dump($query->sql);
           // $query->bindings
           // $query->time
       });*/
     $questions = ExamQuestion::with(['question', 'question.choices', 'question.lesson'])->where('exam_id', $exam_id)->select("exam_questions.*")->join("questionbank_questions AS qbq", "qbq.id", '=', "exam_questions.question_id")->orderByRaw(\DB::raw("FIELD(qbq.type, 'true_false' , 'single_choice' , 'multiple_choice' , 'essay ' )"))->get();
     $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
     $pdf->SetFont('traditionalarabic', '', 18, '', 'false');
     $pdf->setRTL('enable', true);
     $pdf->SetPrintHeader(false);
     $pdf->SetPrintFooter(true);
     $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
     $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
     $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
     $pdf->startPageGroup();
     $pdf->AddPage();
     if ($with_answer) {
         if (user()->can('printwithanswer.exams.exams')) {
             $pdf->writeHTML(view('exams::exams.print', compact('exam', 'questions'))->render());
         }
     } else {
         if (user()->can('printwithoutanswer.exams.exams')) {
             $pdf->writeHTML(view('exams::exams.printwithoutanswer', compact('exam', 'questions'))->render());
         }
     }
     $filename = $exam->id . '.pdf';
     ob_clean();
     $pdf->output($filename, 'D');
     return redirect()->back()->with('success', trans('exams::exams.download_success'));
 }
Ejemplo n.º 3
0
    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'));
    }