/** * @param string $veranstaltungsreihe_id * @param string $veranstaltung_id * @param int $adoptInitiators */ public function actionNeu($veranstaltungsreihe_id = "", $veranstaltung_id, $adoptInitiators = 0) { $this->layout = '//layouts/column2'; /** @var Veranstaltung $veranstaltung */ $this->veranstaltung = $veranstaltung = $this->loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id); $this->testeWartungsmodus(); $model = new Antrag(); $model->status = Antrag::$STATUS_EINGEREICHT_UNGEPRUEFT; $model->typ = isset($_REQUEST["typ"]) ? IntVal($_REQUEST["typ"]) : Antrag::$TYP_ANTRAG; $model->veranstaltung_id = $veranstaltung->id; $model->veranstaltung = $veranstaltung; $model->text_unveraenderlich = $this->veranstaltung->getEinstellungen()->admins_duerfen_aendern ? 0 : 1; if (!$veranstaltung->getPolicyAntraege()->checkCurUserHeuristically()) { Yii::app()->user->setFlash("error", "Es kann kein Antrag angelegt werden."); $this->redirect($this->createUrl("veranstaltung/index")); } $unterstuetzerInnen = array(); $tags_pre = array(); if (AntiXSS::isTokenSet("antragneu")) { $model->attributes = $_REQUEST["Antrag"]; if ($veranstaltung->getEinstellungen()->antrag_begruendungen) { if ($this->veranstaltung->getEinstellungen()->begruendung_in_html && isset($_REQUEST["Antrag"]["begruendung_html"])) { $model->begruendung_html = 1; $model->begruendung = HtmlBBcodeUtils::html_normalize($_REQUEST["Antrag"]["begruendung"]); } else { $model->begruendung_html = 0; $model->begruendung = HtmlBBcodeUtils::bbcode_normalize($_REQUEST["Antrag"]["begruendung"]); } } $model->text = HtmlBBcodeUtils::bbcode_normalize($model->text); $model->datum_einreichung = new CDbExpression('NOW()'); $model->status = Antrag::$STATUS_UNBESTAETIGT; $model->revision_name = ""; if ($model->text2) { $model->text2 = HtmlBBcodeUtils::bbcode_normalize($model->text2); } $goon = true; if (!$this->veranstaltung->getPolicyAntraege()->checkAntragSubmit()) { Yii::app()->user->setFlash("error", "Keine Berechtigung zum Anlegen von Anträgen."); $goon = false; } if ($goon) { if ($model->save()) { $this->veranstaltung->getPolicyAntraege()->submitAntragsstellerInView_Antrag($model); /* $next_status = $_REQUEST["Antrag"]["status"] */ if ($this->veranstaltung->getEinstellungen()->antrag_hat_mehrere_tags) { if (isset($_REQUEST["tags"])) { foreach ($_REQUEST["tags"] as $tag_id) { foreach ($this->veranstaltung->tags as $tag) { if ($tag->id == $tag_id) { Yii::app()->db->createCommand()->insert("antrag_tags", array("antrag_id" => $model->id, "tag_id" => $tag_id)); } } } } } else { if (isset($_REQUEST["tag"])) { foreach ($this->veranstaltung->tags as $tag) { if ($tag->id == $_REQUEST["tag"]) { Yii::app()->db->createCommand()->insert("antrag_tags", array("antrag_id" => $model->id, "tag_id" => IntVal($_REQUEST["tag"]))); } } } } $next_status = Antrag::$STATUS_EINGEREICHT_UNGEPRUEFT; $this->redirect($this->createUrl("antrag/neuConfirm", array("antrag_id" => $model->id, "next_status" => $next_status, "from_mode" => "neu"))); } else { foreach ($model->getErrors() as $key => $val) { foreach ($val as $val2) { Yii::app()->user->setFlash("error", "Antrag konnte nicht angelegt werden: {$key}: " . $val2); } } } } } $hiddens = array(); $js_protection = Yii::app()->user->isGuest; if ($js_protection) { $hiddens["form_token"] = AntiXSS::createToken("antragneu"); } else { $hiddens[AntiXSS::createToken("antragneu")] = "1"; } if (Yii::app()->user->isGuest || $this->veranstaltung->isAdminCurUser()) { $antragstellerIn = new Person(); $antragstellerIn->typ = Person::$TYP_PERSON; } else { $antragstellerIn = Person::model()->findByAttributes(array("auth" => Yii::app()->user->id)); } if ($adoptInitiators > 0 && $this->veranstaltung->isAdminCurUser()) { $templateMotion = $this->veranstaltung->getMotion($adoptInitiators); if ($templateMotion) { $model->typ = $templateMotion->typ; foreach ($templateMotion->antragUnterstuetzerInnen as $unt) { if ($unt->rolle == AntragUnterstuetzerInnen::$ROLLE_INITIATORIN) { $antragstellerIn = $unt->person; } if ($unt->rolle == AntragUnterstuetzerInnen::$ROLLE_UNTERSTUETZERIN) { $unterstuetzerInnen[] = $unt->person; } } } } $force_type = null; if (isset($_REQUEST["typ"])) { if (isset(Antrag::$TYPEN[$_REQUEST["typ"]]) && !in_array($_REQUEST["typ"], $this->veranstaltung->getEinstellungen()->antrags_typen_deaktiviert)) { $force_type = IntVal($_REQUEST["typ"]); } } $this->render('bearbeiten_form', array("mode" => "neu", "model" => $model, "force_type" => $force_type, "antragstellerIn" => $antragstellerIn, "unterstuetzerInnen" => $unterstuetzerInnen, "veranstaltung" => $veranstaltung, "hiddens" => $hiddens, "tags_pre" => $tags_pre, "js_protection" => $js_protection, "login_warnung" => false, "sprache" => $model->veranstaltung->getSprache())); }