Commit 492ed7f73e583761b2190fc893d8d364d10431c3

Authored by Yarik
1 parent 50ed5626

test

common/models/Project.php
... ... @@ -32,6 +32,7 @@
32 32 * @property Specialization[] $specializations
33 33 * @property Currency $budgetCurrency
34 34 * @property Project $parent
  35 + * @property int $hidden
35 36 */
36 37 class Project extends \yii\db\ActiveRecord
37 38 {
... ... @@ -137,10 +138,37 @@
137 138 'min' => 1,
138 139 ],
139 140 [
140   - [ 'deadline' ],
  141 + [
  142 + 'deadline',
  143 + ],
141 144 'default',
142 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 199 'specializationInput' => Yii::t('app', 'Специализации'),
172 200 'paymentInput' => Yii::t('app', 'Способ оплаты'),
173 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 15  
16 16 public $date_add_from;
17 17 public $date_add_to;
  18 + public $budget_approx;
18 19 /**
19 20 * @inheritdoc
20 21 */
... ... @@ -39,6 +40,7 @@
39 40 'date_add',
40 41 'date_end',
41 42 'budget',
  43 + 'budget_approx',
42 44 'city',
43 45 'street',
44 46 'house',
... ... @@ -190,6 +192,11 @@
190 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 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 649 }
650 650 $project->validate();
651 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 653 $project->unlinkAll('specializations', true);
666 654 foreach($project->specializationInput as $one_specialization) {
667 655 $project->link('specializations', Specialization::findOne($one_specialization));
... ... @@ -747,19 +735,7 @@
747 735 }
748 736 $project->validate();
749 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 739 $project->unlinkAll('specializations', true);
764 740 foreach($project->specializationInput as $one_specialization) {
765 741 $project->link('specializations', Specialization::findOne($one_specialization));
... ...
frontend/views/accounts/_projects_form.php
... ... @@ -14,6 +14,7 @@
14 14 use kartik\select2\Select2;
15 15 use mihaildev\ckeditor\CKEditor;
16 16 use yii\helpers\Html;
  17 + use yii\jui\DatePicker;
17 18 use yii\web\JsExpression;
18 19 use yii\widgets\ActiveForm;
19 20  
... ... @@ -210,6 +211,20 @@
210 211 </div>
211 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 228 <div class="input-blocks-wrapper admin-project-file">
214 229 <div class="input-blocks">
215 230 <div style="position: absolute; float: left;top: 0; left: 0; z-index: 1; width: 100%; overflow: hidden">
... ... @@ -227,12 +242,13 @@
227 242  
228 243 <div class="input-blocks-wrapper">
229 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 252 </div>
237 253 </div>
238 254  
... ...
frontend/views/accounts/projects.php
... ... @@ -3,12 +3,14 @@
3 3 * @var ProjectSearch $searchModel
4 4 * @var ActiveDataProvider $dataProvider
5 5 */
  6 + use common\models\Project;
6 7 use common\models\ProjectSearch;
7 8 use yii\data\ActiveDataProvider;
8 9 use yii\grid\ActionColumn;
9 10 use yii\grid\GridView;
10 11 use yii\helpers\Html;
11 12 use yii\jui\DatePicker;
  13 + use yii\widgets\ActiveField;
12 14  
13 15 $this->title = 'Проекты';
14 16 $this->params[ 'breadcrumbs' ][] = $this->title;
... ... @@ -60,7 +62,21 @@
60 62 </div>",
61 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 80 'city',
65 81 [
66 82 'attribute' => 'specializationString',
... ...