예제 #1
0
 /**
  * @return Veranstaltungsreihe[]
  */
 public static function getSidebarReihen()
 {
     /** @var Veranstaltungsreihe[] $reihen */
     $reihen = Veranstaltungsreihe::model()->findAllByAttributes(array("oeffentlich" => 1), array("order" => "id DESC"));
     $reihen2 = array();
     foreach ($reihen as $reihe) {
         if ($reihe->aktuelle_veranstaltung && !$reihe->aktuelle_veranstaltung->getEinstellungen()->wartungs_modus_aktiv) {
             $reihen2[] = $reihe;
         }
     }
     return $reihen2;
 }
예제 #2
0
 public function actionNeuAnlegen()
 {
     $this->layout = '//layouts/column2';
     if (Yii::app()->user->isGuest) {
         $this->redirect($this->createUrl("infos/selbstEinsetzen"));
     }
     /** @var Person $user */
     $user = Person::model()->findByAttributes(array("auth" => yii::app()->user->getId()));
     if (!$user->istWurzelwerklerIn()) {
         $this->redirect($this->createUrl("infos/selbstEinsetzen"));
     }
     $anlegenformmodel = new CInstanzAnlegenForm();
     $error_str = "";
     if (AntiXSS::isTokenSet("anlegen")) {
         $anlegenformmodel->setAttributes($_REQUEST["CInstanzAnlegenForm"]);
         $reihe = new Veranstaltungsreihe();
         $reihe->subdomain = trim($anlegenformmodel->subdomain);
         $reihe->name = $reihe->name_kurz = $anlegenformmodel->name;
         $reihe->offiziell = false;
         $reihe->oeffentlich = true;
         $reihe->kontakt_intern = $anlegenformmodel->kontakt;
         $einstellungen = $reihe->getEinstellungen();
         $einstellungen->bereit_zu_zahlen = $anlegenformmodel->zahlung;
         $reihe->setEinstellungen($einstellungen);
         $subdomain = Veranstaltungsreihe::model()->findByAttributes(array("subdomain" => $reihe->subdomain));
         if ($subdomain) {
             $error_str .= "Es gibt leider bereits eine Reihe mit dieser Subdomain.<br>\n";
         } elseif ($reihe->save()) {
             $veranstaltung = new Veranstaltung();
             $veranstaltung->veranstaltungsreihe_id = $reihe->id;
             $veranstaltung->name = $veranstaltung->name_kurz = $anlegenformmodel->name;
             $veranstaltung->antragsschluss = $anlegenformmodel->antragsschluss;
             $veranstaltung->policy_kommentare = Veranstaltung::$POLICY_ALLE;
             $veranstaltung->policy_unterstuetzen = "Niemand";
             $veranstaltung->typ = $anlegenformmodel->typ;
             $veranstaltung->url_verzeichnis = $anlegenformmodel->subdomain;
             $veranstaltung->admin_email = $anlegenformmodel->admin_email;
             $einstellungen = $veranstaltung->getEinstellungen();
             $einstellungen->wartungs_modus_aktiv = !$anlegenformmodel->sofort_offen;
             if ($anlegenformmodel->typ == Veranstaltung::$TYP_PROGRAMM) {
                 $einstellungen->zeilen_nummerierung_global = true;
                 $einstellungen->ae_nummerierung_global = true;
                 $einstellungen->freischaltung_antraege = false;
                 $einstellungen->freischaltung_aenderungsantraege = false;
                 $veranstaltung->policy_antraege = IPolicyAntraege::$POLICY_ADMINS;
                 $veranstaltung->policy_aenderungsantraege = IPolicyAntraege::$POLICY_ALLE;
             }
             if ($anlegenformmodel->typ == Veranstaltung::$TYP_PARTEITAG) {
                 $einstellungen->zeilen_nummerierung_global = false;
                 $einstellungen->ae_nummerierung_global = false;
                 $einstellungen->freischaltung_antraege = true;
                 $einstellungen->freischaltung_aenderungsantraege = true;
                 $veranstaltung->policy_antraege = IPolicyAntraege::$POLICY_ALLE;
                 $veranstaltung->policy_aenderungsantraege = IPolicyAntraege::$POLICY_ALLE;
             }
             $veranstaltung->setEinstellungen($einstellungen);
             if ($veranstaltung->save()) {
                 $reihe->aktuelle_veranstaltung_id = $veranstaltung->id;
                 $reihe->save();
                 Yii::app()->db->createCommand()->insert("veranstaltungsreihen_admins", array("veranstaltungsreihe_id" => $reihe->id, "person_id" => $user->id));
                 $impressum = new Texte();
                 $impressum->edit_datum = new CDbExpression("NOW()");
                 $impressum->text_id = "impressum";
                 $impressum->veranstaltung_id = $veranstaltung->id;
                 $impressum->text = nl2br(CHtml::encode($anlegenformmodel->kontakt));
                 $impressum->save();
                 $impressum = new Texte();
                 $impressum->edit_datum = new CDbExpression("NOW()");
                 $impressum->text_id = "wartungsmodus";
                 $impressum->veranstaltung_id = $veranstaltung->id;
                 $impressum->text = "Diese Veranstaltung wurde vom Admin noch nicht freigeschaltet.";
                 $impressum->save();
                 $login_id = $user->id;
                 $login_code = AntiXSS::createToken($login_id);
                 $reihen = Veranstaltungsreihe::getSidebarReihen();
                 $this->render('neu_angelegt', array("reihen" => $reihen, "reihe" => $reihe, "login_id" => $login_id, "login_code" => $login_code));
                 return;
             } else {
                 foreach ($veranstaltung->errors as $err) {
                     foreach ($err as $e) {
                         $error_str .= $e . "<br>\n";
                     }
                 }
             }
         } else {
             foreach ($reihe->errors as $err) {
                 foreach ($err as $e) {
                     $error_str .= $e . "<br>\n";
                 }
             }
         }
     }
     $reihen = Veranstaltungsreihe::getSidebarReihen();
     $this->render('neu_anlegen', array("reihen" => $reihen, "anlegenformmodel" => $anlegenformmodel, "error_string" => $error_str));
 }
 /**
  * @param string $veranstaltungsreihe_id
  * @param string $veranstaltung_id
  * @param null|Antrag $check_antrag
  * @param null|Aenderungsantrag $check_aenderungsantrag
  * @return null|Veranstaltung
  */
 public function loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id = "", $check_antrag = null, $check_aenderungsantrag = null)
 {
     if ($veranstaltungsreihe_id == "") {
         $veranstaltungsreihe_id = Yii::app()->params['standardVeranstaltungsreihe'];
     }
     if ($veranstaltung_id == "") {
         /** @var Veranstaltungsreihe $reihe */
         $reihe = Veranstaltungsreihe::model()->findByAttributes(array("subdomain" => $veranstaltungsreihe_id));
         if ($reihe) {
             $veranstaltung_id = $reihe->aktuelle_veranstaltung->url_verzeichnis;
         } else {
             $this->robots_noindex = true;
             $this->render('error', array("code" => 404, "html" => true, "message" => "Die angegebene Veranstaltung wurde nicht gefunden. Höchstwahrscheinlich liegt da an einem Tippfehler in der Adresse im Browser.<br>\n\t\t\t\t\t<br>\n\t\t\t\t\tAuf der <a href='http://www.antragsgruen.de/'>Antragsgrün-Startseite</a> siehst du rechts eine Liste der aktiven Veranstaltungen."));
             Yii::app()->end();
         }
     }
     if (is_null($this->veranstaltungsreihe)) {
         if (is_numeric($veranstaltungsreihe_id)) {
             $this->veranstaltungsreihe = Veranstaltungsreihe::model()->findByPk($veranstaltungsreihe_id);
         } else {
             $this->veranstaltungsreihe = Veranstaltungsreihe::model()->findByAttributes(array("subdomain" => $veranstaltungsreihe_id));
         }
     }
     if (is_null($this->veranstaltung) && $this->veranstaltungsreihe) {
         $this->veranstaltung = Veranstaltung::model()->findByAttributes(array("url_verzeichnis" => $veranstaltung_id, "veranstaltungsreihe_id" => $this->veranstaltungsreihe->id));
     }
     if (is_null($this->veranstaltung)) {
         $this->robots_noindex = true;
         $this->render("../veranstaltung/error", array("code" => 500, "message" => "Leider existiert die aufgerufene Seite nicht. Falls du der Meinung bist, dass das ein Fehler ist, melde dich bitte per E-Mail (info@antragsgruen.de) bei uns."));
         Yii::app()->end(500);
     }
     if (strtolower($this->veranstaltung->veranstaltungsreihe->subdomain) != strtolower($veranstaltungsreihe_id)) {
         Yii::app()->user->setFlash("error", "Fehlerhafte Parameter - die Veranstaltung gehört nicht zur Veranstaltungsreihe.");
         $this->redirect($this->createUrl("veranstaltung/index", array("veranstaltung_id" => $veranstaltung_id)));
         return null;
     }
     if (is_object($check_antrag) && strtolower($check_antrag->veranstaltung->url_verzeichnis) != strtolower($veranstaltung_id)) {
         Yii::app()->user->setFlash("error", "Fehlerhafte Parameter - der Antrag gehört nicht zur Veranstaltung.");
         $this->redirect($this->createUrl("veranstaltung/index", array("veranstaltung_id" => $veranstaltung_id)));
         return null;
     }
     if ($check_aenderungsantrag != null && ($check_antrag == null || $check_aenderungsantrag->antrag_id != $check_antrag->id)) {
         Yii::app()->user->setFlash("error", "Fehlerhafte Parameter - der Änderungsantrag gehört nicht zum Antrag.");
         $this->redirect($this->createUrl("veranstaltung/index", array("veranstaltung_id" => $veranstaltung_id)));
         return null;
     }
     if (!is_a($this->veranstaltung, "Veranstaltung") || $this->veranstaltung->policy_kommentare == Veranstaltung::$POLICY_NIEMAND) {
         $this->text_comments = false;
     }
     return $this->veranstaltung;
 }