Ejemplo n.º 1
0
 /**
  * Method to update the courses in which the user is added depending upon the list of selected course ids
  * Will be used incase of both add and edit
  */
 protected function update_courses($user, $selected)
 {
     $current_courses = $user->courses->find_all()->as_array(null, 'id');
     $added = array_values(array_diff($selected, $current_courses));
     $removed = array_values(array_diff($current_courses, $selected));
     // removing to be done before adding
     if ($removed) {
         //removing the previous courses assigned
         $user->remove('courses');
         foreach ($removed as $course_id) {
             $feed = new Feed_Course();
             $feed->set_action('student_remove');
             $feed->set_course_id('0');
             $feed->set_respective_id($course_id);
             $feed->set_actor_id(Auth::instance()->get_user()->id);
             $feed->streams(array('user_id' => $user->id));
             $feed->save();
         }
     }
     if ($added) {
         foreach ($added as $course_id) {
             $course = ORM::factory('course', $course_id);
             $user->add('courses', $course);
             $feed = new Feed_Course();
             $feed->set_action('student_add');
             $feed->set_course_id('0');
             $feed->set_respective_id($course_id);
             $feed->set_actor_id(Auth::instance()->get_user()->id);
             $feed->streams(array('user_id' => $user->id));
             $feed->save();
         }
     }
 }
Ejemplo n.º 2
0
 /**
  * Method to save the user to course assignments
  * @param Model_Course $course
  * @param Array $user_ids - Array of user_ids
  * @return null
  */
 public static function assign_users($course, $user_ids)
 {
     if ($user_ids) {
         $feed_exists = ORM::factory('feed')->where('type', '=', 'course')->where('action', '=', 'student_add')->where('respective_id', '=', $course->id)->where('actor_id', '=', Auth::instance()->get_user()->id)->find();
         if ($feed_exists->id !== null) {
             $feed = new Feed_Course($feed_exists->id);
             $feed->streams(array('user_id' => $user_ids))->update_streams();
         } else {
             $feed = new Feed_Course();
             $feed->set_action('student_add');
             $feed->set_course_id('0');
             $feed->set_respective_id($course->id);
             $feed->set_actor_id(Auth::instance()->get_user()->id);
             $feed->streams(array('user_id' => $user_ids));
             $feed->save();
         }
         $course->remove('users');
         foreach ($user_ids as $user_id) {
             $course->add('users', ORM::factory('user', $user_id));
         }
     } else {
         $course->remove('users');
     }
 }