/** * Updates an existing UserJob model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $_id * @return mixed */ public function actionUpdate($id) { $modelUser = User::findOne($id); $modelUserJob = UserJob::findOne($id); if (!isset($modelUser, $modelUserJob)) { throw new NotFoundHttpException("The user was not found."); } if ($modelUser->load(Yii::$app->request->post()) && $modelUserJob->load(Yii::$app->request->post())) { $modelUserValidate = $modelUser->validate(); $modelUserJobValidate = $modelUserJob->validate(); if ($modelUserValidate && $modelUserJobValidate) { $modelUserJob->email = $modelUser->email; if ($modelUser->save(false) && $modelUserJob->save(false)) { if ($modelUserJob->role == 'seeker') { UserJobSeekerResume::updateAll(['nationality' => $modelUserJob->seeker_nationality, 'salary' => $modelUserJob->seeker_salary], ['_id' => $modelUserJob->_id]); } if (Yii::$app->request->post('save_type') !== 'apply') { return $this->redirect(['view', 'id' => (string) $modelUser->_id]); } } } } Yii::$app->view->title = Yii::t('yii', 'Update'); Yii::$app->view->params['breadcrumbs'][] = ['label' => Yii::t($this->module->id, 'Manage Members'), 'url' => ['index']]; Yii::$app->view->params['breadcrumbs'][] = Yii::$app->view->title; return $this->render('form', ['modelUser' => $modelUser, 'modelUserJob' => $modelUserJob]); }
public function search($params, $pageSize = 20) { $query = self::find(); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => $pageSize]]); if (!($this->load($params) and $this->validate())) { return $dataProvider; } if (!empty($this->keyword)) { $query->orFilterWhere(['like', 'education_name', $this->keyword])->orFilterWhere(['like', 'phone_number', $this->keyword])->orFilterWhere(['like', 'social_facebook', $this->keyword])->orFilterWhere(['like', 'social_twitter', $this->keyword])->orFilterWhere(['like', 'latest_company', $this->keyword])->orFilterWhere(['like', 'latest_position', $this->keyword])->orFilterWhere(['like', 'education_study', $this->keyword]); //get user's _ids by keyword from user document $this->_ids = array_keys(ArrayHelper::map(User::find()->orFilterWhere(['like', 'email', $this->keyword])->orFilterWhere(['like', 'fullname', $this->keyword])->orFilterWhere(['like', 'displayname', $this->keyword])->orFilterWhere(['like', 'first_name', $this->keyword])->orFilterWhere(['like', 'last_name', $this->keyword])->orFilterWhere(['like', 'phone', $this->keyword])->asArray()->all(), '_id', '_id')); } if ($this->search_mode == 'AND') { if (!empty($this->_ids)) { $query->where(['in', '_id', $this->_ids]); } if (!empty($this->nationality)) { $query->andFilterWhere(['=', 'nationality', $this->nationality]); } if (!empty($this->location)) { $query->andFilterWhere(['=', 'location', $this->location]); } if (!empty($this->functions)) { $query->andFilterWhere(['in', 'functions', $this->functions]); } if (!empty($this->industries)) { $query->andFilterWhere(['industries' => [$this->industries]]); } } else { if (!empty($this->_ids)) { $query->orFilterWhere(['in', '_id', $this->_ids]); } if (!empty($this->nationality)) { $query->orFilterWhere(['=', 'nationality', $this->nationality]); } if (!empty($this->location)) { $query->orFilterWhere(['=', 'location', $this->location]); } if (!empty($this->functions)) { $query->orFilterWhere(['in', 'functions', $this->functions]); } if (!empty($this->industries)) { $query->orFilterWhere(['industries' => [$this->industries]]); } } if (\app\helpers\ArrayHelper::getValue($params, 'sort') == NULL) { $query->orderBy('candidate_id DESC'); } return $dataProvider; }
public function actionResume() { // Xu ly avatar $modelUser = User::findOne(Yii::$app->user->id); if ($modelUser == null) { throw new NotFoundHttpException('The requested page does not exist.'); } $modelUserJob = UserJob::findOne(Yii::$app->user->id); if ($modelUserJob == null) { throw new NotFoundHttpException('The requested page does not exist.'); } $model = UserJobSeekerResume::findOne(Yii::$app->user->id); if ($model == null) { $model = new UserJobSeekerResume(); $model->_id = Yii::$app->user->id; $model->nationality = $modelUserJob->seeker_nationality; $model->salary = $modelUserJob->seeker_salary; $model->candidate_id = UserJob::getNextSequence('seeker'); } $employments = UserJobSeekerEmployment::find()->where(['seeker_id' => Yii::$app->user->id])->indexBy('_id')->all(); if ($employments == null) { $employments = new UserJobSeekerEmployment(); $employments->seeker_id = $model->_id; } if ($model->load(Yii::$app->request->post()) && $modelUser->load(Yii::$app->request->post())) { // Sync data $model->phone_number = $modelUser->phone; // UserJobSeekerResume::search() có dùng đến phone_number nên cần đồng bộ chỗ này $modelValidate = $model->validate(); $modelUserValidate = $modelUser->validate(); if (!is_array($employments)) { $employments->load(Yii::$app->request->post()); $employmentsValidate = $employments->validate(); } else { $employmentsValidate = Model::loadMultiple($employments, Yii::$app->request->post()) && Model::validateMultiple($employments); } if ($employmentsValidate && $modelValidate && $modelUserValidate && $model->save(false) && $modelUser->save(false)) { $modelUserJob->seeker_nationality = $model->nationality; $modelUserJob->seeker_salary = $model->salary; $modelUserJob->save(); if (!is_array($employments)) { $employments->save(); //update latest company and position for seeker resume document $model->latest_company = $employments->company_name; $model->latest_position = $employments->position; $model->save(false); } else { if (isset($employmentsValidate) && $employmentsValidate == true) { $i = 1; $max = sizeof($employments); foreach ($employments as $employment) { $employment->save(false); if ($i == $max) { // is latest employment iformation //update latest company and position for seeker resume document $model->latest_company = $employment->company_name; $model->latest_position = $employment->position; $model->save(false); } $i++; } } } Yii::$app->getSession()->setFlash('flash', ['type' => 'success', 'title' => Yii::t('common', 'Message'), 'message' => Yii::t('common', 'Your information has been saved successfully.'), 'duration' => 10000]); return $this->refresh(); } } Yii::$app->view->title = Yii::t($this->module->id, 'Resume'); Yii::$app->view->params['breadcrumbs'][] = Yii::$app->view->title; return $this->render('resume', ['model' => $model, 'modelUser' => $modelUser, 'employments' => $employments]); }
public function actionEditProfile() { $jobModel = UserJob::findOne(['_id' => Yii::$app->user->identity->_id]); $jobModel->scenario = "edit_recruiter"; $model = User::findOne(['_id' => Yii::$app->user->identity->_id]); $model->scenario = "edit_recruiter"; if ($model->load(Yii::$app->request->post()) && $jobModel->load(Yii::$app->request->post())) { $modelValidate = $model->validate(); $jobModelValidate = $jobModel->validate(); if ($modelValidate && $jobModelValidate) { if ($model->save(false)) { if ($jobModel->save(false)) { Yii::$app->getSession()->setFlash('flash', ['type' => 'success', 'title' => Yii::t('account', 'Message'), 'message' => Yii::t('account', 'Updated succesfully.'), 'duration' => 10000]); return $this->redirect(['view-profile']); } } } } Yii::$app->view->title = Yii::t($this->module->id, 'Edit Profile'); Yii::$app->view->params['breadcrumbs'][] = Yii::$app->view->title; return $this->render('edit-profile', ['model' => $model, 'jobModel' => $jobModel]); }
public function getUser() { return $this->hasOne(User::className(), ['_id' => '_id']); }
public function actionPublicProfile() { $displayName = Yii::$app->request->getQueryParam('display_name'); $user = User::find()->where(['display_name' => $displayName])->one(); if ($displayName and $user) { // Log view for user if (UserJob::checkRole('recruiter') or UserJob::checkRole('employer')) { $log = UserJobProfileViewLog::find()->where(['user_id' => $user->_id, 'view_by_user_id' => Yii::$app->user->id])->one(); if (!$log) { $log = new UserJobProfileViewLog(); $log->user_id = $user->_id; $log->view_by_user_id = Yii::$app->user->id; $log->hits = 1; $log->last_view_date = new \MongoDate(); } else { $log->hits = $log->hits + 1; $log->last_view_date = new \MongoDate(); } $log->save(); } Yii::$app->view->title = Yii::t($this->module->id, ucfirst($displayName) . "'s Profile"); Yii::$app->view->params['breadcrumbs'][] = Yii::$app->view->title; return $this->render("public_profile_{$user->userJob->role}", ['user' => $user]); } else { return $this->goHome(); } }