diff --git a/migrations/m150227_114524_init.php b/migrations/m150227_114524_init.php index fbfaeb9..8c739f0 100644 --- a/migrations/m150227_114524_init.php +++ b/migrations/m150227_114524_init.php @@ -24,7 +24,7 @@ public function up() 'section' => $this->string()->notNull(), 'key' => $this->string()->notNull(), 'value' => $this->text()->notNull(), - 'status' => $this->boolean(), + 'status' => $this->smallInteger()->notNull()->defaultValue(1), 'createdAt' => $this->integer()->notNull(), 'updatedAt' => $this->integer()->notNull() ], $tableOptions); diff --git a/models/SettingModel.php b/models/SettingModel.php index bc73c34..90742fe 100644 --- a/models/SettingModel.php +++ b/models/SettingModel.php @@ -6,7 +6,6 @@ use yii\db\ActiveRecord; use yii\helpers\ArrayHelper; use Yii; -use yii2mod\enum\helpers\BooleanEnum; use yii2mod\settings\models\enumerables\SettingStatus; use yii2mod\settings\models\enumerables\SettingType; @@ -44,7 +43,8 @@ public function rules() [['value', 'type'], 'string'], [['section', 'key'], 'string', 'max' => 255], [['status'], 'integer'], - ['status', 'default', 'value' => BooleanEnum::YES], + ['status', 'default', 'value' => SettingStatus::ACTIVE], + ['status', 'in', 'range' => [SettingStatus::ACTIVE, SettingStatus::INACTIVE]], [['type'], 'safe'], ]; } @@ -98,6 +98,7 @@ public static function find() public function afterDelete() { Yii::$app->settings->invalidateCache(); + parent::afterDelete(); } @@ -110,6 +111,7 @@ public function afterDelete() public function afterSave($insert, $changedAttributes) { Yii::$app->settings->invalidateCache(); + parent::afterSave($insert, $changedAttributes); } diff --git a/models/search/SettingModelSearch.php b/models/search/SettingModelSearch.php index 1f47ed2..06b5239 100644 --- a/models/search/SettingModelSearch.php +++ b/models/search/SettingModelSearch.php @@ -2,7 +2,6 @@ namespace yii2mod\settings\models\search; -use Yii; use yii\data\ActiveDataProvider; use yii2mod\settings\models\SettingModel; @@ -13,25 +12,25 @@ class SettingModelSearch extends SettingModel { /** - * Returns the validation rules for attributes. - * @return array validation rules + * @inheritdoc */ public function rules() { return [ - [['id', 'type', 'section', 'key', 'value', 'status'], 'safe'], + [['type', 'section', 'key', 'value', 'status'], 'safe'], ]; } /** - * Setup search function for filtering and sorting - * based on fullName field + * Creates data provider instance with search query applied + * * @param $params + * * @return ActiveDataProvider */ public function search($params) { - $query = SettingModel::find(); + $query = self::find(); $dataProvider = new ActiveDataProvider([ 'query' => $query, @@ -44,7 +43,6 @@ public function search($params) return $dataProvider; } - $query->andFilterWhere(['id' => $this->id]); $query->andFilterWhere(['status' => $this->status]); $query->andFilterWhere(['section' => $this->section]); $query->andFilterWhere(['type' => $this->type]); @@ -53,4 +51,4 @@ public function search($params) return $dataProvider; } -} +} \ No newline at end of file diff --git a/tests/TestCase.php b/tests/TestCase.php index 13cd10d..bc4f5a5 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -89,7 +89,7 @@ protected function setupTestDbData() 'section' => 'string not null', 'key' => 'string not null', 'value' => 'text not null', - 'status' => 'integer', + 'status' => 'smallint not null default 1', 'createdAt' => 'integer not null', 'updatedAt' => 'integer not null', ])->execute(); diff --git a/views/default/index.php b/views/default/index.php index 27cf0c4..96e88ba 100644 --- a/views/default/index.php +++ b/views/default/index.php @@ -27,7 +27,6 @@ [ 'class' => 'yii\grid\SerialColumn', ], - 'id', [ 'attribute' => 'type', 'filter' => SettingType::listData(),