Commit 420d3dcd707cd40f214a1feeeeb2c319cadf7a3b

Authored by Yarik
1 parent e8f24841

test

common/models/CompanyInfo.php
1 <?php 1 <?php
2 2
3 -namespace common\models; 3 + namespace common\models;
4 4
5 -use Yii; 5 + use Yii;
6 6
7 -/**  
8 - * This is the model class for table "company_info".  
9 - *  
10 - * @property integer $company_info_id  
11 - * @property string $name  
12 - * @property integer $staff  
13 - * @property string $street  
14 - * @property string $house  
15 - * @property integer $hide_mail  
16 - */  
17 -class CompanyInfo extends \yii\db\ActiveRecord  
18 -{  
19 /** 7 /**
20 - * @inheritdoc 8 + * This is the model class for table "company_info".
  9 + * @property integer $company_info_id
  10 + * @property string $name
  11 + * @property integer $staff
  12 + * @property string $street
  13 + * @property string $house
  14 + * @property integer $hide_mail
21 */ 15 */
22 - public static function tableName() 16 + class CompanyInfo extends \yii\db\ActiveRecord
23 { 17 {
24 - return 'company_info';  
25 - }  
26 18
27 - /**  
28 - * @inheritdoc  
29 - */  
30 - public function rules()  
31 - {  
32 - return [  
33 - [['name', 'street', 'house'], 'string'],  
34 - [['hide_mail'], 'integer'],  
35 - [['staff'], 'default', 'value' => 1],  
36 - [['staff'], 'integer', 'min' => 1],  
37 - ];  
38 - } 19 + /**
  20 + * @inheritdoc
  21 + */
  22 + public static function tableName()
  23 + {
  24 + return 'company_info';
  25 + }
39 26
40 - /**  
41 - * @inheritdoc  
42 - */  
43 - public function attributeLabels()  
44 - {  
45 - return [  
46 - 'company_info_id' => Yii::t('app', 'Company Info ID'),  
47 - 'name' => Yii::t('app', 'Название компании'),  
48 - 'staff' => Yii::t('app', 'Количество сотрудников'),  
49 - 'street' => Yii::t('app', 'Улица'),  
50 - 'house' => Yii::t('app', 'Дом'),  
51 - 'hide_mail' => Yii::t('app', 'не публиковать Email'),  
52 - ]; 27 + /**
  28 + * @inheritdoc
  29 + */
  30 + public function rules()
  31 + {
  32 + return [
  33 + [
  34 + [
  35 + 'name',
  36 + 'street',
  37 + 'house',
  38 + ],
  39 + 'required',
  40 + ],
  41 + [
  42 + [
  43 + 'name',
  44 + 'street',
  45 + 'house',
  46 + ],
  47 + 'string',
  48 + ],
  49 + [
  50 + [ 'hide_mail' ],
  51 + 'integer',
  52 + ],
  53 + [
  54 + [ 'staff' ],
  55 + 'default',
  56 + 'value' => 1,
  57 + ],
  58 + [
  59 + [ 'staff' ],
  60 + 'integer',
  61 + 'min' => 1,
  62 + ],
  63 + ];
  64 + }
  65 +
  66 + /**
  67 + * @inheritdoc
  68 + */
  69 + public function attributeLabels()
  70 + {
  71 + return [
  72 + 'company_info_id' => Yii::t('app', 'Company Info ID'),
  73 + 'name' => Yii::t('app', 'Название компании'),
  74 + 'staff' => Yii::t('app', 'Количество сотрудников'),
  75 + 'street' => Yii::t('app', 'Улица'),
  76 + 'house' => Yii::t('app', 'Дом'),
  77 + 'hide_mail' => Yii::t('app', 'не публиковать Email'),
  78 + ];
  79 + }
53 } 80 }
54 -}  
common/models/PortfolioSearch.php
@@ -104,8 +104,8 @@ @@ -104,8 +104,8 @@
104 ->joinWith([ 'specializations' ]) 104 ->joinWith([ 'specializations' ])
105 ->where([ 105 ->where([
106 'like', 106 'like',
107 - 'specialization_name',  
108 - $this->specializationString, 107 + 'LOWER(specialization_name)',
  108 + mb_strtolower($this->specializationString),
109 ]) 109 ])
110 ->asArray() 110 ->asArray()
111 ->column(); 111 ->column();
@@ -129,11 +129,13 @@ @@ -129,11 +129,13 @@
129 (new \DateTime($this->date_add_to))->modify('+1 day')->format('Y-m-d') 129 (new \DateTime($this->date_add_to))->modify('+1 day')->format('Y-m-d')
130 ]); 130 ]);
131 131
132 - $query->andFilterWhere(  
133 - [  
134 - 'portfolio_id' => $query2,  
135 - ]  
136 - ); 132 + if(!empty($this->specializationString)) {
  133 + $query->andWhere(
  134 + [
  135 + 'portfolio_id' => $query2,
  136 + ]
  137 + );
  138 + }
137 139
138 $query->andFilterWhere([ 140 $query->andFilterWhere([
139 'like', 141 'like',
common/models/Project.php
@@ -68,7 +68,7 @@ @@ -68,7 +68,7 @@
68 { 68 {
69 return [ 69 return [
70 [ 70 [
71 - [ 'name' ], 71 + [ 'name', 'link' ],
72 'required', 72 'required',
73 ], 73 ],
74 [ 74 [
@@ -76,6 +76,7 @@ @@ -76,6 +76,7 @@
76 'project_pid', 76 'project_pid',
77 'payment_variant', 77 'payment_variant',
78 'contractual', 78 'contractual',
  79 + 'budget_currency',
79 ], 80 ],
80 'integer', 81 'integer',
81 ], 82 ],
common/models/ProjectSearch.php
@@ -13,6 +13,8 @@ @@ -13,6 +13,8 @@
13 class ProjectSearch extends Project 13 class ProjectSearch extends Project
14 { 14 {
15 15
  16 + public $date_add_from;
  17 + public $date_add_to;
16 /** 18 /**
17 * @inheritdoc 19 * @inheritdoc
18 */ 20 */
@@ -43,6 +45,8 @@ @@ -43,6 +45,8 @@
43 'description', 45 'description',
44 'file', 46 'file',
45 'specializationString', 47 'specializationString',
  48 + 'date_add_from',
  49 + 'date_add_to',
46 ], 50 ],
47 'safe', 51 'safe',
48 ], 52 ],
@@ -50,6 +54,20 @@ @@ -50,6 +54,20 @@
50 [ 'view_count' ], 54 [ 'view_count' ],
51 'number', 55 'number',
52 ], 56 ],
  57 + [
  58 + [
  59 + 'date_add_from',
  60 + ],
  61 + 'default',
  62 + 'value' => date('Y-m-d', 0),
  63 + ],
  64 + [
  65 + [
  66 + 'date_add_to',
  67 + ],
  68 + 'default',
  69 + 'value' => date('Y-m-d'),
  70 + ],
53 ]; 71 ];
54 } 72 }
55 73
@@ -94,8 +112,8 @@ @@ -94,8 +112,8 @@
94 ->joinWith([ 'specializations' ]) 112 ->joinWith([ 'specializations' ])
95 ->where([ 113 ->where([
96 'like', 114 'like',
97 - 'specialization_name',  
98 - $this->specializationString, 115 + 'LOWER(specialization_name)',
  116 + mb_strtolower($this->specializationString),
99 ]) 117 ])
100 ->asArray() 118 ->asArray()
101 ->column(); 119 ->column();
@@ -116,11 +134,20 @@ @@ -116,11 +134,20 @@
116 'contractual' => $this->contractual, 134 'contractual' => $this->contractual,
117 ]); 135 ]);
118 136
119 - $query->andFilterWhere(  
120 - [  
121 - 'project_id' => $query2,  
122 - ]  
123 - ); 137 + $query->andFilterWhere([
  138 + 'between',
  139 + 'date_add',
  140 + $this->date_add_from,
  141 + (new \DateTime($this->date_add_to))->modify('+1 day')->format('Y-m-d'),
  142 + ]);
  143 +
  144 + if(!empty($this->specializationString)) {
  145 + $query->andWhere(
  146 + [
  147 + 'project_id' => $query2,
  148 + ]
  149 + );
  150 + }
124 151
125 $query->andFilterWhere([ 152 $query->andFilterWhere([
126 'like', 153 'like',
common/models/User.php
@@ -89,7 +89,6 @@ @@ -89,7 +89,6 @@
89 [ 89 [
90 'firstname', 90 'firstname',
91 'lastname', 91 'lastname',
92 - 'email',  
93 ], 92 ],
94 'required', 93 'required',
95 ], 94 ],
common/models/UserInfo.php
@@ -29,6 +29,7 @@ @@ -29,6 +29,7 @@
29 * @property integer $type 29 * @property integer $type
30 * @property string $geography 30 * @property string $geography
31 * @property integer $salary_currency 31 * @property integer $salary_currency
  32 + * @property string $email
32 */ 33 */
33 class UserInfo extends \yii\db\ActiveRecord 34 class UserInfo extends \yii\db\ActiveRecord
34 { 35 {
@@ -68,6 +69,7 @@ @@ -68,6 +69,7 @@
68 [ 69 [
69 [ 70 [
70 'city', 71 'city',
  72 + 'email',
71 ], 73 ],
72 'required', 74 'required',
73 ], 75 ],
@@ -195,6 +197,12 @@ @@ -195,6 +197,12 @@
195 'default', 197 'default',
196 'value' => [], 198 'value' => [],
197 ], 199 ],
  200 + [
  201 + [
  202 + 'email',
  203 + ],
  204 + 'email',
  205 + ],
198 ]; 206 ];
199 } 207 }
200 208
@@ -267,4 +275,5 @@ @@ -267,4 +275,5 @@
267 { 275 {
268 $this->geographies = $value; 276 $this->geographies = $value;
269 } 277 }
  278 +
270 } 279 }
console/migrations/m160219_152535_add_preview_portfolio.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\db\Migration;
  4 +
  5 +class m160219_152535_add_preview_portfolio extends Migration
  6 +{
  7 + public function up()
  8 + {
  9 + $this->addColumn('{{%portfolio}}', 'preview', $this->string(1000));
  10 + }
  11 +
  12 + public function down()
  13 + {
  14 + $this->dropColumn('{{%portfolio}}', 'preview');
  15 + }
  16 +}
console/migrations/m160222_160058_add_user_info_email.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\db\Migration;
  4 +
  5 +class m160222_160058_add_user_info_email extends Migration
  6 +{
  7 + public function up()
  8 + {
  9 + $this->addColumn('{{%user_info}}', 'email', $this->string());
  10 + }
  11 +
  12 + public function down()
  13 + {
  14 + $this->dropColumn('{{%user_info}}', 'email');
  15 + }
  16 +}
frontend/controllers/AccountsController.php
@@ -644,8 +644,7 @@ @@ -644,8 +644,7 @@
644 $project->link('payments', Payment::findOne($one_payment)); 644 $project->link('payments', Payment::findOne($one_payment));
645 } 645 }
646 return $this->redirect([ 646 return $this->redirect([
647 - 'projects-update',  
648 - 'id' => $project->project_id, 647 + 'projects',
649 ]); 648 ]);
650 } 649 }
651 } 650 }
@@ -724,6 +723,7 @@ @@ -724,6 +723,7 @@
724 foreach($project->paymentInput as $one_payment) { 723 foreach($project->paymentInput as $one_payment) {
725 $project->link('payments', Payment::findOne($one_payment)); 724 $project->link('payments', Payment::findOne($one_payment));
726 } 725 }
  726 + return $this->redirect(['projects']);
727 } 727 }
728 } 728 }
729 return $this->render('_projects_form', [ 729 return $this->render('_projects_form', [
frontend/views/accounts/_projects_form.php
@@ -236,7 +236,7 @@ @@ -236,7 +236,7 @@
236 <?= $form->field($project, 'date_end') 236 <?= $form->field($project, 'date_end')
237 ->dropDownList([ 237 ->dropDownList([
238 1 => 'Неделя', 238 1 => 'Неделя',
239 - 2 => '2 неделю', 239 + 2 => '2 недели',
240 3 => 'Месяц', 240 3 => 'Месяц',
241 ]) ?> 241 ]) ?>
242 </div> 242 </div>
frontend/views/accounts/general.php
@@ -171,8 +171,8 @@ @@ -171,8 +171,8 @@
171 171
172 <div class="input-blocks-wrapper "> 172 <div class="input-blocks-wrapper ">
173 <div class="input-blocks"> 173 <div class="input-blocks">
174 - <?= $form->field ($user, 'email')  
175 - ->textInput (['class'=> 'custom-input-2']); 174 + <?= $form->field ($user_info, 'email')
  175 + ->textInput (['class'=> 'custom-input-2', 'value' => empty($user_info->email)?$user->email:$user_info->email]);
176 ?> 176 ?>
177 </div> 177 </div>
178 <div class="input-blocks hide-mail-check"> 178 <div class="input-blocks hide-mail-check">
frontend/views/accounts/projects.php
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
8 use yii\grid\ActionColumn; 8 use yii\grid\ActionColumn;
9 use yii\grid\GridView; 9 use yii\grid\GridView;
10 use yii\helpers\Html; 10 use yii\helpers\Html;
  11 + use yii\jui\DatePicker;
11 12
12 $this->title = 'Проекты'; 13 $this->title = 'Проекты';
13 $this->params[ 'breadcrumbs' ][] = $this->title; 14 $this->params[ 'breadcrumbs' ][] = $this->title;
@@ -26,6 +27,39 @@ @@ -26,6 +27,39 @@
26 'label' => 'ID', 27 'label' => 'ID',
27 ], 28 ],
28 'name', 29 'name',
  30 + [
  31 + 'attribute' => 'date_add',
  32 + 'filter' => "<div class=\"input-group input-group-xs input-daterange\">
  33 +<span class='field-teamsearch-experience_from_from'>".
  34 + DatePicker::widget([
  35 + 'model' => $searchModel,
  36 + 'attribute' => 'date_add_from',
  37 + 'language' => 'ru',
  38 + 'dateFormat' => 'yyyy-MM-dd',
  39 + 'clientOptions' => [
  40 + 'changeYear' => true,
  41 + 'changeMonth' => true,
  42 + ],
  43 + ]).
  44 + "</span>
  45 +<span class=\"input-group-addon kv-field-separator\">
  46 +<i class=\"glyphicon glyphicon-resize-horizontal\"></i>
  47 +</span>
  48 +<span class='field-teamsearch-experience_from_to'>".
  49 + DatePicker::widget([
  50 + 'model' => $searchModel,
  51 + 'attribute' => 'date_add_to',
  52 + 'language' => 'ru',
  53 + 'dateFormat' => 'yyyy-MM-dd',
  54 + 'clientOptions' => [
  55 + 'changeYear' => true,
  56 + 'changeMonth' => true,
  57 + ],
  58 + ])
  59 + ."</span>
  60 +</div>",
  61 + 'format' => 'html',
  62 + ],
29 'budget', 63 'budget',
30 'city', 64 'city',
31 [ 65 [
@@ -33,6 +67,12 @@ @@ -33,6 +67,12 @@
33 ], 67 ],
34 'view_count', 68 'view_count',
35 [ 69 [
  70 + 'value' => function($model, $key, $index, $column) {
  71 + return 0;
  72 + },
  73 + 'label' => 'Отклики',
  74 + ],
  75 + [
36 'class' => ActionColumn::className(), 76 'class' => ActionColumn::className(),
37 'buttons' => [ 77 'buttons' => [
38 'update' => function($url, $model, $key) { 78 'update' => function($url, $model, $key) {
frontend/views/performer/portfolio-view.php
@@ -63,12 +63,12 @@ @@ -63,12 +63,12 @@
63 <div id="demo5" class="scroll-img"> 63 <div id="demo5" class="scroll-img">
64 <ul> 64 <ul>
65 <?php 65 <?php
66 - foreach(explode(',', $portfolio->gallery->photo) as $one_photo) {  
67 - ?>  
68 - <li><img src="<?= $one_photo ?>" alt=""/>  
69 - <?php  
70 - } 66 + foreach( explode(',', $portfolio->gallery->photo) as $one_photo ) {
71 ?> 67 ?>
  68 + <li><img src="<?= $one_photo ?>" alt=""/>
  69 + <?php
  70 + }
  71 + ?>
72 </ul> 72 </ul>
73 </div> 73 </div>
74 <div id="demo5-btn" class="text-center"> 74 <div id="demo5-btn" class="text-center">
@@ -85,59 +85,28 @@ @@ -85,59 +85,28 @@
85 <div class="new-portfolio-txt-wrapper style"> 85 <div class="new-portfolio-txt-wrapper style">
86 <div class="new-portfolio-excerpt style"> 86 <div class="new-portfolio-excerpt style">
87 <div class="new-portfolio-editor"> 87 <div class="new-portfolio-editor">
88 -  
89 -  
90 - <p>  
91 - Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.  
92 - </p>  
93 - <p>  
94 - Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.  
95 - </p>  
96 -  
97 - 88 + <?= $portfolio->preview ?>
98 </div> 89 </div>
99 - <div class="new-portfolio-see-all style"><span>Развернуть</span></div>  
100 - </div>  
101 -  
102 - <div class="new-portfolio-txt">  
103 - <div class="new-portfolio-editor">  
104 -  
105 -  
106 - <p>  
107 - Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.  
108 - </p>  
109 - <p>  
110 - Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.  
111 - </p>  
112 - <p>  
113 - Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.  
114 - </p>  
115 - <p>  
116 - Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.  
117 - </p>  
118 - <p>  
119 - Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.  
120 - </p>  
121 - <p>  
122 - Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.  
123 - </p>  
124 - <p>  
125 - Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.  
126 - </p>  
127 - <p>  
128 - Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.  
129 - </p>  
130 - <p>  
131 - Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.  
132 - </p>  
133 - <p>  
134 - Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.  
135 - </p>  
136 -  
137 -  
138 - </div>  
139 - <div class="new-portfolio-see-all style"><span>Свернуть</span></div> 90 + <?php
  91 + if(!empty( $portfolio->description )) {
  92 + ?>
  93 + <div class="new-portfolio-see-all style"><span>Развернуть</span></div>
  94 + <?php
  95 + }
  96 + ?>
140 </div> 97 </div>
  98 + <?php
  99 + if(!empty( $portfolio->description )) {
  100 + ?>
  101 + <div class="new-portfolio-txt">
  102 + <div class="new-portfolio-editor">
  103 + <?= $portfolio->description ?>
  104 + </div>
  105 + <div class="new-portfolio-see-all style"><span>Свернуть</span></div>
  106 + </div>
  107 + <?php
  108 + }
  109 + ?>
141 </div> 110 </div>
142 111
143 <div class="new-portf-comments-wr style"> 112 <div class="new-portf-comments-wr style">