public function index()
 {
     $classes = StudyClass::all();
     $teacher_ids = array();
     $assist_ids = array();
     foreach ($classes as $class) {
         if ($class->teach != null) {
             $teacher_ids[] = $class->teach->id;
         }
         if ($class->assist != null) {
             $assist_ids[] = $class->assist->id;
         }
     }
     $teachers = User::whereIn('id', $teacher_ids)->get();
     foreach ($teachers as &$teacher) {
         $class_ids = array();
         foreach ($teacher->teach as $t) {
             $class_ids[] = $t->id;
         }
         $teacher->rating_number = Register::whereIn('class_id', $class_ids)->where('rating_teacher', '>', -1)->count();
         $teacher->rating_avg = Register::whereIn('class_id', $class_ids)->where('rating_teacher', '>', -1)->avg('rating_teacher');
     }
     $assistants = User::whereIn('id', $assist_ids)->get();
     foreach ($assistants as &$assistant) {
         $class_ids = array();
         foreach ($assistant->assist as $t) {
             $class_ids[] = $t->id;
         }
         $assistant->rating_number = Register::whereIn('class_id', $class_ids)->where('rating_ta', '>', -1)->count();
         $assistant->rating_avg = Register::whereIn('class_id', $class_ids)->where('rating_ta', '>', -1)->avg('rating_ta');
     }
     $this->data['teachers'] = $teachers;
     $this->data['assistants'] = $assistants;
     return view('manage.personal_rating.all', $this->data);
 }
Esempio n. 2
0
 public function scopeGetTotalCalled($scope)
 {
     $current_gen = Gen::getCurrentGen();
     $classes = StudyClass::where('gen_id', $current_gen->id)->get();
     $class_id_list = $classes->pluck('id')->all();
     $count = Register::whereIn('class_id', $class_id_list)->select('user_id')->where('call_status', 1)->groupBy('user_id')->get()->count();
     return $count;
 }
Esempio n. 3
0
 public function registerlist(Request $request, $page = 1)
 {
     $query = $request->q;
     $this->data['current_page'] = $page;
     $limit = 40;
     $offset = ($page - 1) * $limit;
     $this->data['current_tab'] = 5;
     $gen_ids = Gen::orderBy('start_time', 'desc')->limit(4)->get()->pluck('id')->toArray();
     //        $classes = StudyClass::getClassByGen($current_gen->id);
     if ($query) {
         $users_id = User::where('email', 'like', '%' . $query . '%')->orWhere('name', 'like', '%' . $query . '%')->get()->pluck('id')->toArray();
         //            dd($users_id);
         $registers = Register::whereIn('user_id', $users_id)->whereIn('gen_id', $gen_ids)->orderBy('created_at', 'desc');
         $total = $registers->count();
         $registers = $registers->skip($offset)->take($limit)->get();
     } else {
         $registers = Register::whereIn('gen_id', $gen_ids)->orderBy('created_at', 'desc')->skip($offset)->take($limit)->get();
         $total = Register::whereIn('gen_id', $gen_ids)->count();
     }
     if (!is_numeric($total)) {
         $total = 0;
     }
     $num_pages = ceil($total / $limit);
     $this->data['num_pages'] = $num_pages;
     $this->data['total'] = $total;
     $this->data['query'] = $query;
     $this->data['registers'] = $registers;
     return view('manage.register_list', $this->data);
 }