/** * Lists all models. * Users viewing restrictions apply. * @param string $municipality Filter on the WaterRequests */ public function actionIndex($municipality = null) { if (!Yii::app()->user->checkAccess('listWaterRequest')) { throw new CHttpException(403, Yii::t('http_status', '403')); } //Yii::log(print_r($_GET, true), CLogger::LEVEL_INFO, 'INDEX'); $this->layout = '//layouts/column1'; $criteria = new CDbCriteria(); if (Yii::app()->user->isWRUT) { $criteria = new CDbCriteria(array('order' => 'status ASC')); } if (Yii::app()->user->isWRU) { /* In the first period, a WRU can view all Water Requests, in all statuses*/ /* uncomment these line to filter the view */ //$criteria->compare('status','<>'.WaterRequests::SW_NODE(WaterRequests::SAVED_STATUS),false,'OR'); //$criteria->compare('status','<>'.WaterRequests::SW_NODE(WaterRequests::CANCELLED_STATUS),false,'OR'); if ($municipality) { $oneshot = 0; $autoctoni = Users::model()->findAllByAttributes(array('municipality' => $municipality)); if (!count($autoctoni)) { $criteria->compare('id', -99, false, 'AND'); } foreach ($autoctoni as $user) { $criteria->compare('username', $user->username, false, !$oneshot++ ? 'AND' : 'OR'); } //Yii::log(print_r($criteria, true), CLogger::LEVEL_INFO, 'criteria INDEX'); } } else { $criteria->compare('username', Yii::app()->user->id, false, 'AND'); // Showing all WaterRequests created by other users with user's same municipality too if ($municipality) { //Yii::log($municipality, CLogger::LEVEL_INFO, 'INDEX con municipality'); $users_like_me = Users::model()->findAllByAttributes(array('municipality' => Yii::app()->user->municipality)); foreach ($users_like_me as $user) { if ($user->username != Yii::app()->user->id) { $criteria->compare('username', $user->username, false, 'OR'); } } } } // show only statuses the user can see $criteria->addInCondition('replace(status, \'' . WaterRequests::WORKFLOW . '/' . '\',\'\')', Yii::app()->user->whatCanSee()); // show only desired status if (isset($_GET['status']) && in_array($_GET['status'], WaterRequests::allStatuses())) { $criteria->compare('status', WaterRequests::WORKFLOW . '/' . $_GET['status'], false, 'AND'); } //Yii::log(print_r($criteria, true), CLogger::LEVEL_INFO, 'INDEX con municipality - criteria'); $dataProvider = new CActiveDataProvider(WaterRequests::model()->no_tmp(), array('criteria' => $criteria, 'sort' => array('defaultOrder' => 'timestamp DESC'), 'pagination' => array('pageSize' => 9))); $this->render('index', array('dataProvider' => $dataProvider, 'municipality' => $municipality, 'gridview' => isset($_GET['gridview']) ? $_GET['gridview'] == 'true' : false, 'status' => isset($_GET['status']) ? $_GET['status'] : 'all')); }
<h1><?php echo Yii::t('waterrequest', 'Water Requests'); ?> </h1> <?php if (Yii::app()->user->isPlanner) { echo CHtml::openTag('p'); echo CHtml::link(Yii::t('waterrequest', 'Create New Water Request'), CController::createUrl('waterRequests/create')); echo CHtml::closeTag('p'); } echo CHtml::openTag('div', array('id' => 'wr_list')); // Status Filter line echo CHtml::openTag('div'); echo Yii::t('waterrequest', 'View status: '); echo CHtml::link(Yii::t('waterrequest', 'All'), 'javascript:void(0);', array('id' => 'all_wr', 'class' => $status == 'all' ? 'wr_filter_selected' : '', 'onclick' => '$.fn.yiiListView.update(\'waterRequestsList\', {data:{\'status\':\'all\', \'gridview\':view_wr_list_as_grid}});')); foreach (WaterRequests::allStatuses() as $value) { if (Yii::app()->user->canSee($value)) { echo ' | '; echo CHtml::link(ucfirst(Yii::t('waterrequest', $value)), 'javascript:void(0);', array('id' => $value . '_wr', 'class' => $status == $value ? 'wr_filter_selected' : '', 'onclick' => 'javascript: $.fn.yiiListView.update(\'waterRequestsList\', {data:{\'status\':\'' . $value . '\', \'gridview\':view_wr_list_as_grid }});')); } } ?> <span id="search_links"></span> <?php echo CHtml::closeTag('div'); echo CHtml::openTag('div', array('style' => 'float:right')); // Choose visualization type List or Grid echo CHtml::link(' ', 'javascript:void(0);', array('id' => 'wr_view_list', 'title' => Yii::t('waterrequest', 'List View'), 'class' => $gridview ? 'wr_view' : 'wr_view active', 'onclick' => '$(\'.wr_view\').removeClass(\'active\'); $(\'.water_request\').removeClass(\'square\'); $(this).addClass(\'active\'); setgridview(false);')); echo ' ';