/** * Deletes the admission rule and all associated data. */ public function delete() { parent::delete(); // Delete rule data. $stmt = DBManager::get()->prepare("DELETE FROM `lockedadmissions` \n WHERE `rule_id`=?"); $stmt->execute(array($this->id)); }
/** * Validates if the given request data is sufficient to configure this rule * (e.g. if required values are present). * * @param Array Request data * @return Array Error messages. */ public function validate($data) { $errors = parent::validate($data); if (!$data['distributiontime']) { $data['distributiontime'] = '23:59'; } $ddate = strtotime($data['distributiondate'] . ' ' . $data['distributiontime']); if (!$data['enable_FCFS'] && (!$data['distributiondate'] || $ddate < time() + $this->minimum_timespan_to_distribution_time * 60)) { $errors[] = sprintf(_('Bitte geben Sie für die Platzverteilung ein Datum an, das weiter in der Zukunft liegt. Das frühestmögliche Datum ist %s.'), strftime('%x %R', time() + $this->minimum_timespan_to_distribution_time * 60)); } return $errors; }
/** * Validates if the given request data is sufficient to configure this rule * (e.g. if required values are present). * * @param Array Request data * @return Array Error messages. */ public function validate($data) { $errors = parent::validate($data); if (!$data['startdate'] && !$data['enddate']) { $errors[] = _('Bitte geben Sie entweder ein Start- oder Enddatum an.'); } if ($data['startdate'] && $data['enddate'] && strtotime($data['enddate'] . ' ' . $data['endtime']) < strtotime($data['startdate'] . ' ' . $data['starttime'])) { $errors[] = _('Das Enddatum darf nicht vor dem Startdatum liegen.'); } return $errors; }
/** * Fetches the available types of admission rules, including disabled ones.. */ public static function getAdmissionRuleTypes() { return AdmissionRule::getAvailableAdmissionRules(false); }
/** * Validates if the given request data is sufficient to configure this rule * (e.g. if required values are present). * * @param Array Request data * @return Array Error messages. */ public function validate($data) { $errors = parent::validate($data); if (!$data['password1']) { $errors[] = _('Das Passwort darf nicht leer sein.'); } if ($data['password1'] != $data['password2']) { $errors[] = _('Das Passwort stimmt nicht mit der Wiederholung überein.'); } return $errors; }
/** * Validates if the values given in the current request are sufficient to * configure a rule of the given type. * * @param String $ruleType Class name of the rule to check. */ public function validate_action($ruleType) { $rules = AdmissionRule::getAvailableAdmissionRules(); $rule = new $ruleType(); $this->errors = $rule->validate(Request::getInstance()); }
public function getMessage($condition = null) { $message = parent::getMessage(); if ($condition) { return sprintf($message, $condition); } else { return $message; } }
public function getMessage($course = null) { $message = parent::getMessage(); if ($course) { return sprintf($message, $course->getFullname('number-name')); } else { return $message; } }
function instant_course_set_action() { $this->response->add_header('X-Title', _('Neue Anmelderegel')); list($type, $another_type) = explode('_', Request::option('type')); list($rule_id, $another_rule_id) = explode('_', Request::option('rule_id')); $rule_types = AdmissionRule::getAvailableAdmissionRules(true); if (isset($rule_types[$type])) { $rule = new $type($rule_id); if (isset($rule_types[$another_type])) { $another_rule = new $another_type($another_rule_id); } $course_set = CourseSet::getSetForRule($rule_id) ?: new CourseSet(); if (Request::isPost() && Request::submitted('save') || $rule instanceof LockedAdmission) { if ($rule instanceof LockedAdmission) { $course_set_id = CourseSet::getGlobalLockedAdmissionSetId(); CourseSet::addCourseToSet($course_set_id, $this->course_id); PageLayout::postMessage(MessageBox::success(_("Die Veranstaltung wurde gesperrt."))); $this->redirect($this->url_for('/index')); return; } else { CSRFProtection::verifyUnsafeRequest(); $rule->setAllData(Request::getInstance()); $errors = $rule->validate(Request::getInstance()); if ($another_rule) { $another_rule->setAllData(Request::getInstance()); $errors = array_merge($errors, $another_rule->validate(Request::getInstance())); } if (!strlen(trim(Request::get('instant_course_set_name')))) { $errors[] = _("Bitte geben Sie einen Namen für die Anmelderegel ein!"); } else { $course_set->setName(trim(Request::get('instant_course_set_name'))); } if (count($errors)) { PageLayout::postMessage(MessageBox::error(_("Speichern fehlgeschlagen"), array_map('htmlready', $errors))); } else { $rule->store(); $course_set->setPrivate(true); $course_set->addAdmissionRule($rule); $course_set->setAlgorithm(new RandomAlgorithm()); //TODO $course_set->setCourses(array($this->course_id)); if ($another_rule) { $course_set->addAdmissionRule($another_rule); } $course_set->store(); PageLayout::postMessage(MessageBox::success(_("Die Anmelderegel wurde erzeugt und der Veranstaltung zugewiesen."))); $this->redirect($this->url_for('/index')); return; } } } if (!$course_set->getId()) { $course_set->setName($rule->getName() . ': ' . $this->course->name); } $this->rule_template = $rule->getTemplate(); $this->type = $type; $this->rule_id = $rule_id; if ($another_rule) { $this->type = $this->type . '_' . $another_type; $this->rule_id = $this->rule_id . '_' . $another_rule->getId(); $this->rule_template = $this->rule_template . $another_rule->getTemplate(); } $this->course_set_name = $course_set->getName(); } else { throw new Trails_Exception(400); } }
public function getMessage($max_number = null) { $message = parent::getMessage(); if (isset($max_number)) { return sprintf($message, $max_number); } else { return $message; } }