Пример #1
0
 public static function get_users_count($batch, $role_name = null)
 {
     $batch = $batch instanceof Model_Batch ? $batch : ORM::factory('batch', (int) $batch);
     if ($role_name) {
         $role = Model_Role::from_name($role_name);
         $users = $batch->users->join('roles_users', 'INNER')->on('users.id', ' = ', 'roles_users.user_id')->where('roles_users.role_id', ' = ', $role->id)->count_all();
     } else {
         $users = $batch->users->count_all();
     }
     return $users;
 }
Пример #2
0
 public function action_add()
 {
     $submitted = FALSE;
     if ($this->request->method() === 'POST' && $this->request->post()) {
         if (Arr::get($this->request->post(), 'save') !== null) {
             $submitted = true;
             $course = ORM::factory('course');
             $validator = $course->validator($this->request->post());
             $validator->bind(':course', NULL);
             $validator->bind(':start_date', $this->request->post('start_date'));
             if ($validator->check()) {
                 $course->name = $this->request->post('name');
                 $course->description = $this->request->post('description');
                 $course->access_code = $this->request->post('access_code');
                 $course->start_date = $this->request->post('start_date');
                 $course->end_date = $this->request->post('end_date');
                 $course->save();
                 Session::instance()->set('success', 'Cources added successfully.');
                 Model_Course::assign_users($course, $this->request->post('selected'));
                 Request::current()->redirect('course');
                 exit;
             } else {
                 $this->_errors = $validator->errors('course');
             }
         }
     }
     $form = $this->form('course/add', $submitted);
     $cacheimage = CacheImage::instance();
     $user_ids = array();
     $data = array();
     $count = 0;
     $selected = $this->request->post('selected');
     if ($selected) {
         $user_ids = $selected;
         $student_role_id = Model_Role::from_name('student')->id;
         $users = ORM::factory('user')->join('roles_users')->on('users.id', ' = ', 'roles_users.user_id')->where('users.id', 'IN', $selected)->and_where('roles_users.role_id', ' = ', $student_role_id);
         $data = $users->find_all();
         $count = $users->count_all();
     } else {
         $selected = array();
     }
     $course_id = 0;
     $users = View::factory('course/assign')->bind('data', $data)->bind('count', $count)->bind('cacheimage', $cacheimage)->bind('user_ids', $user_ids);
     $teachers = Model_Role::get_users('teacher');
     $teachers_table = View::factory('course/teachers')->bind('teachers', $teachers)->bind('cacheimage', $cacheimage)->bind('assigned_teachers', $selected);
     // same selected user_ids will work in c_ase of teachers
     $batches = ORM::factory('batch')->find_all();
     $view = View::factory('course/form')->bind('form', $form)->bind('users', $users)->bind('teachers_table', $teachers_table)->bind('batches', $batches)->bind('course_id', $course_id);
     Breadcrumbs::add(array('Courses', Url::site('course')));
     Breadcrumbs::add(array('Create', Url::site('course/add')));
     $this->content = $view;
 }
Пример #3
0
 public static function get_users_count($course, $role_name = null)
 {
     $course = $course instanceof Model_Course ? $course : ORM::factory('course', (int) $course);
     if ($role_name) {
         $role = Model_Role::from_name($role_name);
         $users = $course->users->join('roles_users', 'INNER')->on('users.id', ' = ', 'roles_users.user_id')->where('roles_users.role_id', ' = ', $role->id)->count_all();
     } else {
         $users = $course->users->count_all();
     }
     return $users;
 }
Пример #4
0
 private function parent_register()
 {
     $user = ORM::factory('user');
     $config_settings = Config::instance()->load('config');
     $auto_login = true;
     $validator = $user->validator_parent_register($this->request->post());
     $validator->bind(':email', $this->request->post('email'));
     if ($validator->check()) {
         $values = array('firstname' => $this->request->post('firstname'), 'lastname' => $this->request->post('lastname'), 'email' => $this->request->post('email'), 'password' => Auth::instance()->hash($this->request->post('password')));
         $role = ORM::factory('role', $config_settings->default_role);
         $user_id = $this->create_user($values, $role);
         $user = ORM::factory('user', $user_id);
         //first check if child's account exists
         $child = ORM::factory('user')->where('email', '=', $this->request->post('email_child'))->find();
         if (!$child->id) {
             $child_password = rand(10000, 65000);
             $values = array('firstname' => $this->request->post('childname'), 'lastname' => $this->request->post('lastname'), 'email' => $this->request->post('email_child'), 'password' => Auth::instance()->hash($child_password), 'parent_user_id' => $user_id);
             $role = Model_Role::from_name('Student');
             $child_id = $this->create_user($values, $role);
             $child = ORM::factory('user', $child_id);
         }
         $child->parent_user_id = $user_id;
         $child->save();
         if ($config_settings->user_approval) {
             $auto_login = false;
         }
         $user->send_child_email();
         $user->send_user_email();
         if ($auto_login) {
             Auth::instance()->login($validator['email'], $validator['password']);
             Request::current()->redirect('home');
             exit;
         } else {
             Request::current()->redirect('auth/index/admin_aproval/1');
         }
         exit;
     } else {
         $this->_errors = $validator->errors('register');
     }
 }