示例#1
0
 public function actionIndex($veranstaltungsreihe_id = "", $veranstaltung_id = "")
 {
     $this->loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id);
     if (!$this->veranstaltung->isAdminCurUser()) {
         $this->redirect($this->createUrl("/veranstaltung/login", array("back" => yii::app()->getRequest()->requestUri)));
     }
     $todo = array();
     if (!is_null($this->veranstaltung)) {
         $standardtexte = $this->veranstaltung->getHTMLStandardtextIDs();
         foreach ($standardtexte as $text) {
             $st = Texte::model()->findByAttributes(array("veranstaltung_id" => $this->veranstaltung->id, "text_id" => $text));
             if ($st == null) {
                 $todo[] = array("Text anlegen:", $text, array("admin/texte/create", array("key" => $text)), null);
             }
         }
         /** @var array|Antrag[] $antraege */
         $antraege = Antrag::model()->findAllByAttributes(array("veranstaltung_id" => $this->veranstaltung->id, "status" => Antrag::$STATUS_EINGEREICHT_UNGEPRUEFT));
         foreach ($antraege as $antrag) {
             $von = $antrag->getAntragstellerInnenStr();
             $todo[] = array("Antrag prüfen:", $antrag->revision_name . " " . $antrag->name, array("admin/antraege/update", array("id" => $antrag->id)), $von);
         }
         /** @var array|Aenderungsantrag[] $aenderungs */
         $aenderungs = Aenderungsantrag::model()->with(array("antrag" => array("alias" => "antrag", "condition" => "antrag.veranstaltung_id = " . IntVal($this->veranstaltung->id))))->findAllByAttributes(array("status" => Aenderungsantrag::$STATUS_EINGEREICHT_UNGEPRUEFT));
         foreach ($aenderungs as $ae) {
             $von = $ae->getAntragstellerInnenStr();
             $todo[] = array("Änderungsanträge prüfen:", $ae->revision_name . " zu " . $ae->antrag->revision_name . " " . $ae->antrag->name, array("admin/aenderungsantraege/update", array("id" => $ae->id)), $von);
         }
         /** @var AntragKommentar[] $kommentare */
         $kommentare = AntragKommentar::model()->with(array("antrag" => array("alias" => "antrag", "condition" => "antrag.veranstaltung_id = " . IntVal($this->veranstaltung->id))))->findAllByAttributes(array("status" => AntragKommentar::$STATUS_NICHT_FREI));
         foreach ($kommentare as $komm) {
             $von = $komm->verfasserIn->name;
             $todo[] = array("Kommentar prüfen:", $komm->verfasserIn->name . " zu " . $komm->antrag->revision_name, array("antrag/anzeige", array("antrag_id" => $komm->antrag_id, "kommentar_id" => $komm->id, "#" => "komm" . $komm->id)), $von);
         }
         /** @var AenderungsantragKommentar[] $kommentare */
         $kommentare = AenderungsantragKommentar::model()->with(array("aenderungsantrag" => array("alias" => "aenderungsantrag"), "aenderungsantrag.antrag" => array("alias" => "antrag", "condition" => "antrag.veranstaltung_id = " . IntVal($this->veranstaltung->id))))->findAllByAttributes(array("status" => AntragKommentar::$STATUS_NICHT_FREI));
         foreach ($kommentare as $komm) {
             $von = $komm->verfasserIn->name;
             $todo[] = array("Kommentar prüfen:", $komm->verfasserIn->name . " zu " . $komm->aenderungsantrag->revision_name, array("aenderungsantrag/anzeige", array("aenderungsantrag_id" => $komm->aenderungsantrag->id, "antrag_id" => $komm->aenderungsantrag->antrag_id, "kommentar_id" => $komm->id, "#" => "komm" . $komm->id)), $von);
         }
     }
     $this->render('index', array("todo" => $todo, "sprache" => $this->veranstaltung->getSprache()));
 }
示例#2
0
 /**
  * @param Antrag $antrag
  * @param int $kommentar_id
  */
 private function performAnzeigeActions($antrag, $kommentar_id)
 {
     if (AntiXSS::isTokenSet("komm_del")) {
         /** @var AntragKommentar $komm */
         $komm = AntragKommentar::model()->findByPk(AntiXSS::getTokenVal("komm_del"));
         if ($komm->antrag_id == $antrag->id && $komm->kannLoeschen(Yii::app()->user) && $komm->status == IKommentar::$STATUS_FREI) {
             $komm->status = IKommentar::$STATUS_GELOESCHT;
             $komm->save();
             Yii::app()->user->setFlash("success", "Der Kommentar wurde gelöscht.");
         } else {
             Yii::app()->user->setFlash("error", "Kommentar nicht gefunden oder keine Berechtigung.");
         }
         $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
     }
     if (AntiXSS::isTokenSet("komm_freischalten") && $kommentar_id > 0) {
         /** @var AntragKommentar $komm */
         $komm = AntragKommentar::model()->findByPk($kommentar_id);
         if ($komm->antrag_id == $antrag->id && $komm->status == IKommentar::$STATUS_NICHT_FREI && $antrag->veranstaltung->isAdminCurUser()) {
             $komm->status = IKommentar::$STATUS_FREI;
             $komm->save();
             Yii::app()->user->setFlash("success", "Der Kommentar wurde freigeschaltet.");
             $benachrichtigt = array();
             foreach ($antrag->veranstaltung->veranstaltungsreihe->veranstaltungsreihenAbos as $abo) {
                 if ($abo->kommentare && !in_array($abo->person_id, $benachrichtigt)) {
                     $abo->person->benachrichtigenKommentar($komm);
                     $benachrichtigt[] = $abo->person_id;
                 }
             }
         } else {
             Yii::app()->user->setFlash("error", "Kommentar nicht gefunden oder keine Berechtigung.");
         }
     }
     if (AntiXSS::isTokenSet("komm_nicht_freischalten") && $kommentar_id > 0) {
         /** @var AntragKommentar $komm */
         $komm = AntragKommentar::model()->findByPk($kommentar_id);
         if ($komm->antrag_id == $antrag->id && $komm->status == IKommentar::$STATUS_NICHT_FREI && $antrag->veranstaltung->isAdminCurUser()) {
             $komm->status = IKommentar::$STATUS_GELOESCHT;
             $komm->save();
             Yii::app()->user->setFlash("success", "Der Kommentar wurde gelöscht.");
         } else {
             Yii::app()->user->setFlash("error", "Kommentar nicht gefunden oder keine Berechtigung.");
         }
         $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
     }
     if (AntiXSS::isTokenSet("komm_dafuer") && $this->veranstaltung->getEinstellungen()->kommentare_unterstuetzbar) {
         $meine_unterstuetzung = AntragKommentarUnterstuetzerInnen::meineUnterstuetzung($kommentar_id);
         if ($meine_unterstuetzung === null) {
             $unterstuetzung = new AntragKommentarUnterstuetzerInnen();
             $unterstuetzung->setIdentityParams();
             $unterstuetzung->dafuer = 1;
             $unterstuetzung->antrag_kommentar_id = $kommentar_id;
             if ($unterstuetzung->save()) {
                 Yii::app()->user->setFlash("success", "Du hast den Kommentar positiv bewertet.");
             } else {
                 Yii::app()->user->setFlash("error", "Ein (seltsamer) Fehler ist aufgetreten.");
             }
             $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id, "kommentar_id" => $kommentar_id, "#" => "komm" . $kommentar_id)));
         }
     }
     if (AntiXSS::isTokenSet("komm_dagegen") && $this->veranstaltung->getEinstellungen()->kommentare_unterstuetzbar) {
         $meine_unterstuetzung = AntragKommentarUnterstuetzerInnen::meineUnterstuetzung($kommentar_id);
         if ($meine_unterstuetzung === null) {
             $unterstuetzung = new AntragKommentarUnterstuetzerInnen();
             $unterstuetzung->setIdentityParams();
             $unterstuetzung->dafuer = 0;
             $unterstuetzung->antrag_kommentar_id = $kommentar_id;
             if ($unterstuetzung->save()) {
                 Yii::app()->user->setFlash("success", "Du hast den Kommentar negativ bewertet.");
             } else {
                 Yii::app()->user->setFlash("error", "Ein (seltsamer) Fehler ist aufgetreten.");
             }
             $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id, "kommentar_id" => $kommentar_id, "#" => "komm" . $kommentar_id)));
         }
     }
     if (AntiXSS::isTokenSet("komm_dochnicht") && $this->veranstaltung->getEinstellungen()->kommentare_unterstuetzbar) {
         $meine_unterstuetzung = AntragKommentarUnterstuetzerInnen::meineUnterstuetzung($kommentar_id);
         if ($meine_unterstuetzung !== null) {
             $meine_unterstuetzung->delete();
             Yii::app()->user->setFlash("success", "Du hast die Bewertung des Kommentars zurückgenommen.");
             $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id, "kommentar_id" => $kommentar_id, "#" => "komm" . $kommentar_id)));
         }
     }
     if (AntiXSS::isTokenSet("mag") && $this->veranstaltung->getPolicyUnterstuetzen()->checkAntragSubmit()) {
         $userid = Yii::app()->user->getState("person_id");
         foreach ($antrag->antragUnterstuetzerInnen as $unt) {
             if ($unt->unterstuetzerIn_id == $userid) {
                 $unt->delete();
             }
         }
         $unt = new AntragUnterstuetzerInnen();
         $unt->antrag_id = $antrag->id;
         $unt->unterstuetzerIn_id = $userid;
         $unt->rolle = "mag";
         $unt->kommentar = "";
         if ($unt->save()) {
             Yii::app()->user->setFlash("success", "Du unterstützt diesen Antrag nun.");
         } else {
             Yii::app()->user->setFlash("error", "Ein (seltsamer) Fehler ist aufgetreten.");
         }
         $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
     }
     if (AntiXSS::isTokenSet("magnicht") && $this->veranstaltung->getPolicyUnterstuetzen()->checkAntragSubmit()) {
         $userid = Yii::app()->user->getState("person_id");
         foreach ($antrag->antragUnterstuetzerInnen as $unt) {
             if ($unt->unterstuetzerIn_id == $userid) {
                 $unt->delete();
             }
         }
         $unt = new AntragUnterstuetzerInnen();
         $unt->antrag_id = $antrag->id;
         $unt->unterstuetzerIn_id = $userid;
         $unt->rolle = "magnicht";
         $unt->kommentar = "";
         $unt->save();
         if ($unt->save()) {
             Yii::app()->user->setFlash("success", "Du lehnst diesen Antrag nun ab.");
         } else {
             Yii::app()->user->setFlash("error", "Ein (seltsamer) Fehler ist aufgetreten.");
         }
         $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
     }
     if (AntiXSS::isTokenSet("dochnicht") && $this->veranstaltung->getPolicyUnterstuetzen()->checkAntragSubmit()) {
         $userid = Yii::app()->user->getState("person_id");
         foreach ($antrag->antragUnterstuetzerInnen as $unt) {
             if ($unt->unterstuetzerIn_id == $userid) {
                 $unt->delete();
             }
         }
         Yii::app()->user->setFlash("success", "Du stehst diesem Antrag wieder neutral gegenüber.");
         $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
     }
     if (AntiXSS::isTokenSet("add_tag") && $this->veranstaltung->isAdminCurUser()) {
         foreach ($this->veranstaltung->tags as $tag) {
             if ($tag->id == $_REQUEST["tag_id"]) {
                 Yii::app()->db->createCommand()->insert("antrag_tags", array("antrag_id" => $antrag->id, "tag_id" => $_REQUEST["tag_id"]));
                 $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
             }
         }
     }
     if (AntiXSS::isTokenSet("del_tag") && $this->veranstaltung->isAdminCurUser()) {
         Yii::app()->db->createCommand()->delete("antrag_tags", 'antrag_id=:antrag_id AND tag_id=:tag_id', array("antrag_id" => $antrag->id, "tag_id" => AntiXSS::getTokenVal("del_tag")));
         $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
     }
 }
示例#3
0
 /**
  * @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;
 }