Example #1
0
 /**
  * Maintenance view for the manual insert parameters
  *
  */
 function manual_action()
 {
     $_request = Request::GetInstance();
     if (Request::submitted('submit')) {
         $filters = array_filter(Request::getArray('filter'));
         if (!Request::get('sem_id') || Request::get('sem_id') == 'false') {
             $this->flash['error'] = _('Ungültiger Aufruf');
         } elseif (!count($filters)) {
             $this->flash['error'] = _('Keine Filterkriterien gewählt');
         } else {
             $seminar = Seminar::GetInstance(Request::option('sem_id'));
             $group = select_group($seminar->getSemesterStartTime());
             $userlookup = new UserLookup();
             foreach ($filters as $type => $values) {
                 $userlookup->setFilter($type, $values);
             }
             $user_ids = $userlookup->execute();
             $real_users = 0;
             foreach ($user_ids as $user_id) {
                 if (!AutoInsert::checkAutoInsertUser(Request::option('sem_id'), $user_id)) {
                     $seminar->addMember($user_id);
                     $real_users += AutoInsert::saveAutoInsertUser(Request::option('sem_id'), $user_id);
                 }
             }
             //messagebox
             $text = sprintf(_('Es wurden %u von %u möglichen Personen in die Veranstaltung %s eingetragen.'), $real_users, count($user_ids), sprintf('<a href="%s">%s</a>', URLHelper::getLink('dispatch.php/course/details/', array('cid' => $seminar->getId())), htmlReady($seminar->getName())));
             if ($real_users > 0) {
                 $this->flash['success'] = $text;
             } else {
                 $this->flash['message'] = $text;
             }
             $this->flash['detail'] = array(_('Etwaige Abweichungen der Personenzahlen enstehen durch bereits vorhandene bzw. wieder ausgetragene Personen.'));
             $this->redirect('admin/autoinsert/manual');
         }
     }
     $this->sem_id = Request::option('sem_id');
     $this->sem_search = Request::get('sem_search');
     $this->sem_select = Request::option('sem_select');
     $this->filtertype = Request::getArray('filtertype');
     $this->filter = Request::getArray('filter');
     if (count(Request::getArray('remove_filter'))) {
         $this->filtertype = array_diff($this->filtertype, array_keys(Request::getArray('remove_filter')));
     } elseif (Request::submitted('add_filter')) {
         array_push($this->filtertype, Request::get('add_filtertype'));
     }
     if (Request::get('sem_search') and Request::get('sem_select')) {
         if (Request::get('sem_search')) {
             $search = new SeminarSearch('number-name');
             $this->seminar_search = $search->getResults(Request::get('sem_search'), array('search_sem_sem' => $this->sem_select));
             if (count($this->seminar_search) == 0) {
                 $this->flash['message'] = _("Es wurden keine Veranstaltungen gefunden.");
             }
         } else {
             $this->flash['error'] = _("Im Suchfeld wurde nichts eingetragen!");
         }
     }
     $this->values = array();
     foreach ($this->filtertype as $type) {
         $this->values[$type] = UserLookup::getValuesForType($type);
     }
     $this->available_filtertypes = array('fach' => _('Studienfach'), 'abschluss' => _('Studienabschluss'), 'fachsemester' => _('Studienfachsemester'), 'institut' => _('Einrichtung'), 'status' => _('Statusgruppe'), 'domain' => _('Domäne'));
 }