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