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; }
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; }
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; }
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'); } }