/**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store($quizId)
 {
     $quiz = Quiz::findOrFail($quizId);
     $input = Input::only('question_type', 'question', 'required', 'display_order');
     $validator = Validator::make($input, ['question_type' => 'required|in:text,textbox,singlechoice,multiplechoice,dropdown', 'question' => 'required', 'required' => 'in:0,1', 'display_order' => 'numeric']);
     if ($validator->fails()) {
         throw new FormValidationException('Validation failed', $validator->errors());
     }
     $quiz->questions()->save(new Question(['question_type' => $input['question_type'], 'question' => $input['question'], 'required' => $input['required'] ?: 0, 'display_order' => $input['display_order'] ?: 0]));
     return json(1);
 }
Beispiel #2
0
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     Eloquent::unguard();
     DB::table('quiz')->truncate();
     DB::table('quiz_questions')->truncate();
     DB::table('quiz_question_options')->truncate();
     $quizzes = [['area_id' => 1, 'category_id' => 3, 'questions' => [['question' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit.', 'question_type' => 'text', 'options' => [['option' => 'Q']]], ['question' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Molestiae recusandae vero inventore corrupti culpa repudiandae, minus dolor, ea dolores at, sed sequi, consectetur atque alias nesciunt. ', 'question_type' => 'textbox', 'options' => [['option' => ''], ['option' => '']]], ['question' => 'Which of the examples below, can be classified as a project?', 'question_type' => 'singlechoice', 'options' => [['option' => 'Taking the garbage out'], ['option' => 'Building a house'], ['option' => 'Falling in love']]], ['question' => 'Which of the examples below, can be classified as a project?', 'question_type' => 'multiplechoice', 'options' => [['option' => 'Taking the garbage out'], ['option' => 'Building a house'], ['option' => 'Falling in love']]], ['question' => 'Which of the examples below, can be classified as a project?', 'question_type' => 'dropdown', 'options' => [['option' => 'Taking the garbage out'], ['option' => 'Building a house'], ['option' => 'Falling in love']]]]]];
     foreach ($quizzes as $data) {
         $quiz = Quiz::create(['area_id' => $data['area_id'], 'category_id' => isset($data['category_id']) ? $data['category_id'] : null]);
         foreach ($data['questions'] as $question) {
             $options = $question['options'];
             unset($question['options']);
             $question = $quiz->questions()->save(new Question($question));
             foreach ($options as $option) {
                 $question->options()->save(new Option($option));
             }
         }
     }
 }
 public function api2()
 {
     $areaId = Input::get('a');
     $categoryId = Input::get('c');
     $query = Quiz::where('area_id', $areaId);
     if ($categoryId) {
         $query = $query->where('category_id', $categoryId);
     }
     if (!($quiz = $query->first(['id', 'area_id']))) {
         return abort(404);
     }
     $ok = false;
     foreach ($quiz->area->groups as $group) {
         foreach ($group->trainers as $trainer) {
             if ((int) $trainer->pivot->user_id === (int) $this->userId) {
                 $ok = true;
             }
         }
     }
     if (!$ok) {
         return view('errors.unauthorized');
     }
     $query = $quiz->responses()->join('users', 'users.id', '=', 'user_id')->orderBy('response.created_at');
     $applicants = $query->get(['users.id as uid', 'email', 'full_name', 'school', 'phone', 'response.id']);
     $data = [];
     foreach ($applicants as $applicant) {
         $responses = [];
         foreach ($applicant->questions as $rquestion) {
             if (!$rquestion->question) {
                 continue;
             }
             $answers = [];
             $roptions = $rquestion->options->lists('response', 'quiz_question_option_id');
             foreach ($rquestion->question->options as $option) {
                 if (array_key_exists($option->id, $roptions)) {
                     if ($rquestion->question->type == 'text' || $rquestion->question->type == 'textbox') {
                         $answer = html_entity_decode($roptions[$option->id]);
                     } else {
                         $answer = true;
                     }
                 } else {
                     $answer = false;
                 }
                 $answers[] = ['option' => $option->option ? html_entity_decode($option->option) : null, 'answer' => $answer];
             }
             $responses[] = ['question' => $rquestion->question->question, 'question_type' => $rquestion->question->type, 'answers' => $answers];
         }
         $data[] = ['app_id' => (int) $applicant->id, 'user_id' => (int) $applicant->uid, 'name' => html_entity_decode($applicant->full_name), 'email' => $applicant->email, 'phone' => $applicant->phone, 'school' => html_entity_decode($applicant->school), 'responses' => $responses];
     }
     return json(array_values($data), 200);
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     with(Quiz::findOrFail($id))->delete();
     return json(1);
 }
 /**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function index($id)
 {
     $quiz = Quiz::findOrFail($id);
     $responses = Response::where('quiz_id', $quiz->id)->paginate(self::PER_PAGE);
     return view('admin.quiz.responses.index')->withQuiz($quiz)->withResponses($responses);
 }