Commit 492ed7f73e583761b2190fc893d8d364d10431c3

Authored by Yarik
1 parent 50ed5626

test

common/models/Project.php
@@ -32,6 +32,7 @@ @@ -32,6 +32,7 @@
32 * @property Specialization[] $specializations 32 * @property Specialization[] $specializations
33 * @property Currency $budgetCurrency 33 * @property Currency $budgetCurrency
34 * @property Project $parent 34 * @property Project $parent
  35 + * @property int $hidden
35 */ 36 */
36 class Project extends \yii\db\ActiveRecord 37 class Project extends \yii\db\ActiveRecord
37 { 38 {
@@ -137,10 +138,37 @@ @@ -137,10 +138,37 @@
137 'min' => 1, 138 'min' => 1,
138 ], 139 ],
139 [ 140 [
140 - [ 'deadline' ], 141 + [
  142 + 'deadline',
  143 + ],
141 'default', 144 'default',
142 'value' => 1, 145 'value' => 1,
143 ], 146 ],
  147 + [
  148 + [ 'date_end' ],
  149 + 'default',
  150 + 'value' => date('Y-m-d H:i:s'),
  151 + ],
  152 + [
  153 + [ 'hidden' ],
  154 + 'boolean',
  155 + ],
  156 + [
  157 + ['hidden'],
  158 + 'default',
  159 + 'value' => 0,
  160 + ],
  161 + [
  162 + ['date_end'],
  163 + 'filter',
  164 + 'filter' => function($value) {
  165 + $unix = strtotime($value);
  166 + if($unix <= time()) {
  167 + $unix = time() + (3600 * 24 * 7);
  168 + }
  169 + return date('Y-m-d', $unix);
  170 + }
  171 + ]
144 ]; 172 ];
145 } 173 }
146 174
@@ -171,6 +199,7 @@ @@ -171,6 +199,7 @@
171 'specializationInput' => Yii::t('app', 'Специализации'), 199 'specializationInput' => Yii::t('app', 'Специализации'),
172 'paymentInput' => Yii::t('app', 'Способ оплаты'), 200 'paymentInput' => Yii::t('app', 'Способ оплаты'),
173 'specializationString' => Yii::t('app', 'Специализации'), 201 'specializationString' => Yii::t('app', 'Специализации'),
  202 + 'hidden' => Yii::t('app', 'Снять проект с тендера'),
174 ]; 203 ];
175 } 204 }
176 205
common/models/ProjectSearch.php
@@ -15,6 +15,7 @@ @@ -15,6 +15,7 @@
15 15
16 public $date_add_from; 16 public $date_add_from;
17 public $date_add_to; 17 public $date_add_to;
  18 + public $budget_approx;
18 /** 19 /**
19 * @inheritdoc 20 * @inheritdoc
20 */ 21 */
@@ -39,6 +40,7 @@ @@ -39,6 +40,7 @@
39 'date_add', 40 'date_add',
40 'date_end', 41 'date_end',
41 'budget', 42 'budget',
  43 + 'budget_approx',
42 'city', 44 'city',
43 'street', 45 'street',
44 'house', 46 'house',
@@ -190,6 +192,11 @@ @@ -190,6 +192,11 @@
190 $this->file, 192 $this->file,
191 ]); 193 ]);
192 194
  195 + if(!empty($this->budget_approx)) {
  196 + $query->andWhere(['between', 'budget', ($this->budget_approx - ($this->budget_approx/10)), ($this->budget_approx + ($this->budget_approx/10))]);
  197 + $query->andWhere(['not', ['contractual' => 1]]);
  198 + }
  199 +
193 return $dataProvider; 200 return $dataProvider;
194 } 201 }
195 } 202 }
console/migrations/m160321_132138_project_add_status.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\db\Migration;
  4 +
  5 +class m160321_132138_project_add_status extends Migration
  6 +{
  7 + public function up()
  8 + {
  9 + $this->addColumn('{{%project}}', 'hidden', $this->integer()->defaultValue(0));
  10 + }
  11 +
  12 + public function down()
  13 + {
  14 + $this->dropColumn('{{%project}}', 'hidden');
  15 + }
  16 +}
frontend/controllers/AccountsController.php
@@ -649,19 +649,7 @@ @@ -649,19 +649,7 @@
649 } 649 }
650 $project->validate(); 650 $project->validate();
651 if(!$project->hasErrors()) { 651 if(!$project->hasErrors()) {
652 - $date_end = new \DateTime();  
653 - switch($post[ 'Project' ][ 'date_end' ]) {  
654 - case 2:  
655 - $date_end->modify('+14 day');  
656 - break;  
657 - case 3:  
658 - $date_end->modify('+30 day');  
659 - break;  
660 - default:  
661 - $date_end->modify('+7 day');  
662 - };  
663 - $project->date_end = \Yii::$app->formatter->asDate($date_end->getTimestamp(), 'short');  
664 - $project->save(); 652 + $project->save(false);
665 $project->unlinkAll('specializations', true); 653 $project->unlinkAll('specializations', true);
666 foreach($project->specializationInput as $one_specialization) { 654 foreach($project->specializationInput as $one_specialization) {
667 $project->link('specializations', Specialization::findOne($one_specialization)); 655 $project->link('specializations', Specialization::findOne($one_specialization));
@@ -747,19 +735,7 @@ @@ -747,19 +735,7 @@
747 } 735 }
748 $project->validate(); 736 $project->validate();
749 if(!$project->hasErrors()) { 737 if(!$project->hasErrors()) {
750 - $date_end = new \DateTime();  
751 - switch($post[ 'Project' ][ 'date_end' ]) {  
752 - case 2:  
753 - $date_end->modify('+14 day');  
754 - break;  
755 - case 3:  
756 - $date_end->modify('+30 day');  
757 - break;  
758 - default:  
759 - $date_end->modify('+7 day');  
760 - };  
761 - $project->date_end = \Yii::$app->formatter->asDate($date_end->getTimestamp(), 'short');  
762 - $project->save(); 738 + $project->save(false);
763 $project->unlinkAll('specializations', true); 739 $project->unlinkAll('specializations', true);
764 foreach($project->specializationInput as $one_specialization) { 740 foreach($project->specializationInput as $one_specialization) {
765 $project->link('specializations', Specialization::findOne($one_specialization)); 741 $project->link('specializations', Specialization::findOne($one_specialization));
frontend/views/accounts/_projects_form.php
@@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
14 use kartik\select2\Select2; 14 use kartik\select2\Select2;
15 use mihaildev\ckeditor\CKEditor; 15 use mihaildev\ckeditor\CKEditor;
16 use yii\helpers\Html; 16 use yii\helpers\Html;
  17 + use yii\jui\DatePicker;
17 use yii\web\JsExpression; 18 use yii\web\JsExpression;
18 use yii\widgets\ActiveForm; 19 use yii\widgets\ActiveForm;
19 20
@@ -210,6 +211,20 @@ @@ -210,6 +211,20 @@
210 </div> 211 </div>
211 </div> 212 </div>
212 213
  214 +<?php
  215 +/* == Здесь епты == */
  216 +?>
  217 +<div class="tender-file-wr">
  218 + <?= $form->field($project, 'files[]')
  219 + ->fileInput([ 'class' => 'multi', 'multiple' => 'multiple' ])
  220 + ->label(false) ?>
  221 + <a href="#" class="addfilemulti">Прикрепить файл</a>
  222 + <div class="max-size">Максимальный размер<br/>файла 5 МБ</div>
  223 +</div>
  224 +<?php
  225 +/* == .i. Конец епты .i. == */
  226 +?>
  227 +
213 <div class="input-blocks-wrapper admin-project-file"> 228 <div class="input-blocks-wrapper admin-project-file">
214 <div class="input-blocks"> 229 <div class="input-blocks">
215 <div style="position: absolute; float: left;top: 0; left: 0; z-index: 1; width: 100%; overflow: hidden"> 230 <div style="position: absolute; float: left;top: 0; left: 0; z-index: 1; width: 100%; overflow: hidden">
@@ -227,12 +242,13 @@ @@ -227,12 +242,13 @@
227 242
228 <div class="input-blocks-wrapper"> 243 <div class="input-blocks-wrapper">
229 <div class="input-blocks admin-project-list admin-currency-second"> 244 <div class="input-blocks admin-project-list admin-currency-second">
230 - <?= $form->field($project, 'date_end')  
231 - ->dropDownList([  
232 - 1 => 'Неделя',  
233 - 2 => '2 недели',  
234 - 3 => 'Месяц',  
235 - ]) ?> 245 + <?= $form->field($project, 'date_end')->widget(DatePicker::className(), ['dateFormat' => 'yyyy-MM-dd', 'clientOptions' => ['minDate' => 1]]) ?>
  246 + </div>
  247 +</div>
  248 +
  249 +<div class="input-blocks-wrapper">
  250 + <div class="input-blocks admin-project-list admin-currency-second">
  251 + <?= $form->field($project, 'hidden')->checkbox() ?>
236 </div> 252 </div>
237 </div> 253 </div>
238 254
frontend/views/accounts/projects.php
@@ -3,12 +3,14 @@ @@ -3,12 +3,14 @@
3 * @var ProjectSearch $searchModel 3 * @var ProjectSearch $searchModel
4 * @var ActiveDataProvider $dataProvider 4 * @var ActiveDataProvider $dataProvider
5 */ 5 */
  6 + use common\models\Project;
6 use common\models\ProjectSearch; 7 use common\models\ProjectSearch;
7 use yii\data\ActiveDataProvider; 8 use yii\data\ActiveDataProvider;
8 use yii\grid\ActionColumn; 9 use yii\grid\ActionColumn;
9 use yii\grid\GridView; 10 use yii\grid\GridView;
10 use yii\helpers\Html; 11 use yii\helpers\Html;
11 use yii\jui\DatePicker; 12 use yii\jui\DatePicker;
  13 + use yii\widgets\ActiveField;
12 14
13 $this->title = 'Проекты'; 15 $this->title = 'Проекты';
14 $this->params[ 'breadcrumbs' ][] = $this->title; 16 $this->params[ 'breadcrumbs' ][] = $this->title;
@@ -60,7 +62,21 @@ @@ -60,7 +62,21 @@
60 </div>", 62 </div>",
61 'format' => 'html', 63 'format' => 'html',
62 ], 64 ],
63 - 'budget', 65 + [
  66 + 'attribute' => 'budget',
  67 + 'filter' => Html::activeInput('text', $searchModel, 'budget_approx'),
  68 + 'value' => function($model, $key, $index, $column) {
  69 + /**
  70 + * @var Project $model
  71 + */
  72 + if($model->contractual) {
  73 + return 'Договорной';
  74 + } else {
  75 + return $model->budget;
  76 + }
  77 + },
  78 + 'label' => $searchModel->getAttributeLabel('budget').' +/- 10%',
  79 + ],
64 'city', 80 'city',
65 [ 81 [
66 'attribute' => 'specializationString', 82 'attribute' => 'specializationString',