/** * @inheritdoc */ public function disableContentContainer(ContentContainerActiveRecord $container) { parent::disableContentContainer($container); foreach (Poll::find()->contentContainer($container)->all() as $poll) { $poll->delete(); } }
public function setupFilters() { $this->activeQuery->andWhere(['content.object_model' => Poll::className()]); if (in_array('polls_notAnswered', $this->filters) || in_array('polls_mine', $this->filters)) { $this->activeQuery->leftJoin('poll', 'content.object_id=poll.id AND content.object_model=:pollClass', [':pollClass' => Poll::className()]); if (in_array('polls_notAnswered', $this->filters)) { $this->activeQuery->leftJoin('poll_answer_user', 'poll.id=poll_answer_user.poll_id AND poll_answer_user.created_by=:userId', [':userId' => Yii::$app->user->id]); $this->activeQuery->andWhere(['is', 'poll_answer_user.id', new \yii\db\Expression('NULL')]); } } }
/** * Create installer sample data * * @param \yii\base\Event $event */ public static function onSampleDataInstall($event) { $space = Space::find()->where(['id' => 1])->one(); // activate module at space if (!$space->isModuleEnabled("polls")) { $space->enableModule("polls"); } // Switch Identity $user = User::find()->where(['id' => 1])->one(); Yii::$app->user->switchIdentity($user); $poll = new Poll(); $poll->question = Yii::t('PollsModule.events', "Right now, we are in the planning stages for our next meetup and we would like to know from you, where you would like to go?"); $poll->answersText = Yii::t('PollsModule.events', "To Daniel\nClub A Steakhouse\nPisillo Italian Panini\n"); $poll->content->container = $space; $poll->allow_multiple = Yii::$app->request->post('allowMultiple', 0); $poll->save(); // load users $user2 = User::find()->where(['id' => 2])->one(); $user3 = User::find()->where(['id' => 3])->one(); // Switch Identity Yii::$app->user->switchIdentity($user2); // vote $poll->vote([2]); $comment = new \humhub\modules\comment\models\Comment(); $comment->message = Yii::t('PollsModule.events', "Why don't we go to Bemelmans Bar?"); $comment->object_model = $poll->className(); $comment->object_id = $poll->getPrimaryKey(); $comment->save(); // Switch Identity Yii::$app->user->switchIdentity($user3); // vote $poll->vote([3]); $comment = new \humhub\modules\comment\models\Comment(); $comment->message = Yii::t('PollsModule.events', "Again? ;Weary;"); $comment->object_model = $poll->className(); $comment->object_id = $poll->getPrimaryKey(); $comment->save(); // Switch Identity Yii::$app->user->switchIdentity($user); }
/** * Returns a given poll by given request parameter. * * This method also validates access rights of the requested poll object. */ private function getPollByParameter() { $pollId = (int) Yii::$app->request->get('pollId'); $poll = Poll::find()->contentContainer($this->contentContainer)->readable()->where(['poll.id' => $pollId])->one(); if ($poll == null) { throw new HttpException(401, Yii::t('PollsModule.controllers_PollController', 'Could not load poll!')); } if (!$poll->content->canRead()) { throw new HttpException(401, Yii::t('PollsModule.controllers_PollController', 'You have insufficient permissions to perform that operation!')); } return $poll; }
public function getPoll() { return $this->hasOne(Poll::className(), ['id' => 'poll_id']); }