Commit 25bd78f87d536f82983dcf1c5c497d515642d993

Authored by Yarik
1 parent aa08967c

test

common/models/Project.php
@@ -4,11 +4,9 @@ @@ -4,11 +4,9 @@
4 4
5 use common\modules\comment\models\CommentProject; 5 use common\modules\comment\models\CommentProject;
6 use common\modules\fileloader\behaviors\FileloaderBehavior; 6 use common\modules\fileloader\behaviors\FileloaderBehavior;
7 - use common\modules\fileloader\models\Fileloader;  
8 use Yii; 7 use Yii;
9 use yii\behaviors\BlameableBehavior; 8 use yii\behaviors\BlameableBehavior;
10 use yii\behaviors\TimestampBehavior; 9 use yii\behaviors\TimestampBehavior;
11 - use yii\db\ActiveQuery;  
12 use yii\db\Expression; 10 use yii\db\Expression;
13 11
14 /** 12 /**
common/modules/comment/models/Comment.php
@@ -331,13 +331,17 @@ @@ -331,13 +331,17 @@
331 } 331 }
332 } 332 }
333 333
334 - public function getAuthor() 334 + public function getAuthor($guestMark = '')
335 { 335 {
336 - // if($this->user_id != NULL) {  
337 - return $this->hasOne(\common\models\User::className(), [ 'id' => 'user_id' ]);  
338 - // } else {  
339 - // return ['firstname' => $this->user_name, 'email' => $this->user_email];  
340 - // } 336 + if(!empty($this->user)) {
  337 + return $this->user->name;
  338 + } else {
  339 + $name = $this->user_name;
  340 + if(!empty($guestMark)) {
  341 + $name .= $guestMark;
  342 + }
  343 + return $name;
  344 + }
341 } 345 }
342 346
343 public function checkRating() 347 public function checkRating()
@@ -391,25 +395,31 @@ @@ -391,25 +395,31 @@
391 return $this->hasOne(User::className(), [ 'id' => 'user_id' ]); 395 return $this->hasOne(User::className(), [ 'id' => 'user_id' ]);
392 } 396 }
393 397
394 - public function buildButtons() 398 + public function buildButtons($buttons = ['delete', 'update', 'reply'])
395 { 399 {
396 - if($this->checkDelete()) {  
397 - $this->buttons[ 'delete' ] = Url::to([  
398 - 'artbox-comment/delete',  
399 - 'comment_id' => $this->comment_id,  
400 - ]); 400 + if(in_array('delete', $buttons)) {
  401 + if($this->checkDelete()) {
  402 + $this->buttons[ 'delete' ] = Url::to([
  403 + 'artbox-comment/delete',
  404 + 'comment_id' => $this->comment_id,
  405 + ]);
  406 + }
401 } 407 }
402 - if($this->checkUpdate()) {  
403 - $this->buttons[ 'update' ] = Url::to([  
404 - 'artbox-comment/update',  
405 - 'comment_id' => $this->comment_id,  
406 - ]); 408 + if(in_array('update', $buttons)) {
  409 + if($this->checkUpdate()) {
  410 + $this->buttons[ 'update' ] = Url::to([
  411 + 'artbox-comment/update',
  412 + 'comment_id' => $this->comment_id,
  413 + ]);
  414 + }
407 } 415 }
408 - if($this->checkReply()) {  
409 - $this->buttons[ 'reply' ] = Url::to([  
410 - 'artbox-comment/reply',  
411 - 'comment_id' => $this->comment_id,  
412 - ]); 416 + if(in_array('reply', $buttons)) {
  417 + if($this->checkReply()) {
  418 + $this->buttons[ 'reply' ] = Url::to([
  419 + 'artbox-comment/reply',
  420 + 'comment_id' => $this->comment_id,
  421 + ]);
  422 + }
413 } 423 }
414 } 424 }
415 425
common/modules/comment/models/CommentProject.php
@@ -155,6 +155,7 @@ @@ -155,6 +155,7 @@
155 'text', 155 'text',
156 'budget_from', 156 'budget_from',
157 'budget_to', 157 'budget_to',
  158 + 'budget_currency',
158 'term_from', 159 'term_from',
159 'term_to', 160 'term_to',
160 'file', 161 'file',
@@ -223,13 +224,34 @@ @@ -223,13 +224,34 @@
223 */ 224 */
224 public function getComments($model, $model_id) 225 public function getComments($model, $model_id)
225 { 226 {
226 - return $this->find()  
227 - ->where([  
228 - 'comment_project.model' => $model,  
229 - 'comment_project.model_id' => $model_id,  
230 - 'comment_project.status' => 1,  
231 - ])  
232 - ->with('currency', 'user', 'user.userInfo', 'user.companyInfo', 'user.comments'); 227 + /**
  228 + * @var User $user
  229 + */
  230 + $user = \Yii::$app->user->identity;
  231 + if(!empty($user)) {
  232 + $project = Project::findOne($model_id);
  233 + if(!empty($project) && $user->id == $project->user_id) {
  234 + return $this->find()
  235 + ->where([
  236 + 'comment_project.model' => $model,
  237 + 'comment_project.model_id' => $model_id,
  238 + 'comment_project.status' => [self::STATUS_ANONYMOUS, self::STATUS_ACTIVE, self::STATUS_PERSONAL],
  239 + ])
  240 + ->with('currency', 'user', 'user.userInfo', 'user.companyInfo', 'user.comments');
  241 + }
  242 + }
  243 + $query = $this->find()
  244 + ->where([
  245 + 'comment_project.model' => $model,
  246 + 'comment_project.model_id' => $model_id,
  247 + ])
  248 + ->with('currency', 'user', 'user.userInfo', 'user.companyInfo', 'user.comments');
  249 + if(!empty($user)) {
  250 + $query->andWhere(['or', ['comment_project.status' => self::STATUS_ACTIVE], ['comment_project.status' => self::STATUS_ANONYMOUS, 'comment_project.user_id' => $user->id]]);
  251 + } else {
  252 + $query->andWhere(['comment_project.status' => 1]);
  253 + }
  254 + return $query;
233 } 255 }
234 256
235 public function postComment() 257 public function postComment()
common/modules/comment/widgets/views/_project_comment_view.php
@@ -108,35 +108,66 @@ @@ -108,35 +108,66 @@
108 <?= Html::a('Портфолио', $user->getLink('portfolio'), [ 'class' => 'get-project-new' ]) ?> 108 <?= Html::a('Портфолио', $user->getLink('portfolio'), [ 'class' => 'get-project-new' ]) ?>
109 <?= Html::a('Контакты', $user->link, [ 'class' => 'get-list-new' ]) ?> 109 <?= Html::a('Контакты', $user->link, [ 'class' => 'get-list-new' ]) ?>
110 </div> 110 </div>
  111 + <div style="clear:both"></div>
111 <?php 112 <?php
  113 + if($model->status == $model::STATUS_ANONYMOUS) {
  114 + echo Html::tag('div', 'Анонимное предложение', [ 'class' => 'project_status' ]);
  115 + }
112 if(\Yii::$app->user->getId() == $model->owner->user_id) { 116 if(\Yii::$app->user->getId() == $model->owner->user_id) {
113 ?> 117 ?>
114 - <div class="project_owner_control" style="clear:both">  
115 - <span>Отметить как: </span>  
116 - <?php  
117 - echo Html::a('новый', [ '#' ], [  
118 - 'data-project-id' => $model->owner->project_id,  
119 - 'data-comment-id' => $model->comment_id,  
120 - 'class' => 'artbox_project_make_new',  
121 - ]);  
122 - echo Html::a('кандидат', [ '#' ], [  
123 - 'data-project-id' => $model->owner->project_id,  
124 - 'data-comment-id' => $model->comment_id,  
125 - 'class' => 'artbox_project_make_candidate',  
126 - ]);  
127 - echo Html::a('исполнитель', [ '#' ], [  
128 - 'data-project-id' => $model->owner->project_id,  
129 - 'data-comment-id' => $model->comment_id,  
130 - 'class' => 'artbox_project_make_performer',  
131 - ]);  
132 - echo Html::a('отказать', [ '#' ], [  
133 - 'data-project-id' => $model->owner->project_id,  
134 - 'data-comment-id' => $model->comment_id,  
135 - 'class' => 'artbox_project_make_deny',  
136 - ]);  
137 - ?> 118 + <div class="project_owner_state">
  119 + <p>
  120 + <?php
  121 + switch($model->state) {
  122 + case 1:
  123 + echo 'Предложение не рассмотрено';
  124 + break;
  125 + case 2:
  126 + echo 'Исполнитель поставлен на рассмотрение';
  127 + break;
  128 + case 3:
  129 + echo 'Исполнитель назначен исполнителем';
  130 + break;
  131 + case 4:
  132 + echo 'Вы отказали данному исполнителю';
  133 + break;
  134 + case 5:
  135 + echo 'Исполнитель отказался от данного предложения';
  136 + break;
  137 + }
  138 + ?>
  139 + </p>
138 </div> 140 </div>
139 <?php 141 <?php
  142 + if($model->state != $model::STATE_TRASH) {
  143 + ?>
  144 + <div class="project_owner_control">
  145 + <span>Отметить как: </span>
  146 + <?php
  147 + echo Html::a('новый', [ '#' ], [
  148 + 'data-project-id' => $model->owner->project_id,
  149 + 'data-comment-id' => $model->comment_id,
  150 + 'class' => 'artbox_project_make_new',
  151 + ]);
  152 + echo Html::a('кандидат', [ '#' ], [
  153 + 'data-project-id' => $model->owner->project_id,
  154 + 'data-comment-id' => $model->comment_id,
  155 + 'class' => 'artbox_project_make_candidate',
  156 + ]);
  157 + echo Html::a('исполнитель', [ '#' ], [
  158 + 'data-project-id' => $model->owner->project_id,
  159 + 'data-comment-id' => $model->comment_id,
  160 + 'class' => 'artbox_project_make_performer',
  161 + ]);
  162 + echo Html::a('отказать', [ '#' ], [
  163 + 'data-project-id' => $model->owner->project_id,
  164 + 'data-comment-id' => $model->comment_id,
  165 + 'class' => 'artbox_project_make_deny',
  166 + ]);
  167 + ?>
  168 + </div>
  169 + <?php
  170 + }
140 } 171 }
141 ?> 172 ?>
142 173
common/modules/comment/widgets/views/_review_comment_view.php
@@ -14,9 +14,11 @@ @@ -14,9 +14,11 @@
14 * @var User $user 14 * @var User $user
15 */ 15 */
16 $user = $model->user; 16 $user = $model->user;
17 - $model->buildButtons(); 17 + $model->buildButtons(['delete']);
18 ?> 18 ?>
19 - <div class="comments-name <?= CommentWidget::$baseClass[ 'comment_author' ] ?>"><?= $user->name ?></div> 19 + <div class="comments-name <?= CommentWidget::$baseClass[ 'comment_author' ] ?>">
  20 + <?= $model->getAuthor(' (Гость)') ?>
  21 + </div>
20 <?php 22 <?php
21 /* == STATUS PRO == 23 /* == STATUS PRO ==
22 ?> 24 ?>
@@ -41,7 +43,7 @@ @@ -41,7 +43,7 @@
41 <div> 43 <div>
42 <?php 44 <?php
43 if(!empty( $model->buttons[ 'delete' ] )) { 45 if(!empty( $model->buttons[ 'delete' ] )) {
44 - echo Html::a('Удалить', $model->buttons[ 'delete' ], [ 'class' => CommentWidget::$baseClass[ 'comment_delete' ] ]); 46 + echo Html::a(($model->user_id != NULL && $model->user_id == \Yii::$app->user->id)?'Удалить':'Пожаловаться ', $model->buttons[ 'delete' ], [ 'class' => CommentWidget::$baseClass[ 'comment_delete' ] ]);
45 } 47 }
46 if(!empty( $model->buttons[ 'update' ] )) { 48 if(!empty( $model->buttons[ 'update' ] )) {
47 echo Html::a('Редактировать', $model->buttons[ 'update' ], [ 'class' => CommentWidget::$baseClass[ 'comment_update' ] ]); 49 echo Html::a('Редактировать', $model->buttons[ 'update' ], [ 'class' => CommentWidget::$baseClass[ 'comment_update' ] ]);
frontend/controllers/AccountsController.php
@@ -556,14 +556,17 @@ @@ -556,14 +556,17 @@
556 if($portfolioUser->load($post)) { 556 if($portfolioUser->load($post)) {
557 $portfolioUser->status = 1; 557 $portfolioUser->status = 1;
558 if($portfolioUser->save()) { 558 if($portfolioUser->save()) {
559 - if(!empty($portfolioUser->gallery)) { 559 + if(!empty( $portfolioUser->gallery )) {
560 $portfolioUser->gallery->load($post); 560 $portfolioUser->gallery->load($post);
561 $portfolioUser->portfolioGallery->load($post); 561 $portfolioUser->portfolioGallery->load($post);
562 if($portfolioUser->gallery->save() && $portfolioUser->portfolioGallery->save()) { 562 if($portfolioUser->gallery->save() && $portfolioUser->portfolioGallery->save()) {
563 - return $this->redirect(['accounts/participant']); 563 + return $this->redirect([ 'accounts/participant' ]);
564 } 564 }
565 } else { 565 } else {
566 - return $this->redirect(['accounts/participant-edit', 'id' => $portfolioUser->portfolio_user_id]); 566 + return $this->redirect([
  567 + 'accounts/participant-edit',
  568 + 'id' => $portfolioUser->portfolio_user_id,
  569 + ]);
567 } 570 }
568 } 571 }
569 } 572 }
@@ -580,6 +583,7 @@ @@ -580,6 +583,7 @@
580 $searchModel = new PortfolioSearch(); 583 $searchModel = new PortfolioSearch();
581 $dataProvider = $searchModel->search(Yii::$app->request->queryParams); 584 $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
582 $dataProvider->pagination->pageSize = 5; 585 $dataProvider->pagination->pageSize = 5;
  586 + $dataProvider->sort->defaultOrder = [ 'portfolio_id' => SORT_ASC ];
583 return $this->render('portfolio', [ 587 return $this->render('portfolio', [
584 'searchModel' => $searchModel, 588 'searchModel' => $searchModel,
585 'dataProvider' => $dataProvider, 589 'dataProvider' => $dataProvider,
frontend/controllers/TenderController.php
@@ -117,9 +117,10 @@ @@ -117,9 +117,10 @@
117 $project = Project::findOne($project_id); 117 $project = Project::findOne($project_id);
118 if(empty( $project )) { 118 if(empty( $project )) {
119 return [ 'error' => 'Проект не найден' ]; 119 return [ 'error' => 'Проект не найден' ];
120 - } elseif($project->user_id != $user->id) {  
121 - return [ 'error' => 'Вы можете менять статус только собственных проектов' ];  
122 } 120 }
  121 +// elseif($project->user_id != $user->id) {
  122 +// return [ 'error' => 'Вы можете менять статус только собственных проектов' ];
  123 +// }
123 /** 124 /**
124 * @var CommentProject $comment 125 * @var CommentProject $comment
125 */ 126 */
@@ -133,7 +134,10 @@ @@ -133,7 +134,10 @@
133 if(empty( $comment )) { 134 if(empty( $comment )) {
134 return [ 'error' => 'Данного предложения не существует' ]; 135 return [ 'error' => 'Данного предложения не существует' ];
135 } 136 }
136 - if($comment->user_id == \Yii::$app->user->getId()) { 137 + if($project->user_id != $user->id && $comment->user_id != $user->id) {
  138 + return ['error' => 'Вы можете менять статус только своих предложений, либо предложений по своим проектам'];
  139 + }
  140 + if($comment->user_id == $user->id) {
137 $comment->scenario = $comment::SCENARIO_OWNER; 141 $comment->scenario = $comment::SCENARIO_OWNER;
138 } else { 142 } else {
139 $comment->scenario = $comment::SCENARIO_STATE; 143 $comment->scenario = $comment::SCENARIO_STATE;
frontend/views/projects/_projects_list_view.php
@@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
10 use yii\data\ActiveDataProvider; 10 use yii\data\ActiveDataProvider;
11 use yii\helpers\Html; 11 use yii\helpers\Html;
12 use yii\widgets\ListView; 12 use yii\widgets\ListView;
13 - 13 + $chat = \Yii::$app->user->identity->getChat($model->project->user_id)->one();
14 ?> 14 ?>
15 <div class="left-left-proektant-cabinet"> 15 <div class="left-left-proektant-cabinet">
16 <?php 16 <?php
@@ -73,12 +73,13 @@ @@ -73,12 +73,13 @@
73 <div class="right-proektant-cabinet-message-new"> 73 <div class="right-proektant-cabinet-message-new">
74 <img src="/images/cabinet/ico-6.png" alt=""/> 74 <img src="/images/cabinet/ico-6.png" alt=""/>
75 <?php 75 <?php
76 - echo Html::a(count(\Yii::$app->user->identity->getChat($model->project->user_id)  
77 - ->one()->messages) . ' сообщения', [ 76 + echo Html::a((empty($chat))?0:count($chat->messages) . ' сообщения', [
78 'chat/message', 77 'chat/message',
79 'user_id' => $model->project->user_id, 78 'user_id' => $model->project->user_id,
80 ]); 79 ]);
81 - if($model->state == 5) { 80 + if($model->state == $model::STATE_DENY) {
  81 +
  82 + } elseif($model->state == $model::STATE_TRASH) {
82 echo Html::a('Отменить', [ '#' ], [ 83 echo Html::a('Отменить', [ '#' ], [
83 'data-project-id' => $model->project->project_id, 84 'data-project-id' => $model->project->project_id,
84 'data-comment-id' => $model->comment_id, 85 'data-comment-id' => $model->comment_id,
frontend/web/js/forms.js
@@ -364,6 +364,7 @@ $(document).ready( @@ -364,6 +364,7 @@ $(document).ready(
364 alert(data.error); 364 alert(data.error);
365 } else { 365 } else {
366 alert(data.message); 366 alert(data.message);
  367 + location.reload();
367 } 368 }
368 }, 'json').fail( 369 }, 'json').fail(
369 function() 370 function()
@@ -383,6 +384,7 @@ $(document).ready( @@ -383,6 +384,7 @@ $(document).ready(
383 alert(data.error); 384 alert(data.error);
384 } else { 385 } else {
385 alert(data.message); 386 alert(data.message);
  387 + location.reload();
386 } 388 }
387 }, 'json').fail( 389 }, 'json').fail(
388 function() 390 function()
@@ -402,6 +404,7 @@ $(document).ready( @@ -402,6 +404,7 @@ $(document).ready(
402 alert(data.error); 404 alert(data.error);
403 } else { 405 } else {
404 alert(data.message); 406 alert(data.message);
  407 + location.reload();
405 } 408 }
406 }, 'json').fail( 409 }, 'json').fail(
407 function() 410 function()
@@ -421,6 +424,7 @@ $(document).ready( @@ -421,6 +424,7 @@ $(document).ready(
421 alert(data.error); 424 alert(data.error);
422 } else { 425 } else {
423 alert(data.message); 426 alert(data.message);
  427 + location.reload();
424 } 428 }
425 }, 'json').fail( 429 }, 'json').fail(
426 function() 430 function()
@@ -440,6 +444,7 @@ $(document).ready( @@ -440,6 +444,7 @@ $(document).ready(
440 alert(data.error); 444 alert(data.error);
441 } else { 445 } else {
442 alert(data.message); 446 alert(data.message);
  447 + location.reload();
443 } 448 }
444 }, 'json').fail( 449 }, 'json').fail(
445 function() 450 function()