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