public function beforeUpdate($object, $line, $mappeddata)
 {
     foreach ($mappeddata['fleximport_dozenten'] as $dozent_id) {
         if ($object->isNew()) {
             $this->new_dozenten[] = $dozent_id;
         } else {
             $coursemember = CourseMember::find(array($object->getId(), $dozent_id));
             if (!$coursemember || $coursemember['status'] !== "dozent") {
                 $this->new_dozenten[] = $dozent_id;
             }
         }
     }
 }
Esempio n. 2
0
 /**
  * adds user with given id on waitinglist
  *
  * @param string $user_id
  * @param string $which_end 'last' or 'first'
  * @return integer 1 if successfull
  */
 public function addToWaitlist($user_id, $which_end = 'last')
 {
     if (AdmissionApplication::exists(array($user_id, $this->id)) || CourseMember::find(array($this->id, $user_id))) {
         return false;
     }
     switch ($which_end) {
         // Append users to waitlist end.
         case 'last':
             $maxpos = DBManager::get()->fetchColumn("SELECT MAX(`position`)
                 FROM `admission_seminar_user`
                 WHERE `seminar_id`=?
                     AND `status`='awaiting'", array($this->id));
             $waitpos = $maxpos+1;
             break;
         // Prepend users to waitlist start.
         case 'first':
         default:
             // Move all others on the waitlist up by the number of people to add.
             DBManager::get()->execute("UPDATE `admission_seminar_user`
                     SET `position`=`position`+1
                     WHERE `seminar_id`=?
                         AND `status`='awaiting'", array($this->id));
             $waitpos = 1;
     }
     $new_admission_member = new AdmissionApplication();
     $new_admission_member->user_id = $user_id;
     $new_admission_member->position = $waitpos;
     $new_admission_member->status = 'awaiting';
     $new_admission_member->seminar_id = $this->id;
     if ($new_admission_member->store()) {
         StudipLog::log('SEM_USER_ADD', $this->id, $user_id, 'awaiting', 'Auf Warteliste gesetzt, Position: ' . $waitpos);
         $this->course->resetRelation('admission_applicants');
         return 1;
     }
     return false;
 }
Esempio n. 3
0
 /**
  * Get the visibility of a user in a seminar
  * @param String $user_id
  * @param String $seminar_id
  * @return Array
  */
 private function getUserVisibility()
 {
     $member = CourseMember::find(array($this->course_id, $this->user_id));
     $visibility = $member->visible;
     $status = $member->status;
     #echo "<pre>"; var_dump($member); echo "</pre>";
     $result['visible_mode'] = false;
     if ($visibility) {
         $result['iam_visible'] = $visibility == 'yes' || $visibility == 'unknown';
         if ($status == 'user' || $status == 'autor') {
             $result['visible_mode'] = 'participant';
         } else {
             $result['iam_visible'] = true;
             $result['visible_mode'] = false;
         }
     }
     return $result;
 }