/** * @param Veranstaltung $veranstaltung * @param int $limit * @return array|AenderungsantragKommentar[] */ public static function holeNeueste($veranstaltung, $limit = 0) { $antrag_ids = array(); /** @var array|Antrag[] $antraege */ $antraege = Antrag::model()->findAllByAttributes(array("veranstaltung_id" => $veranstaltung->id)); foreach ($antraege as $a) { $antrag_ids[] = $a->id; } if (count($antrag_ids) == 0) { return array(); } $condition = array("order" => "datum DESC"); if ($limit > 0) { $condition["limit"] = $limit; } $unsichtbar = $veranstaltung->getAntragUnsichtbarStati(); $arr = AenderungsantragKommentar::model()->with(array("aenderungsantrag" => array("condition" => "aenderungsantrag.status NOT IN (" . implode(", ", $unsichtbar) . ") AND aenderungsantrag.antrag_id IN (" . implode(", ", $antrag_ids) . ")")))->findAllByAttributes(array("status" => AenderungsantragKommentar::$STATUS_FREI), $condition); return $arr; }
/** * @param Veranstaltung $veranstaltung * @param int $limit * @return array|AntragKommentar[] */ public static function holeNeueste($veranstaltung, $limit = 0) { $condition = array("order" => "datum DESC"); if ($limit > 0) { $condition["limit"] = $limit; } $unsichtbar = $veranstaltung->getAntragUnsichtbarStati(); $arr = AntragKommentar::model()->with(array("antrag" => array("condition" => "antrag.status NOT IN (" . implode(", ", $unsichtbar) . ") AND antrag.veranstaltung_id = " . IntVal($veranstaltung->id))))->findAllByAttributes(array("status" => AntragKommentar::$STATUS_FREI), $condition); return $arr; }
/* @var $this AntraegeController */ /* @var $model Antrag */ $this->breadcrumbs = array(Yii::t('app', 'Administration') => $this->createUrl('/admin/index'), $model->label(2) => array('index'), "Durchsuchen"); $this->menu = array(array('label' => $model->label(2), 'url' => array('index'), "icon" => "home")); Yii::app()->clientScript->registerScript('search', "\n\$('.search-button').click(function(){\n\t\$('.search-form').toggle();\n\treturn false;\n});\n\$('.search-form form').submit(function(){\n\t\$.fn.yiiGridView.update('antrag-grid', {\n\t\tdata: \$(this).serialize()\n\t});\n\treturn false;\n});\n"); ?> <h1><?php echo GxHtml::encode($model->label(2)) . ' ' . Yii::t('app', 'Manage'); ?> </h1> <p> <?php Yii::t('app', 'You may optionally enter a comparison operator (<, <=, >, >=, <> or =) at the beginning of each of your search values to specify how the comparison should be done.'); ?> </p> <?php echo GxHtml::link(Yii::t('app', 'Advanced Search'), '#', array('class' => 'search-button')); ?> <div class="search-form"> <?php $this->renderPartial('_search', array('model' => $model)); ?> </div><!-- search-form --> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'antrag-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array('id', array('name' => 'veranstaltung', 'value' => 'GxHtml::valueEx($data->veranstaltung)', 'filter' => GxHtml::listDataEx(Veranstaltung::model()->findAllAttributes(null, true))), array('name' => 'abgeleitet_von', 'value' => 'GxHtml::valueEx($data->abgeleitetVon)', 'filter' => GxHtml::listDataEx(Antrag::model()->findAllAttributes(null, true))), 'typ', 'name', 'revision_name', array('class' => 'CButtonColumn', 'template' => '{update}'))));
</div> <!-- row --> <div style="margin-left: 10px;"> <?php echo $form->textArea($model, 'text'); ?> <?php echo $form->error($model, 'text'); ?> </div> <?php if ($model->edit_datum != null) { echo "Zuletzt geändert: " . $model->edit_datum; } if (in_array($model->text_id, Veranstaltung::getHTMLStandardtextIDs())) { ?> <script> function ckeditor_full(id) { CKEDITOR.replace(id, { allowedContent: true, // Remove unused plugins. //removePlugins: 'bidi,dialogadvtab,div,filebrowser,flash,format,forms,horizontalrule,iframe,justify,liststyle,pagebreak,showborders,stylescombo,table,tabletools,templates', //removePlugins: 'stylescombo,format,save,newpage,print,templates,showblocks,specialchar,about,preview,pastetext,pastefromword,magicline' + ',sourcearea', extraPlugins: 'autogrow', scayt_sLang: 'de_DE', toolbar: [ { name: 'document', items : [ 'Source' ] },
/** * @param string $id * @return Standardtext */ public function getStandardtext($id) { $vtext = Texte::model()->findByAttributes(array("text_id" => $id, "veranstaltung_id" => $this->id)); /** @var Texte|null $vtext */ if (is_null($vtext)) { $edit_link = array("admin/texte/create", array("key" => $id, "veranstaltung_id" => $this->url_verzeichnis)); $vtext = Texte::model()->findByAttributes(array("text_id" => $id, "veranstaltung_id" => null)); $is_fallback = true; } else { $edit_link = array("admin/texte/update", array("id" => $vtext->id, "veranstaltung_id" => $this->url_verzeichnis)); $is_fallback = false; } $text = is_null($vtext) ? "" : $vtext->text; if (!$this->isAdminCurUser()) { $edit_link = null; } $html = in_array($id, Veranstaltung::getHTMLStandardtextIDs()); return new Standardtext($id, $text, $html, $edit_link, $is_fallback); }
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; }
/** * @param Veranstaltung $veranstaltung * @param int $limit * @return array|Antrag[] */ public static function holeNeueste($veranstaltung, $limit = 5) { $oCriteria = new CDbCriteria(); $oCriteria->alias = "antrag"; $oCriteria->addCondition("antrag.veranstaltung_id = " . IntVal($veranstaltung->id)); $unsichtbar = $veranstaltung->getAntragUnsichtbarStati(); $unsichtbar[] = IAntrag::$STATUS_MODIFIZIERT; $oCriteria->addNotInCondition("antrag.status", $unsichtbar); $oCriteria->order = 'antrag.datum_einreichung DESC'; $dataProvider = new CActiveDataProvider('Antrag', array('criteria' => $oCriteria, 'pagination' => array('pageSize' => IntVal($limit)))); return $dataProvider->data; }
/** * @param Veranstaltung $veranstaltung * @param null|int $antrag_typ * @param bool $text2 * @return int */ function veranstaltungsspezifisch_antrag_max_len($veranstaltung, $antrag_typ, $text2 = false) { return $veranstaltung->getEinstellungen()->antragstext_max_len; }
/** * @return Veranstaltung|null */ private function actionVeranstaltung_loadData() { $unsichtbar_ = IAntrag::$STATI_UNSICHTBAR; $unsichtbar = array(); foreach ($unsichtbar_ as $stat) { if ($stat != Antrag::$STATUS_EINGEREICHT_UNGEPRUEFT) { $unsichtbar[] = $stat; } } /** @var Veranstaltung $veranstaltung */ $this->veranstaltung = Veranstaltung::model()->with(array('antraege' => array('joinType' => "LEFT OUTER JOIN", 'on' => "`antraege`.`veranstaltung_id` = `t`.`id` AND `antraege`.`status` NOT IN (" . implode(", ", $unsichtbar) . ")"), 'antraege.aenderungsantraege' => array('joinType' => "LEFT OUTER JOIN", "on" => "`aenderungsantraege`.`antrag_id` = `antraege`.`id` AND `aenderungsantraege`.`status` NOT IN (" . implode(", ", $unsichtbar) . ") AND `antraege`.`status` NOT IN (" . implode(", ", $unsichtbar) . ")")))->findByAttributes(array("id" => $this->veranstaltung->id)); return $this->veranstaltung; }
/** * @param Veranstaltung $veranstaltung * @param Person $antragstellerIn * @param string $label_name * @param string $label_organisation * @return string */ public function getAntragsstellerInStdForm($veranstaltung, $antragstellerIn, $label_name = "Name", $label_organisation = "Gremium, LAG...") { $str = ''; $einstellungen = $veranstaltung->getEinstellungen(); if ($veranstaltung->isAdminCurUser()) { $str .= '<label><input type="checkbox" name="andere_antragstellerIn" checked> Ich lege diesen Antrag für eine andere AntragstellerIn an <small>(Admin-Funktion)</small> </label>'; } $str .= '<div class="antragstellerIn_daten"> <div class="control-group name_row"><label class="control-label" for="Person_name">' . $label_name . '</label> <div class="controls name_row"><input name="Person[name]" id="Person_name" type="text" maxlength="100" value="'; if ($antragstellerIn) { $str .= CHtml::encode($antragstellerIn->name); } $str .= '"></div> </div> <div class="control-group organisation_row"><label class="control-label" for="Person_organisation">' . $label_organisation . '</label> <div class="controls organisation_row"><input name="Person[organisation]" id="Person_organisation" type="text" maxlength="100" value="'; if ($antragstellerIn) { $str .= CHtml::encode($antragstellerIn->organisation); } $str .= '"></div> </div> <div class="control-group email_row"><label class="control-label" for="Person_email">E-Mail</label> <div class="controls email_row"><input'; if ($einstellungen->antrag_neu_braucht_email) { $str .= ' required'; } $str .= ' name="Person[email]" id="Person_email" type="text" maxlength="200" value="'; if ($antragstellerIn) { $str .= CHtml::encode($antragstellerIn->email); } $str .= '"></div> </div>'; if ($einstellungen->antrag_neu_kann_telefon) { $str .= '<div class="control-group telefon_row"><label class="control-label" for="Person_telefon">Telefon</label> <div class="controls telefon_row"><input'; if ($einstellungen->antrag_neu_braucht_telefon) { $str .= ' required'; } $str .= ' name="Person[telefon]" id="Person_telefon" type="text" maxlength="100" value="'; if ($antragstellerIn) { $str .= CHtml::encode($antragstellerIn->telefon); } $str .= '"></div> </div>'; } $str .= '</div>'; return $str; }
/* @var $this TexteController */ /* @var $model Texte */ $this->breadcrumbs = array(Yii::t('app', 'Administration') => $this->createUrl('/admin/index'), $model->label(2) => array('index'), "Durchsuchen"); $this->menu = array(array('label' => $model->label(2) . ' ' . Yii::t('app', 'List'), 'url' => array('index'), "icon" => "home"), array('label' => $model->label() . ' ' . Yii::t('app', 'Create'), 'url' => array('create'), "icon" => "plus-sign")); Yii::app()->clientScript->registerScript('search', "\n\$('.search-button').click(function(){\n\t\$('.search-form').toggle();\n\treturn false;\n});\n\$('.search-form form').submit(function(){\n\t\$.fn.yiiGridView.update('texte-grid', {\n\t\tdata: \$(this).serialize()\n\t});\n\treturn false;\n});\n"); ?> <h1><?php echo GxHtml::encode($model->label(2)) . ' ' . Yii::t('app', 'Manage'); ?> </h1> <p> <?php Yii::t('app', 'You may optionally enter a comparison operator (<, <=, >, >=, <> or =) at the beginning of each of your search values to specify how the comparison should be done.'); ?> </p> <?php echo GxHtml::link(Yii::t('app', 'Advanced Search'), '#', array('class' => 'search-button')); ?> <div class="search-form"> <?php $this->renderPartial('_search', array('model' => $model)); ?> </div><!-- search-form --> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'texte-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array('id', 'text_id', array('name' => 'veranstaltung_id', 'value' => 'GxHtml::valueEx($data->veranstaltung)', 'filter' => GxHtml::listDataEx(Veranstaltung::model()->findAllAttributes(null, true))), 'text', 'edit_datum', array('class' => 'CButtonColumn', 'template' => '{update}'))));
public function actionReiheVeranstaltungen($veranstaltungsreihe_id = "") { $this->loadVeranstaltung($veranstaltungsreihe_id); if (!$this->veranstaltung->isAdminCurUser()) { $this->redirect($this->createUrl("/veranstaltung/login", array("back" => yii::app()->getRequest()->requestUri))); } $user = Yii::app()->user; $ich = Person::model()->findByAttributes(array("auth" => $user->id)); if (AntiXSS::isTokenSet("add")) { $referenz = null; $url_vorhanden = false; foreach ($this->veranstaltungsreihe->veranstaltungen as $veranstaltung) { if ($veranstaltung->id == $_REQUEST["vorlage"]) { $referenz = $veranstaltung; } if ($veranstaltung->url_verzeichnis == $_REQUEST["url"]) { $url_vorhanden = true; } } if (!$referenz) { Yii::app()->user->setFlash("error", "Vorlage nicht gefunden"); } elseif ($url_vorhanden) { Yii::app()->user->setFlash("error", "Es existiert schon eine Veranstaltung mit dieser Adresse / diesem Verzeichnis"); } elseif (preg_match("/[^a-z0-9_-]/siu", $_REQUEST["url"])) { Yii::app()->user->setFlash("error", "Die Adresse / das Verzeichnis darf nur aus Buchstaben ohne Umlauten, Zahlen und den Zeichen _ und - bestehen."); } else { $veranstaltung = new Veranstaltung(); $veranstaltung->veranstaltungsreihe_id = $this->veranstaltungsreihe->id; $veranstaltung->name = $veranstaltung->name_kurz = $_REQUEST["name"]; $veranstaltung->policy_kommentare = $referenz->policy_kommentare; $veranstaltung->policy_aenderungsantraege = $referenz->policy_aenderungsantraege; $veranstaltung->policy_antraege = $referenz->policy_antraege; $veranstaltung->policy_unterstuetzen = $referenz->policy_unterstuetzen; $veranstaltung->typ = $referenz->typ; $veranstaltung->url_verzeichnis = $_REQUEST["url"]; $veranstaltung->admin_email = $referenz->admin_email; $veranstaltung->setEinstellungen($referenz->getEinstellungen()); if ($veranstaltung->save()) { Yii::app()->user->setFlash("success", "Die neue Veranstaltung wurde angelegt"); } else { Yii::app()->user->setFlash("error", "Ein Fehler ist aufgetreten: " . print_r($veranstaltung->getErrors(), true)); } } $this->veranstaltungsreihe->refresh(); } if (AntiXSS::isTokenSet("set_std")) { $got_id = AntiXSS::getTokenVal("set_std"); $neuer_standard = $this->veranstaltungsreihe->id; foreach ($this->veranstaltungsreihe->veranstaltungen as $veranstaltung) { if ($veranstaltung->id == $got_id) { $neuer_standard = $got_id; } } $this->veranstaltungsreihe->aktuelle_veranstaltung_id = $neuer_standard; $this->veranstaltungsreihe->save(false); $this->veranstaltungsreihe->refresh(); Yii::app()->user->setFlash("success", "Der neue Standard wurde gesetzt."); } if (AntiXSS::isTokenSet("remove")) { } $this->render('reihe_veranstaltungen', array("sprache" => $this->veranstaltung->getSprache(), "ich" => $ich, "del_url" => $this->createUrl("/admin/index/reiheVeranstaltungen", array(AntiXSS::createToken("remove") => "REMOVEID")), "add_url" => $this->createUrl("/admin/index/reiheVeranstaltungen"), "set_std_url" => $this->createUrl("/admin/index/reiheVeranstaltungen", array(AntiXSS::createToken("set_std") => "STDID")))); }