Ejemplo n.º 1
0
 public function requestReview()
 {
     if ($this->content['publiclyvisible'] && !$this->content_db['publiclyvisible'] && !$this['approved']) {
         $messaging = new messaging();
         foreach (User::findByPerms("root") as $rootuser) {
             $messaging->sendSystemMessage($rootuser['user_id'], sprintf(_("Plugin %s braucht ein Review"), $this['name']), _("Auf dem Marktplatz wurde ein neues Plugin öffentlich geschaltet. Es kann allerdings erst öffentlich auf dem Marktplatz erscheinen, wenn Sie das Plugin einmal reviewt haben und freischalten. Gehen Sie auf den Pluginmarktplatz und den Reiter 'Qualitätssicherung'."));
         }
     }
 }
Ejemplo n.º 2
0
 function change_course_set_action()
 {
     CSRFProtection::verifyUnsafeRequest();
     if (Request::submitted('change_course_set_assign') && Request::get('course_set_assign') && !LockRules::Check($this->course_id, 'admission_type')) {
         $cs = new CourseSet(Request::option('course_set_assign'));
         if ($cs->isUserAllowedToAssignCourse($this->user_id, $this->course_id)) {
             CourseSet::addCourseToSet($cs->getId(), $this->course_id);
             $cs->load();
             if (in_array($this->course_id, $cs->getCourses())) {
                 PageLayout::postMessage(MessageBox::success(sprintf(_("Die Zuordnung zum Anmeldeset %s wurde durchgeführt."), htmlReady($cs->getName()))));
             }
         }
     }
     if (Request::submitted('change_course_set_unassign') && !LockRules::Check($this->course_id, 'admission_type')) {
         $this->response->add_header('X-Title', _('Anmelderegeln aufheben'));
         if ($this->course->getNumWaiting() && !Request::submitted('change_course_set_unassign_yes')) {
             $question = sprintf(_("In dieser Veranstaltung existiert eine Warteliste. Die bestehende Warteliste mit %s Einträgen wird gelöscht. Sind sie sicher?"), $this->course->getNumWaiting());
         }
         $cs = CourseSet::getSetForCourse($this->course_id);
         if ($cs) {
             $priorities = AdmissionPriority::getPrioritiesByCourse($cs->getId(), $this->course_id);
             if (count($priorities) && !Request::submitted('change_course_set_unassign_yes')) {
                 $question = sprintf(_("In dieser Veranstaltung existiert eine Anmeldeliste (Losverfahren am %s). Die bestehende Anmeldeliste mit %s Einträgen wird gelöscht. Sind sie sicher?"), strftime('%x %R', $cs->getSeatDistributionTime()), count($priorities));
             }
         }
         if (!$question && $cs) {
             CourseSet::removeCourseFromSet($cs->getId(), $this->course_id);
             $cs->load();
             if (!in_array($this->course_id, $cs->getCourses())) {
                 PageLayout::postMessage(MessageBox::success(sprintf(_("Die Zuordnung zum Anmeldeset %s wurde aufgehoben."), htmlReady($cs->getName()))));
             }
             if (!count($cs->getCourses()) && $cs->isGlobal() && $cs->getUserid() != '') {
                 $cs->delete();
             }
             if ($this->course->getNumWaiting()) {
                 $num_moved = 0;
                 foreach ($this->course->admission_applicants->findBy('status', 'awaiting') as $applicant) {
                     setTempLanguage($applicant->user_id);
                     $message_body = sprintf(_('Die Warteliste der Veranstaltung **%s** wurde deaktiviert, Sie sind damit __nicht__ zugelassen worden.'), $this->course->name);
                     $message_title = sprintf(_("Statusänderung %s"), $this->course->name);
                     messaging::sendSystemMessage($applicant->user_id, $message_title, $message_body);
                     restoreLanguage();
                     $num_moved += $applicant->delete();
                 }
                 if ($num_moved) {
                     PageLayout::postMessage(MessageBox::success(sprintf(_("%s Wartende wurden entfernt."), $num_moved)));
                 }
             }
         }
     }
     if (!$question) {
         $this->redirect($this->url_for('/index'));
     } else {
         $this->request = array('change_course_set_unassign' => 1);
         $this->button_yes = 'change_course_set_unassign_yes';
         PageLayout::postMessage(MessageBox::info($question));
         $this->render_template('course/admission/_change_admission.php');
     }
 }
Ejemplo n.º 3
0
 /**
  * Add the lucky ones who got a seat to the given course.
  *
  * @param Array  $user_list users to add as members
  * @param Course $course    course to add users to
  * @param int    $prio      user's priority for the given course
  */
 private function addUsersToCourse($user_list, $course, $prio = null)
 {
     $seminar = new Seminar($course->id);
     foreach ($user_list as $chosen_one) {
         setTempLanguage($chosen_one);
         $message_title = sprintf(_('Teilnahme an der Veranstaltung %s'), $seminar->getName());
         if ($seminar->admission_prelim) {
             if ($seminar->addPreliminaryMember($chosen_one)) {
                 $message_body = sprintf(_('Sie wurden für die Veranstaltung **%s** ausgelost. Die endgültige Zulassung zu der Veranstaltung ist noch von weiteren Bedingungen abhängig, die Sie bitte der Veranstaltungsbeschreibung entnehmen.'), $seminar->getName());
             }
         } else {
             if ($seminar->addMember($chosen_one, 'autor')) {
                 $message_body = sprintf(_("Sie wurden für die  Veranstaltung **%s** ausgelost. Ab sofort finden Sie die Veranstaltung in der Übersicht Ihrer Veranstaltungen. Damit sind Sie auch für die Präsenzveranstaltung zugelassen."), $seminar->getName());
             }
         }
         if ($prio) {
             $message_body .= "\n" . sprintf(_("Sie hatten für diese Veranstaltung die Priorität %s gewählt."), $prio[$chosen_one]);
         }
         messaging::sendSystemMessage($chosen_one, $message_title, $message_body);
         restoreLanguage();
     }
 }
Ejemplo n.º 4
0
 /**
  * Adds given users to the course waitlist, either at list beginning or end.
  * System messages are sent to affected users.
  *
  * @param mixed $users array of user ids to add
  * @param String $which_end 'last' or 'first': which list end to append to
  * @return mixed Array of messages (stating success and/or errors)
  */
 public function moveToWaitlist($users, $which_end)
 {
     $course = Seminar::getInstance($this->course_id);
     foreach ($users as $user_id) {
         // Delete member from seminar
         if ($course->deleteMember($user_id)) {
             setTempLanguage($user_id);
             $message = sprintf(_('Sie wurden von der Veranstaltung **%s** von ' . '%s oder der Administration abgemeldet, ' . 'Sie wurden auf die Warteliste dieser Veranstaltung gesetzt.'), $this->course_title, get_title_for_status('dozent', 1));
             restoreLanguage();
             messaging::sendSystemMessage($user_id, sprintf('%s %s', _('Systemnachricht:'), _('Anmeldung aufgehoben, auf Warteliste gesetzt')), $message);
             // Insert user in waitlist at current position.
             if ($course->addToWaitlist($user_id, $which_end)) {
                 $temp_user = User::find($user_id);
                 $msgs['success'][] = $temp_user->getFullname('no_title');
                 $curpos++;
                 // Something went wrong on removing the user from course.
             } else {
                 $msgs['error'][] = $temp_user->getFullname('no_title');
             }
             // Something went wrong on inserting the user in waitlist.
         } else {
             $msgs['error'][] = $temp_user->getFullname('no_title');
         }
     }
     return $msgs;
 }