Beispiel #1
0
 /**
  * Helper function to add dozents to a seminar.
  */
 private function addDozent($dozent)
 {
     $deputies_enabled = get_config('DEPUTIES_ENABLE');
     $sem = Seminar::GetInstance($this->course_id);
     if ($sem->addMember($dozent, "dozent")) {
         // Only applicable when globally enabled and user deputies enabled too
         if ($deputies_enabled) {
             // Check whether chosen person is set as deputy
             // -> delete deputy entry.
             if (isDeputy($dozent, $this->course_id)) {
                 deleteDeputy($dozent, $this->course_id);
             }
             // Add default deputies of the chosen lecturer...
             if (get_config('DEPUTIES_DEFAULTENTRY_ENABLE')) {
                 $deputies = getDeputies($dozent);
                 $lecturers = $sem->getMembers('dozent');
                 foreach ($deputies as $deputy) {
                     // ..but only if not already set as lecturer or deputy.
                     if (!isset($lecturers[$deputy['user_id']]) && !isDeputy($deputy['user_id'], $this->course_id)) {
                         addDeputy($deputy['user_id'], $this->course_id);
                     }
                 }
             }
         }
         // new dozent was successfully insert
         return MessageBox::success(sprintf(_('%s wurde hinzugefügt.'), get_title_for_status('dozent', 1, $sem->status)));
     } else {
         // sorry that was a fail
         return false;
     }
 }
Beispiel #2
0
 public function switchdeputy_action($course_id, $newstatus)
 {
     $course = Seminar::getInstance($course_id);
     switch ($newstatus) {
         case 'dozent':
             $dozent = new CourseMember();
             $dozent->seminar_id = $course_id;
             $dozent->user_id = $GLOBALS['user']->id;
             $dozent->status = 'dozent';
             $dozent->comment = '';
             if ($dozent->store()) {
                 deleteDeputy($GLOBALS['user']->id, $course_id);
                 PageLayout::postSuccess(sprintf(_('Sie wurden als %s eingetragen.'), get_title_for_status('dozent', 1)));
             } else {
                 PageLayout::postError(sprintf(_('Sie konnten nicht als %s eingetragen werden.'), get_title_for_status('dozent', 1)));
             }
             break;
         case 'deputy':
             $dozent = Course::find($course_id)->members->findOneBy('user_id', $GLOBALS['user']->id);
             if (addDeputy($GLOBALS['user']->id, $course_id)) {
                 $dozent->delete();
                 PageLayout::postSuccess(_('Sie wurden als Vertretung eingetragen.'));
             } else {
                 PageLayout::postError(_('Sie konnten nicht als Vertretung eingetragen werden.'));
             }
             break;
     }
     $this->flash['open'] = "bd_personal";
     $this->redirect($this->url_for('course/basicdata/view/' . $course_id));
 }
Beispiel #3
0
 public function add_member_action()
 {
     CSRFProtection::verifyRequest();
     $mp = MultiPersonSearch::load('settings_add_deputy');
     $msg = array('error' => array(), 'success' => array());
     foreach ($mp->getAddedUsers() as $_user_id) {
         if (isDeputy($_user_id, $this->user->user_id)) {
             $msg['error'][] = sprintf(_('%s ist bereits als Vertretung eingetragen.'), get_fullname($_user_id, 'full'));
         } else {
             if ($_user_id == $this->user->user_id) {
                 $msg['error'][] = _('Sie können sich nicht als Ihre eigene Vertretung eintragen!');
             } else {
                 if (!addDeputy($_user_id, $this->user->user_id)) {
                     $msg['error'][] = _('Fehler beim Eintragen der Vertretung!');
                 } else {
                     $msg['success'][] = sprintf(_('%s wurde als Vertretung eingetragen.'), get_fullname($_user_id, 'full'));
                 }
             }
         }
     }
     // only show an error messagebox once.
     if (!empty($msg['error'])) {
         PageLayout::postMessage(MessageBox::error(_('Die gewünschte Operation konnte nicht ausgeführt werden.'), $msg['error']));
     }
     if (!empty($msg['success'])) {
         PageLayout::postMessage(MessageBox::success(_('Die gewünschten Personen wurden als Ihre Vertretung eingetragen!'), $msg['success']));
     }
     $this->redirect('settings/deputies/index');
 }