diff --git a/common/models/CustomerSearch.php b/common/models/CustomerSearch.php index d307076..fc2d72d 100644 --- a/common/models/CustomerSearch.php +++ b/common/models/CustomerSearch.php @@ -50,6 +50,20 @@ /** * @inheritdoc */ + public function attributeLabels() + { + return [ + 'type' => Yii::t('app', 'Тип заказчика'), + 'rating' => Yii::t('app', 'Рейтинг'), + 'online' => Yii::t('app', 'Статус'), + 'city' => Yii::t('app', 'Город'), + 'info' => Yii::t('app', 'Любая информация о заказчике'), + ]; + } + + /** + * @inheritdoc + */ public function scenarios() { // bypass scenarios() implementation in the parent class @@ -94,7 +108,7 @@ $query->andWhere([ 'type' => 2, ]); - } else { + } elseif($this->type == 1) { $query->andWhere([ 'type' => 1, ]); @@ -112,6 +126,53 @@ 'like', 'user_info.city', $this->city, + ])->andFilterWhere([ + 'or', + [ + 'like', + 'LOWER(username)', + mb_strtolower($this->info), + ], + [ + 'like', + 'LOWER(lastname)', + mb_strtolower($this->info), + ], + [ + 'like', + 'LOWER(firstname)', + mb_strtolower($this->info), + ], + [ + 'like', + 'LOWER(middlename)', + mb_strtolower($this->info), + ], + [ + 'like', + 'LOWER(company_info.name)', + mb_strtolower($this->info), + ], + [ + 'like', + 'LOWER(company_info.street)', + mb_strtolower($this->info), + ], + [ + 'like', + 'LOWER(user_info.country)', + mb_strtolower($this->info), + ], + [ + 'like', + 'LOWER(user_info.city)', + mb_strtolower($this->info), + ], + [ + 'like', + 'LOWER(user_info.about)', + mb_strtolower($this->info), + ], ]); return $dataProvider; diff --git a/frontend/controllers/SearchController.php b/frontend/controllers/SearchController.php index 351712b..e70dd2e 100755 --- a/frontend/controllers/SearchController.php +++ b/frontend/controllers/SearchController.php @@ -1,6 +1,7 @@ search(Yii::$app->request->queryParams); + $dataProvider->setSort([ + 'attributes' => [ + 'name' => [ + 'asc' => [ + 'company_info.name' => SORT_ASC, + 'firstname' => SORT_ASC, + 'lastname' => SORT_ASC, + ], + 'desc' => [ + 'company_info.name' => SORT_DESC, + 'firstname' => SORT_DESC, + 'lastname' => SORT_DESC, + ], + 'default' => SORT_ASC, + 'label' => 'Название', + ], + 'staff' => [ + 'asc' => [ + 'company_info.staff' => SORT_ASC, + ], + 'desc' => [ + 'company_info.staff' => SORT_DESC, + ], + 'default' => SORT_DESC, + 'label' => 'Количество сотрудников', + ], + 'visit' => [ + 'asc' => [ + 'user_info.date_visit' => SORT_ASC, + ], + 'desc' => [ + 'user_info.date_visit' => SORT_DESC, + ], + 'default' => SORT_DESC, + 'label' => 'Последний визит', + ], + 'city' => [ + 'asc' => [ + 'user_info.city' => SORT_ASC, + ], + 'desc' => [ + 'user_info.city' => SORT_DESC, + ], + 'default' => SORT_ASC, + 'label' => 'Город', + ], + ], + ]); + $model->load(Yii::$app->request->queryParams); + $cities = UserInfo::find()->select('city')->distinct()->asArray()->indexBy('city')->column(); return $this->render('customer',[ + 'model' => $model, + 'dataProvider' => $dataProvider, + 'cities' => $cities, ]); } diff --git a/frontend/views/search/_customer_list_view.php b/frontend/views/search/_customer_list_view.php new file mode 100644 index 0000000..1aca034 --- /dev/null +++ b/frontend/views/search/_customer_list_view.php @@ -0,0 +1,60 @@ + +
+
+ type == 2) { + echo $model->companyInfo->name; + } else { + echo $model->firstname . $model->lastname; + } + ?> +
+
+
+ + +
+
+ 30 отзывов + userInfo->city )) { + echo ", {$model->userInfo->city}"; + } + ?> +
+
+ type == 2 && !empty( $model->companyInfo->staff )) { + ?> +
+
Сотрудники: companyInfo->staff ?>
+
+ +
+ Послелний визит: formatter->asRelativeTime($model->userInfo->date_visit) ?> +
+
+ Заказано проектов: 21
+
+ +
+
+
+
+ Добавить в закладки +
\ No newline at end of file diff --git a/frontend/views/search/customer.php b/frontend/views/search/customer.php index 6c69528..a685e88 100644 --- a/frontend/views/search/customer.php +++ b/frontend/views/search/customer.php @@ -1,98 +1,50 @@ search(\Yii::$app->request->queryParams); - var_dump($model->totalCount); + use yii\data\ActiveDataProvider; + use yii\helpers\Html; + use yii\widgets\ActiveForm; + use yii\widgets\LinkSorter; + use yii\widgets\ListView; ?>
+
-
-
-
-
-
- -
-
-
-
+ echo $form->field($model, 'type', [ + 'options' => [ + 'class' => 'blocks-check-list-wrapp', + ], + 'template' => "
{label}
\n{input}
\n{hint}\n{error}", + ]) + ->dropDownList([ + 1 => 'Физическое лицо', + 2 => 'Компания', + ], [ 'prompt' => 'Любой' ]); + ?> +
Рейтинг
@@ -100,56 +52,89 @@
+ -
-
Статус
-
- -
-
- -
-
+ field($model, 'online', [ + 'options' => [ + 'class' => 'blocks-check-list-wrapp', + ], + 'template' => "
{label}
\n{input}\n{hint}\n{error}", + ]) + ->radioList([ + '' => 'Все', + 1 => 'Онлайн', + ], [ + 'item' => function($index, $label, $name, $checked, $value) use ($model) { + $checked = ($model->online == $value); + return "
"; + }, + 'unselect' => NULL, + ]); -
- -
-
+ echo '
'.Html::submitInput('Найти').'
'; + + $form->end(); + ?>
+ + +
Найти заказчика
-
Заказчики готовые приступить к работе 145
+
Заказчики готовые приступить к работе + totalCount ?>
-
- - -
+ 'get', 'action' => [''], 'options' => ['class' => 'search-worker-form']]); + echo $form2->field($model, 'info', ['options' => ['tag' => false]])->label(false)->textInput(['placeholder' => $model->getAttributeLabel('info')]); + echo Html::submitInput('Найти'); + $form2->end(); + ?> Добавить себя в каталог
Сортировать: 
+ $dataProvider, + 'layout' => "{items}\n{pager}", + 'options' => [ + 'class' => 'search-worker-blocks-wr style', + ], + 'itemOptions' => [ + 'class' => 'search-worker-blocks', + ], + 'itemView' => '_customer_list_view', + ]); + ?>
@@ -160,13 +145,16 @@
-
30 отзывов, Киев
+
30 отзывов, Киев
Сотрудники: более 40
-
Послелний визит: 2 дня назад
- +
+ Послелний визит: 2 дня назад +
+
@@ -185,13 +173,16 @@
-
30 отзывов, Киев
+
30 отзывов, Киев
-
Послелний визит: 2 дня назад
- +
+ Послелний визит: 2 дня назад +
+
@@ -210,13 +201,16 @@
-
30 отзывов, Киев
+
30 отзывов, Киев
Сотрудники: более 40
-
Послелний визит: 2 дня назад
-
Заказано проектов: 21
+
+ Послелний визит: 2 дня назад +
+
+ Заказано проектов: 21
@@ -235,13 +229,16 @@
-
30 отзывов, Киев
+
30 отзывов, Киев
-
Послелний визит: 2 дня назад
-
Заказано проектов: 21
+
+ Послелний визит: 2 дня назад +
+
+ Заказано проектов: 21
@@ -263,13 +260,16 @@
+ \ No newline at end of file -- libgit2 0.21.4