Example #1
0
 /**
  * Shows the current restrictions for course participation.
  */
 function index_action()
 {
     URLHelper::addLinkParam('return_to_dialog', Request::isDialog());
     $this->sidebar = Sidebar::get();
     $this->sidebar->setImage("sidebar/seminar-sidebar.png");
     if ($GLOBALS['perm']->have_perm('admin')) {
         $list = new SelectorWidget();
         $list->setUrl("?#admin_top_links");
         $list->setSelectParameterName("cid");
         foreach (AdminCourseFilter::get()->getCoursesForAdminWidget() as $seminar) {
             $list->addElement(new SelectElement($seminar['Seminar_id'], $seminar['Name']), 'select-' . $seminar['Seminar_id']);
         }
         $list->setSelection($this->course_id);
         $this->sidebar->addWidget($list);
     }
     $this->all_domains = UserDomain::getUserDomains();
     $this->seminar_domains = array_map(function ($d) {
         return $d->getId();
     }, UserDomain::getUserDomainsForSeminar($this->course_id));
     $this->current_courseset = CourseSet::getSetForCourse($this->course_id);
     $this->activated_admission_rules = AdmissionRule::getAvailableAdmissionRules();
     if (!$this->current_courseset) {
         $available_coursesets = new SimpleCollection();
         foreach (CourseSet::getCoursesetsByInstituteId($this->course->institut_id) as $cs) {
             $cs = new CourseSet($cs['set_id']);
             if ($cs->isUserAllowedToAssignCourse($this->user_id, $this->course_id)) {
                 $available_coursesets[] = array('id' => $cs->getId(), 'name' => $cs->getName(), 'chdate' => $cs->chdate, 'my_own' => $cs->getUserId() === $GLOBALS['user']->id);
             }
         }
         foreach (CourseSet::getglobalCoursesets() as $cs) {
             $cs = new CourseSet($cs['set_id']);
             if ($cs->isUserAllowedToAssignCourse($this->user_id, $this->course_id)) {
                 $available_coursesets[] = array('id' => $cs->getId(), 'name' => $cs->getName(), 'chdate' => $cs->chdate, 'my_own' => $cs->getUserId() === $GLOBALS['user']->id);
             }
         }
         $available_coursesets = $available_coursesets->findBy('chdate', strtotime('-1 year'), '>');
         $available_coursesets->orderBy('name');
         $this->available_coursesets = $available_coursesets;
         PageLayout::postMessage(MessageBox::info(_("Für diese Veranstaltung sind keine Anmelderegeln festgelegt. Die Veranstaltung ist damit für alle Nutzer zugänglich.")));
     } else {
         if ($this->current_courseset->isSeatDistributionEnabled() && !$this->course->admission_turnout) {
             PageLayout::postMessage(MessageBox::info(_("Diese Veranstaltung ist teilnahmebeschränkt, aber die maximale Teilnehmeranzahl ist nicht gesetzt.")));
         }
     }
     $lockdata = LockRules::getObjectRule($this->course_id);
     if ($lockdata['description'] && LockRules::CheckLockRulePermission($this->course_id, $lockdata['permission'])) {
         PageLayout::postMessage(MessageBox::info(formatLinks($lockdata['description'])));
     }
 }
Example #2
0
 /**
  * Saves the given course set to database.
  *
  * @param String $coursesetId the course set to save or empty if it is a
  * new course set
  */
 public function save_action($coursesetId = '')
 {
     if (!$this->instant_course_set_view && (!Request::submitted('submit') || !Request::get('name') || !Request::getArray('institutes'))) {
         $this->flash['name'] = Request::get('name');
         $this->flash['institutes'] = Request::getArray('institutes');
         $this->flash['courses'] = Request::getArray('courses');
         $this->flash['rules'] = Request::getArray('rules');
         $this->flash['userlists'] = Request::getArray('userlists');
         $this->flash['infotext'] = Request::get('infotext');
         $this->flash['private'] = (bool) Request::get('private');
         if (Request::submitted('add_institute')) {
             $this->flash['institutes'] = array_merge($this->flash['institutes'], array(Request::option('institute_id')));
         } else {
             $this->flash['institute_id'] = Request::get('institute_id');
             $this->flash['institute_id_parameter'] = Request::get('institute_id_parameter');
         }
         if (!Request::submitted('add_institute') && !Request::option('name')) {
             $this->flash['error'] = _('Bitte geben Sie einen Namen für das Anmeldeset an!');
         }
         if (!Request::submitted('add_institute') && !Request::getArray('institutes')) {
             $this->flash['error'] = _('Bitte geben Sie mindestens eine Einrichtung an, zu der das Anmeldeset gehört!');
         }
         $this->redirect($this->url_for('admission/courseset/configure', $coursesetId));
     } else {
         $courseset = new CourseSet($coursesetId);
         if (!$courseset->getUserId()) {
             $courseset->setUserId($GLOBALS['user']->id);
         }
         $courseset->setName(Request::get('name'));
         if (Request::submitted('institutes')) {
             $courseset->setInstitutes(Request::getArray('institutes'));
         }
         if (Request::submitted('semester')) {
             $courseset->setCourses(Request::getArray('courses'));
         }
         if (Request::submitted('userlists')) {
             $courseset->setUserLists(Request::getArray('userlists'));
         }
         if (!$this->instant_course_set_view && $courseset->isUserAllowedToEdit($GLOBALS['user']->id)) {
             $courseset->setPrivate((bool) Request::get('private'));
         }
         if (Request::submitted('infotext')) {
             $courseset->setInfoText(Request::get('infotext'));
         }
         $courseset->clearAdmissionRules();
         foreach (Request::getArray('rules') as $serialized) {
             $rule = unserialize($serialized);
             $courseset->addAdmissionRule($rule);
         }
         $courseset->store();
         PageLayout::postMessage(MessageBox::success(sprintf(_("Das Anmeldeset: %s wurde gespeichert"), htmlReady($courseset->getName()))));
         if ($this->instant_course_set_view) {
             $this->redirect($this->url_for('course/admission'));
         } else {
             $this->redirect($this->url_for('admission/courseset/configure', $courseset->getId()));
         }
     }
 }