Commit 420d3dcd707cd40f214a1feeeeb2c319cadf7a3b

Authored by Yarik
1 parent e8f24841

test

common/models/CompanyInfo.php
1 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 104 ->joinWith([ 'specializations' ])
105 105 ->where([
106 106 'like',
107   - 'specialization_name',
108   - $this->specializationString,
  107 + 'LOWER(specialization_name)',
  108 + mb_strtolower($this->specializationString),
109 109 ])
110 110 ->asArray()
111 111 ->column();
... ... @@ -129,11 +129,13 @@
129 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 140 $query->andFilterWhere([
139 141 'like',
... ...
common/models/Project.php
... ... @@ -68,7 +68,7 @@
68 68 {
69 69 return [
70 70 [
71   - [ 'name' ],
  71 + [ 'name', 'link' ],
72 72 'required',
73 73 ],
74 74 [
... ... @@ -76,6 +76,7 @@
76 76 'project_pid',
77 77 'payment_variant',
78 78 'contractual',
  79 + 'budget_currency',
79 80 ],
80 81 'integer',
81 82 ],
... ...
common/models/ProjectSearch.php
... ... @@ -13,6 +13,8 @@
13 13 class ProjectSearch extends Project
14 14 {
15 15  
  16 + public $date_add_from;
  17 + public $date_add_to;
16 18 /**
17 19 * @inheritdoc
18 20 */
... ... @@ -43,6 +45,8 @@
43 45 'description',
44 46 'file',
45 47 'specializationString',
  48 + 'date_add_from',
  49 + 'date_add_to',
46 50 ],
47 51 'safe',
48 52 ],
... ... @@ -50,6 +54,20 @@
50 54 [ 'view_count' ],
51 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 112 ->joinWith([ 'specializations' ])
95 113 ->where([
96 114 'like',
97   - 'specialization_name',
98   - $this->specializationString,
  115 + 'LOWER(specialization_name)',
  116 + mb_strtolower($this->specializationString),
99 117 ])
100 118 ->asArray()
101 119 ->column();
... ... @@ -116,11 +134,20 @@
116 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 152 $query->andFilterWhere([
126 153 'like',
... ...
common/models/User.php
... ... @@ -89,7 +89,6 @@
89 89 [
90 90 'firstname',
91 91 'lastname',
92   - 'email',
93 92 ],
94 93 'required',
95 94 ],
... ...
common/models/UserInfo.php
... ... @@ -29,6 +29,7 @@
29 29 * @property integer $type
30 30 * @property string $geography
31 31 * @property integer $salary_currency
  32 + * @property string $email
32 33 */
33 34 class UserInfo extends \yii\db\ActiveRecord
34 35 {
... ... @@ -68,6 +69,7 @@
68 69 [
69 70 [
70 71 'city',
  72 + 'email',
71 73 ],
72 74 'required',
73 75 ],
... ... @@ -195,6 +197,12 @@
195 197 'default',
196 198 'value' => [],
197 199 ],
  200 + [
  201 + [
  202 + 'email',
  203 + ],
  204 + 'email',
  205 + ],
198 206 ];
199 207 }
200 208  
... ... @@ -267,4 +275,5 @@
267 275 {
268 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 644 $project->link('payments', Payment::findOne($one_payment));
645 645 }
646 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 723 foreach($project->paymentInput as $one_payment) {
725 724 $project->link('payments', Payment::findOne($one_payment));
726 725 }
  726 + return $this->redirect(['projects']);
727 727 }
728 728 }
729 729 return $this->render('_projects_form', [
... ...
frontend/views/accounts/_projects_form.php
... ... @@ -236,7 +236,7 @@
236 236 <?= $form->field($project, 'date_end')
237 237 ->dropDownList([
238 238 1 => 'Неделя',
239   - 2 => '2 неделю',
  239 + 2 => '2 недели',
240 240 3 => 'Месяц',
241 241 ]) ?>
242 242 </div>
... ...
frontend/views/accounts/general.php
... ... @@ -171,8 +171,8 @@
171 171  
172 172 <div class="input-blocks-wrapper ">
173 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 177 </div>
178 178 <div class="input-blocks hide-mail-check">
... ...
frontend/views/accounts/projects.php
... ... @@ -8,6 +8,7 @@
8 8 use yii\grid\ActionColumn;
9 9 use yii\grid\GridView;
10 10 use yii\helpers\Html;
  11 + use yii\jui\DatePicker;
11 12  
12 13 $this->title = 'Проекты';
13 14 $this->params[ 'breadcrumbs' ][] = $this->title;
... ... @@ -26,6 +27,39 @@
26 27 'label' => 'ID',
27 28 ],
28 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 63 'budget',
30 64 'city',
31 65 [
... ... @@ -33,6 +67,12 @@
33 67 ],
34 68 'view_count',
35 69 [
  70 + 'value' => function($model, $key, $index, $column) {
  71 + return 0;
  72 + },
  73 + 'label' => 'Отклики',
  74 + ],
  75 + [
36 76 'class' => ActionColumn::className(),
37 77 'buttons' => [
38 78 'update' => function($url, $model, $key) {
... ...
frontend/views/performer/portfolio-view.php
... ... @@ -63,12 +63,12 @@
63 63 <div id="demo5" class="scroll-img">
64 64 <ul>
65 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 72 </ul>
73 73 </div>
74 74 <div id="demo5-btn" class="text-center">
... ... @@ -85,59 +85,28 @@
85 85 <div class="new-portfolio-txt-wrapper style">
86 86 <div class="new-portfolio-excerpt style">
87 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 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 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 110 </div>
142 111  
143 112 <div class="new-portf-comments-wr style">
... ...