Exemple #1
0
 public function getEntries()
 {
     if (Auth::user()->isTeacher()) {
         $users = [];
         $archive = Archive::with('user', 'test', 'test.course', 'test.questions')->has('test')->has('user');
         foreach (Auth::user()->groups as $group) {
             foreach ($group->users as $user) {
                 $users[$user->id] = true;
             }
         }
         $archive->where(function ($query) use($users) {
             foreach (array_keys($users) as $key => $user_id) {
                 if ($key == 0) {
                     $query->where('user_id', $user_id);
                 } else {
                     $query->orWhere('user_id', $user_id);
                 }
             }
         });
         $archive = $archive->orderBy('created_at', 'ASC');
     } else {
         $archive = Archive::with('user', 'test', 'test.course', 'test.questions')->has('test')->has('user')->orderBy('created_at', 'ASC');
     }
     return $archive;
 }
 function store($id, Request $request, TestValidator $testvalidator)
 {
     $archive = Archive::with('user', 'test', 'test.questions', 'test.course')->has('user')->has('test')->findOrFail($id);
     $feedback = [];
     foreach ($request->get('feedback') as $key => $item) {
         $temp = htmlspecialchars(trim($item));
         if (strlen($temp) > 0) {
             $feedback[$key] = $temp;
         }
     }
     $reviewer = \Auth::user();
     if ($archive && count($feedback) > 0) {
         $archive->data = json_decode($archive->data, true);
         if ($archive->replied_to == 0) {
             $validation = $testvalidator->WithAnswers($archive->test, $archive->data['given_answers']);
             $mail_data = ['user' => $archive->user, 'test' => $archive->test, 'data' => $archive->data, 'reviewer' => $reviewer, 'feedback' => $feedback, 'validation' => $validation['validation']];
             // Email notification
             Mail::send('email.feedback_notification', $mail_data, function ($m) use($archive) {
                 $m->to($archive->user->email, $archive->user->name)->subject('Koepalautetta Media7 Raamattuopistolta');
             });
         }
         $data = $archive->data;
         $data['feedback'] = $feedback;
         $archive->data = json_encode($data);
         $archive->replied_to = 1;
         $archive->reviewed_by = $reviewer->id;
         $archive->discarded = 0;
         $archive->save();
         return ['success' => 1];
     } elseif (count($feedback) == 0) {
         $errors[] = "Anna edes jotain palautetta!";
     }
     return ['success' => 0, 'feedback' => $feedback, 'errors' => $errors];
 }
 /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
     $departmentId = null;
     if ($this->systemAdmin) {
         if (session('department_filter_id')) {
             $departmentId = session('department_filter_id');
         }
     } else {
         $departmentId = auth()->user()->department_id;
     }
     $archives = Archive::with(['papers', 'department.langs' => function ($query) {
         $query->lang();
     }]);
     if ($departmentId) {
         $archives->where('department_id', $departmentId);
     }
     $archives = $archives->get();
     return view('admin.archive.index', ['archives' => $archives, 'title' => trans('static.archive'), 'url' => action('Admin\\ArchiveController@create')]);
 }