/** * Displays a particular model. * * @param integer $id the ID of the model to be displayed */ public function actionView($id) { $model = $this->loadModel($id); $status = new CvStatuses(); // if it is ajax validation request if (isset($_POST['ajax']) && $_POST['ajax'] === 'status-form') { echo CActiveForm::validate($status); Yii::app()->end(); } // collect user input data if (isset($_POST['CvStatuses'])) { $status->attributes = $_POST['CvStatuses']; if ($status->validate() && $status->save()) { $log = new Log(); $log->action = 'add_status_to_user_' . $id; $log->save(); Yii::app()->user->setFlash(TbHtml::ALERT_COLOR_SUCCESS, 'Ваш статус був доданий!'); $this->redirect(array('/manage/profiles/view/', 'id' => $id, '#' => 'statuses')); } } if (isset($_POST['CvList'])) { $model->status = $_POST['CvList']['status']; if ($model->save()) { $log = new Log(); $log->action = 'change_status_to_user_' . $id . "_to_" . $_POST['CvList']['status']; $log->save(); Yii::app()->user->setFlash(TbHtml::ALERT_COLOR_SUCCESS, 'Статус анкети був оновлений!'); $this->redirect(array('/manage/profiles/view/', 'id' => $id)); } else { $errors = $model->getErrors(); $errString = ''; foreach ($errors as $e) { $errString .= implode(", ", $e); } Yii::app()->user->setFlash(TbHtml::ALERT_COLOR_ERROR, 'Виникли помилки: ' . $errString); } } $statuses = CvStatuses::model()->findAll(array('condition' => 'cv_id=:cv_id', 'params' => array(':cv_id' => $id), 'order' => 'added_time DESC')); $criteria = new CDbCriteria(); $criteria->with = ['positions' => ['together' => true]]; $criteria->addInCondition('positions.id', $model->positionsIds); $criteria->addInCondition('city_id', $model->jobLocationsIds); $vacanciesDataProvider = new CActiveDataProvider('Vacancy', ['criteria' => $criteria]); $vacanciesDataProvider->sort = false; $this->render('view', array('model' => $model, 'status' => $status, 'statuses' => $statuses, 'vacanciesDataProvider' => $vacanciesDataProvider)); }
public function getLatestStatuses() { $criteria = new CDbCriteria(); $criteria->condition = 'cv_id = :cv_id'; $criteria->params = array(':cv_id' => $this->id); $criteria->order = "added_time DESC"; $criteria->limit = 3; return CvStatuses::model()->findAll($criteria); }