public static function saveReviewProperties(AfterSaveEvent $event)
 {
     $submission = null;
     $reviewId = Yii::$app->request->get('id');
     $post = Yii::$app->request->post();
     if (null !== ($review = Review::findOne(['id' => $reviewId]))) {
         $submission = Submission::findOne(['id' => $review->submission_id]);
     } else {
         $m = preg_grep('%Properties_Submission_([\\d]+)$%', array_keys($post));
         if (false === empty($m)) {
             $submissionId = array_pop(explode('_', array_shift($m)));
             $submission = Submission::findOne(['id' => $submissionId]);
         }
     }
     if (null !== $submission) {
         if (isset($post['Submission'])) {
             $submission->attributes = $post['Submission'];
             $submission->save();
         }
         $submission->saveProperties($post);
     }
 }
 public function actionCreate($parent_id = 0)
 {
     $parent_id = intval($parent_id);
     $model = new Review();
     $model->loadDefaultValues();
     if (0 === $parent_id) {
         $model->parent_id = $parent_id;
         $model->submission_id = 0;
         $model->object_model_id = 0;
         $model->object_id = 0;
     } elseif (null !== ($parent = Review::findOne(['id' => $parent_id]))) {
         /** @var Review $parent */
         $model->parent_id = $parent_id;
         $model->object_id = $parent->object_id;
         $model->object_model_id = $parent->object_model_id;
         $model->root_id = $parent->root_id;
         $model->submission_id = $parent->submission_id;
     }
     if (true === Yii::$app->request->isPost) {
         if ($model->load(Yii::$app->request->post()) && $model->save()) {
             return $this->redirect(Url::toRoute(['view', 'id' => $model->id]));
         } else {
             // @todo add alert and may be something else here
         }
     }
     return $this->render('edit', ['review' => $model]);
 }
Пример #3
0
<?php

/**
 * @var \app\models\Form $form
 * @var \app\models\Submission $submission
 */
/** @var \app\modules\review\models\Review $review */
$review = \app\modules\review\models\Review::findOne(['submission_id' => $submission->id]);
// @todo Add rating to email
?>
<h1><?php 
echo $form->name . ' #' . $submission->id;
?>
</h1>
<table>
    <tr>
        <td><?php 
echo Yii::t('app', 'Date received');
?>
</td>
        <td><?php 
echo $submission->date_received;
?>
</td>
    </tr>
    <tr>
        <td><?php 
echo Yii::t('app', 'IP');
?>
</td>
        <td><?php 
 /**
  * Load review model by id
  * @param $id
  * @return Review
  * @throws NotFoundHttpException
  */
 protected function loadModel($id)
 {
     $model = Review::findOne($id);
     if (is_null($model)) {
         throw new NotFoundHttpException();
     }
     return $model;
 }