%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/calendar/widgets/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/calendar/widgets/ParticipantList.php |
<?php /** * @link https://www.humhub.org/ * @copyright Copyright (c) 2022 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences */ namespace humhub\modules\calendar\widgets; use humhub\components\Widget; use humhub\modules\calendar\models\forms\CalendarEntryParticipationForm; use humhub\modules\ui\form\widgets\ActiveForm; use humhub\modules\user\models\User; use Yii; use yii\data\Pagination; /** * ParticipantList to display all participants of the Calendar entry */ class ParticipantList extends Widget { /** * @var ActiveForm */ public $form; /** * @var CalendarEntryParticipationForm */ public $model; /** * @var int displayed users per page */ public $pageSize = null; /** * @inheritdoc */ public function init() { if ($this->pageSize === null) { $this->pageSize = Yii::$app->getModule('user')->userListPaginationSize; } parent::init(); } /** * @inheritdoc */ public function run() { $usersQuery = User::find(); $usersQuery->innerJoin('calendar_entry_participant', 'user.id = user_id'); $usersQuery->where(['calendar_entry_id' => $this->model->entry->id]); $state = Yii::$app->request->get('state', Yii::$app->request->post('state', '')); if (!empty($state) && ParticipantItem::hasStatus($state)) { $usersQuery->andWhere(['participation_state' => $state]); } $countQuery = clone $usersQuery; $pagination = new Pagination([ 'totalCount' => $countQuery->count(), 'pageSize' => $this->pageSize, 'route' => '/calendar/entry/participants-list', ]); $usersQuery->offset($pagination->offset)->limit($pagination->limit); return $this->render('participantList', [ 'form' => $this->form, 'model' => $this->model, 'users' => $usersQuery->all(), 'pagination' => $pagination, ]); } }