/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return DomainMentor the loaded model * @throws CHttpException */ public function loadModel($id) { $model = DomainMentor::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
<div id="container" class="my-box-container3" style="<?php if ($model->isDomMentor || $model->isProMentor || $model->isPerMentor) { echo 'display:block; '; } else { echo 'dispaly:none; '; } ?> height: 100%;"> <div class="contactlinks"> <h4>Availability</h4> <?php if ($model->isDomMentor) { ?> <h6>Domain Mentor Availability</h6><?php $dommentor = DomainMentor::model()->findBySql("SELECT max_tickets FROM domain_mentor WHERE user_id={$model->id}"); $userdom = UserDomain::model()->findBySql("SELECT tier_team FROM user_domain WHERE user_id={$model->id}"); if (is_null($dommentor->max_tickets)) { $dommentor->max_tickets = 0; $dommentor->save(); } if ($dommentor->max_tickets == null) { echo "Max tickets: "; ?> <select name="numTickets" style="width:60px;"> <option selected value="<?php echo $dommentor->max_tickets; ?> "><?php echo $dommentor->max_tickets; ?>
public static function escalateTicket($domain_id, $sub) { if ($sub) { $userDomain = UserDomain::model()->findAllBySql("SELECT * FROM user_domain WHERE subdomain_id =:id", array(":id" => $domain_id)); $subdomain = Subdomain::model()->findByPk($domain_id); $validator = $subdomain->validator; } else { $userDomain = UserDomain::model()->findAllBySql("SELECT * FROM user_domain WHERE domain_id =:id", array(":id" => $domain_id)); $domain = Domain::model()->findByPk($domain_id); $validator = $domain->validator; } if ($userDomain != null && is_array($userDomain)) { foreach ($userDomain as $auserDomain) { /** @var UserDomain $auserDomain */ if ($auserDomain->tier_team == 2) { if ($auserDomain->rate >= $validator) { /*Query to the domain mentor to see how many tickets is allowed to be assigned */ $domainMentor = DomainMentor::model()->findAllBySql("SELECT * FROM domain_mentor WHERE user_id =:id", array(":id" => $auserDomain->user_id)); /** @var Ticket $count */ if (is_array($domainMentor)) { foreach ($domainMentor as $adomainMentor) { /** @var DomainMentor $adomainMentor */ $count = Ticket::model()->findBySql("SELECT COUNT(id) as `id` FROM ticket WHERE assign_user_id =:id", array(":id" => $adomainMentor->user_id)); if ($count->id < $adomainMentor->max_tickets) { /*return the first available domain mentor on queue */ return $auserDomain->user_id; } } } } } } } return self::$admin; /* Assign the ticket to the admin for reassign */ }
public function actionApprove() { //$this->layout = ''; $user = User::model()->getCurrentUser(); $perModel = new ApplicationPersonalMentorPick(); $proModel = new ApplicationProjectMentorPick(); $domModel = new ApplicationDomainMentorPick(); $subModel = new ApplicationSubdomainMentorPick(); if (Yii::app()->getRequest()->isPostRequest) { $projectFlag = false; $personalFlag = false; $domainFlag = false; $domApp = $this->loadDomainMentorForApproval($user->id); $persApp = $this->loadPersonalMentorForApproval($user->id); $projApp = $this->loadProjectMentorForApproval($user->id); // PERSONAL PICKS ACCEPT $mypicks = $_POST['personal_picks_accept']; // add entry to personal_mentor $personalEntry = $this->isNewEntry($user->id, 'personal_mentor'); // if it already exists do NOTHING . change here with else statement to perform update if ($personalEntry < 1) { // add entry to personal_mentor $pementor = new PersonalMentor('add_new'); $pementor->user_id = $user->id; $pementor->max_hours = $persApp->max_hours; $pementor->max_mentees = $persApp->max_amount; $pementor->save(); } // else UPDATE $personalFlag = true; //$loaduser->isPerMentor = 1; } if ($mypicks != '') { $mypicks = explode(',', $mypicks); // cycle through each and add permanetly to appropriate table foreach ($mypicks as $pick) { $actualPick = $this->loadPersonalPick($pick); $this->updatePickStatus($actualPick, 'Approved'); // create new entry $mentee = new PersonalMentorMentees('add_new'); $mentee->user_id = $actualPick->user_id; // mentee id $mentee->personal_mentor_id = $user->id; // mentor id $mentee->save(); $trans = Yii::app()->db->beginTransaction(); $menter = Mentee::model()->findByPk($actualPick->user_id); if (is_null($menter)) { $menter = new Mentee('add_new'); $menter->user_id = $actualPick->user_id; } $menter->personal_mentor_user_id = $user->id; $menter->save(); $trans->commit(); } // PERSONAL PICKS REJECT $mypicks = $_POST['personal_picks_reject']; if ($mypicks != '') { $mypicks = explode(',', $mypicks); // cycle through each and add permanetly to appropriate table foreach ($mypicks as $pick) { $actualPick = $this->loadPersonalPick($pick); $this->updatePickStatus($actualPick, 'Rejected'); } $personalFlag = true; } // PROJECT PICKS ACCEPT $mypicks = $_POST['project_picks_accept']; if ($mypicks != '') { $mypicks = explode(',', $mypicks); // cycle through each and add permanetly to appropriate table foreach ($mypicks as $pick) { $actualPick = $this->loadProjectPick($pick); $this->updatePickStatus($actualPick, 'Approved'); // update entry $project = $this->loadProject($actualPick->project_id); $project->project_mentor_user_id = $user->id; $project->save(); } // add entry to project_mentor $projectEntry = $this->isNewEntry($user->id, 'project_mentor'); // if it already exists do NOTHING . change here with else statement to perform update if ($projectEntry < 1) { // add entry to project_mentor $promentor = new ProjectMentor('add_new'); $promentor->user_id = $user->id; $promentor->max_hours = $projApp->max_hours; $promentor->max_projects = $projApp->max_amount; $promentor->save(); } // else UPDATE $projectFlag = true; //$loaduser->isProMentor = 1; } // PROJECT PICKS REJECT $mypicks = $_POST['project_picks_reject']; if ($mypicks != '') { $mypicks = explode(',', $mypicks); foreach ($mypicks as $pick) { $actualPick = $this->loadProjectPick($pick); $this->updatePickStatus($actualPick, 'Rejected'); } $projectFlag = true; } // DOMAIN PICKS ACCEPT $mypicks = $_POST['domain_picks_accept']; if ($mypicks != '') { $mypicks = explode(',', $mypicks); // cycle through each and add permanetly to appropriate table foreach ($mypicks as $pick) { $actualPick = $this->loadDomainPick($pick); $this->updatePickStatus($actualPick, 'Approved'); // create new entry $domain = new UserDomain('add_new'); $domain->user_id = $user > id; $domain->domain_id = $actualPick->domain_id; $domain->rate = $actualPick->proficiency; $domain->active = 1; $domain->tier_team = 1; $domain->save(); } $domainFlag = true; //$loaduser->isDomMentor = 1; } // DOMAIN PICKS REJECT $mypicks = $_POST['domain_picks_reject']; if ($mypicks != '') { $mypicks = explode(',', $mypicks); // cycle through each and add permanetly to appropriate table foreach ($mypicks as $pick) { $actualPick = $this->loadDomainPick($pick); $this->updatePickStatus($actualPick, 'Rejected'); } $domainFlag = true; } // SUBDOMAIN PICKS ACCEPT $mypicks = $_POST['subdomain_picks_accept']; if ($mypicks != '') { $mypicks = explode(',', $mypicks); // cycle through each and add permanetly to appropriate table foreach ($mypicks as $pick) { $actualPick = $this->loadSubDomainPick($pick); $this->updatePickStatus($actualPick, 'Approved'); //create new entry $subdomain = new UserDomain('add_new'); $subdomain->user_id = $user->id; $subdomain->domain_id = $actualPick->subdomain->domain->id; $subdomain->subdomain_id = $actualPick->subdomain_id; $subdomain->rate = $actualPick->proficiency; $subdomain->active = 1; $subdomain->tier_team = 1; $subdomain->save(); } $domainFlag = true; //$loaduser->isDomMentor = 1; } // SUBDOMAIN PICKS REJECT $mypicks = $_POST['subdomain_picks_reject']; if ($mypicks != '') { $mypicks = explode(',', $mypicks); // cycle through each and add permanetly to appropriate table foreach ($mypicks as $pick) { $actualPick = $this->loadSubDomainPick($pick); $this->updatePickStatus($actualPick, 'Rejected'); } $domainFlag = true; } $closed = new ApplicationClosed(); $closedOne = false; if ($domainFlag) { // add entry to domain_mentor $domEntry = $this->isNewEntry($user->id, 'domain_mentor'); $user->isDomMentor = 1; // add entry to domain_mentor // if it already exists do NOTHING . change here with else statement to perform update if ($domEntry < 1) { $dmentor = new DomainMentor('add_new'); $dmentor->user_id = $user->id; $dmentor->max_tickets = $domApp->max_amount; $dmentor->save(); } // else UPDATE $this->updateAppStatus($domApp, 'Closed'); $closed->app_domain_mentor_id = $domApp->id; $closedOne = true; } if ($personalFlag) { $user->isPerMentor = 1; $this->updateAppStatus($persApp, 'Closed'); $closed->app_personal_mentor_id = $persApp->id; $closedOne = true; } if ($projectFlag) { $user->isProMentor = 1; $this->updateAppStatus($projApp, 'Closed'); $closed->app_project_mentor_id = $projApp->id; $closedOne = true; } $user->save(); if ($closedOne) { $closed->user_id = $user->id; $closed->date = new CDbExpression('NOW()'); $closed->save(); } $this->redirect("/coplat/index.php/application/portal"); } // on initial load // application personal mentor // load application sent by admin $personalMentor = $this->loadPersonalMentorForApproval($user->id); $personalMentorHistory = null; $personalMentorChanges = null; $personalCount = 0; if ($personalMentor != null) { $personalMentorHistory = new CSqlDataProvider('SELECT t.id, t.app_id, t.user_id, t.approval_status, u.fname, u.lname FROM application_personal_mentor_pick t, user u WHERE t.user_id = u.id AND (t.approval_status = "Approved" OR t.approval_status = "Rejected") AND t.app_id = ' . $personalMentor->id . ''); $personalMentorChanges = new CSqlDataProvider('SELECT t.id, t.app_id, t.user_id, t.approval_status, u.fname, u.lname FROM application_personal_mentor_pick t, user u WHERE t.user_id = u.id AND (t.approval_status = "Proposed by Admin") AND t.app_id = ' . $personalMentor->id . ''); $personalCount = Yii::app()->db->createCommand()->select('count(*)')->from('application_personal_mentor_pick')->where('app_id =:id', array(':id' => $personalMentor->id))->andWhere('approval_status = "Proposed by Admin"')->queryScalar(); } // application project mentor $projectMentor = $this->loadProjectMentorForApproval($user->id); $projectMentorHistory = null; $projectMentorChanges = null; $projectCount = 0; if ($projectMentor != null) { $projectMentorHistory = new CSqlDataProvider('SELECT t.id, t.app_id, t.project_id, t.approval_status, p.title FROM application_project_mentor_pick t, project p WHERE t.project_id = p.id AND (t.approval_status = "Approved" OR t.approval_status = "Rejected") AND t.app_id = ' . $projectMentor->id . ''); $projectMentorChanges = new CSqlDataProvider('SELECT t.id, t.app_id, t.project_id, t.approval_status, p.title FROM application_project_mentor_pick t, project p WHERE t.project_id = p.id AND (t.approval_status = "Proposed by Admin") AND t.app_id = ' . $projectMentor->id . ''); $projectCount = Yii::app()->db->createCommand()->select('count(*)')->from('application_project_mentor_pick')->where('app_id =:id', array(':id' => $projectMentor->id))->andWhere('approval_status = "Proposed by Admin"')->queryScalar(); } // application domain mentor $domainMentor = $this->loadDomainMentorForApproval($user->id); $domainHistory = null; $domainChanges = null; $domainCount = 0; $subdomainHistory = null; $subdomainChanges = null; $subdomainCount = 0; if ($domainMentor != null) { $domainHistory = new CSqlDataProvider('SELECT t.id, t.app_id, t.domain_id, t.proficiency, t.approval_status, d.name FROM application_domain_mentor_pick t, domain d WHERE (t.approval_status = "Approved" OR t.approval_status = "Rejected") AND t.domain_id = d.id AND t.app_id = ' . $domainMentor->id . ''); $domainChanges = new CSqlDataProvider('SELECT t.id, t.app_id, t.domain_id, t.proficiency, t.approval_status, d.name FROM application_domain_mentor_pick t, domain d WHERE (t.approval_status = "Proposed by Admin") AND t.domain_id = d.id AND t.app_id= ' . $domainMentor->id . ''); $domainCount = Yii::app()->db->createCommand()->select('count(*)')->from('application_domain_mentor_pick')->where('app_id =:id', array(':id' => $domainMentor->id))->andWhere('approval_status = "Proposed by Admin"')->queryScalar(); $subdomainHistory = new CSqlDataProvider('SELECT t.id, t.app_id, t.subdomain_id, t.proficiency, t.approval_status, d.name as "dname", s.name as "sname" FROM application_subdomain_mentor_pick t, subdomain s, domain d WHERE (t.approval_status = "Approved" OR t.approval_status = "Rejected") AND s.domain_id = d.id AND s.id = t.subdomain_id AND t.app_id = ' . $domainMentor->id . ''); $subdomainChanges = new CSqlDataProvider('SELECT t.id, t.app_id, t.subdomain_id, t.proficiency, t.approval_status, d.name as "dname", s.name as "sname" FROM application_subdomain_mentor_pick t, subdomain s, domain d WHERE (t.approval_status = "Proposed by Admin") AND s.domain_id = d.id AND s.id = t.subdomain_id AND t.app_id = ' . $domainMentor->id . ''); $subdomainCount = Yii::app()->db->createCommand()->select('count(*)')->from('application_subdomain_mentor_pick')->where('app_id =:id', array(':id' => $domainMentor->id))->andWhere('approval_status = "Proposed by Admin"')->queryScalar(); } $userInfo = $this->loadUserInfoByUser($user->id); $newCount = $personalCount + $projectCount + $domainCount + $subdomainCount; // render view $this->render('approve', array('user_id' => $user->id, 'personalMentor' => $personalMentor, 'personalMentorHistory' => $personalMentorHistory, 'personalMentorChanges' => $personalMentorChanges, 'projectMentor' => $projectMentor, 'projectMentorHistory' => $projectMentorHistory, 'projectMentorChanges' => $projectMentorChanges, 'domainMentor' => $domainMentor, 'domainHistory' => $domainHistory, 'domainChanges' => $domainChanges, 'subdomainHistory' => $subdomainHistory, 'subdomainChanges' => $subdomainChanges, 'newCount' => $newCount, 'perModel' => $perModel, 'proModel' => $proModel, 'domModel' => $domModel, 'subModel' => $subModel, 'userInfo' => $userInfo)); }
public function actionAdmin_Create_User() { $model = new User(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); $error = ''; if (isset($_POST['User'])) { /*if ($this->actionVerifyRegistrationOld() != "") { $this->render('create', array('model'=>$model)); }*/ $model->attributes = $_POST['User']; $model->pic_url = '/coplat/images/profileimages/default_pic.jpg'; $model->biography = "Tell us something about yourself..."; $model->activation_chain = $this->genRandomString(10); $model->activated = 1; $error = $this->verifyRegistrationOld(); if (!$model->isProMentor && !$model->isDomMentor && !$model->isPerMentor && !$model->isMentee) { $error = "Please select at least one user role."; } if ($error == null) { $model->save(false); if ($model->isProMentor) { $proMentor = new ProjectMentor(); $proMentor->user_id = $model->id; $proMentor->max_hours = 0; $proMentor->max_projects = 0; $proMentor->save(false); } if ($model->isDomMentor) { $domMentor = new DomainMentor(); $domMentor->user_id = $model->id; $domMentor->max_tickets = 0; $domMentor->save(); } if ($model->isPerMentor) { $perMentor = new PersonalMentor(); $perMentor->user_id = $model->id; $perMentor->max_hours = 0; $perMentor->max_mentees = 0; $perMentor->save(); } if ($model->isMentee()) { $mentee = new Mentee(); $mentee->user_id = $model->id; $mentee->personal_mentor_user_id = null; $mentee->project_id = null; $mentee->save(); } } } if (isset($_POST['Roles'])) { $proMentor = ProjectMentor::model()->getProMentor($_COOKIE['UserID']); $perMentor = PersonalMentor::model()->getPerMentor($_COOKIE['UserID']); $domMentor = DomainMentor::model()->getDomMentor($_COOKIE['UserID']); $mentee = Mentee::model()->getMentee($_COOKIE['UserID']); //$model->save(false); $user = User::model()->findByPk($_COOKIE['UserID']); if ($user->isProMentor == 1) { //$proMentor = new ProjectMentor; $proMentor->user_id = $user->id; $proMentor->max_hours = $_POST['pjmhours']; $all = Project::model()->findAll(); $proMentor->save(); $count = 0; foreach ($all as $each) { if (isset($_POST[$each->id . 'pjm'])) { $p = Project::model()->findByPk($each->id); $p->project_mentor_user_id = $_COOKIE['UserID']; $p->save(false); $count++; } } $proMentor->max_projects = $count; $proMentor->save(); } if ($user->isDomMentor == 1) { //UserDomain::model()->deleteAll("user_id = ".$user->id); $domMentor->max_tickets = $_POST['dmmaxtickets']; $domMentor->save(); $all = Domain::model()->findAll(); foreach ($all as $each) { if (isset($_POST[$each->id])) { $user_domain = new UserDomain(); $user_domain->user_id = $domMentor->user_id; $user_domain->domain_id = $each->id; $user_domain->active = 1; $user_domain->save(false); $allsubs = Subdomain::model()->findAllBySql("select * from subdomain where domain_id = {$each->id}"); if ($allsubs != null) { foreach ($allsubs as $onesub) { $temp = $onesub->id . 'ddmsub'; if (isset($_POST[$temp])) { $user_domain = new UserDomain(); $user_domain->user_id = $domMentor->user_id; $user_domain->domain_id = $each->id; $user_domain->active = 1; $rate = $each->id . '-' . $onesub->id . 'dmrate'; $tier = $each->id . '-' . $onesub->id . 'dmtier'; $user_domain->rate = $_POST[$rate]; $user_domain->tier_team = $_POST[$tier]; $user_domain->subdomain_id = $onesub->id; $user_domain->save(false); } } } else { $user_domain = new UserDomain(); $user_domain->user_id = $domMentor->user_id; $user_domain->domain_id = $each->id; $user_domain->active = 1; $user_domain->save(false); } } } } if ($user->isPerMentor) { //$perMentor = new PersonalMentor(); $perMentor->user_id = $user->id; $perMentor->max_hours = $_POST['pmhours']; $all = Mentee::model()->findAll(); $perMentor->save(); $count = 0; foreach ($all as $each) { if (isset($_POST[$each->user_id . 'pm'])) { $p = Mentee::model()->findByPk($each->user_id); $p->personal_mentor_user_id = $_COOKIE['UserID']; $p->save(false); $count++; } } $perMentor->max_mentees = $count; $perMentor->save(); } if ($user->isMentee) { $changed = false; $menteePersonalMentor = $_POST['mentePersonalMentor']; if (isset($menteePersonalMentor) && $menteePersonalMentor > 0) { $mentee->personal_mentor_user_id = $menteePersonalMentor; $changed = true; } $menteeProject = $_POST['menteeProject']; if (isset($menteeProject) && $menteeProject > 0) { $mentee->project_id = $menteeProject; $changed = true; } if ($changed) { $mentee->save(); } } $hasher = new PasswordHash(8, false); $pw = $this->genRandomString(8); $user->password = $hasher->HashPassword($pw); $user->save(false); $userfullName = $user->fname . ' ' . $user->lname; $adminName = User::getCurrentUser(); User::sendConfirmationEmail($userfullName, $user->email, $user->username, $pw, $adminName->fname . ' ' . $adminName->lname); } //$error = ''; $this->render('admin_create_user', array('model' => $model, 'error' => $error)); return; //$this->render('add',array('model'=>$model, 'error' => $error)); }
public function actionuserProfile() { $model = User::getCurrentUser(); $promentor = ProjectMentor::getCurrentUser(); $permentor = PersonalMentor::getCurrentUser(); $dommentor = DomainMentor::getCurrentUser(); if (isset($_POST['submit'])) { $model->biography = $_POST['biography']; $uploadedFile = CUploadedFile::getInstance($model, 'pic_url'); /*Attach file */ $fileName = "{$uploadedFile}"; if ($fileName != null) { /*Save file uploaded in the Uploads folder */ $model->pic_url = '/coplat/images/profileimages/' . $fileName; $uploadedFile->saveAs(Yii::getPathOfAlias('webroot') . '/images/profileimages/' . $fileName); } $model->save(false); if ($model->isProMentor == 1) { echo $_POST['proHours']; $promentor->max_hours = $_POST['proHours']; //$promentor->max_projects = $_POST['numProjects']; $promentor->save(); if (isset($_POST['proj'])) { $projs = $_POST['proj']; if (empty($projs)) { echo " No projects selected "; } else { $pro = $_POST['proj']; $curr = Project::model()->findallbysql("SELECT * FROM project WHERE project_mentor_user_id={$model->id}"); for ($i = 0; $i < $promentor->max_projects - count($curr); $i++) { $p = Project::model()->findBySql("SELECT * FROM project WHERE title='{$pro[$i]}'"); $p->project_mentor_user_id = $model->id; $p->save(); } } } } if ($model->isPerMentor == 1) { $permentor->max_hours = $_POST['pmenHours']; // $permentor->max_mentees = $_POST['numMentees']; $permentor->save(); if (isset($_POST['mentees'])) { $men = $_POST['mentees']; $curr = Mentee::model()->findallbysql("SELECT * FROM mentee WHERE personal_mentor_user_id={$model->id}"); for ($i = 0; $i < $permentor->max_mentees - count($curr); $i++) { $m = Mentee::model()->findBySql("SELECT * FROM mentee WHERE user_id={$men[$i]}"); $m->personal_mentor_user_id = $model->id; $m->save(); } } } if ($model->isDomMentor == 1) { $dommentor->max_tickets = $_POST['numTickets']; $dommentor->save(); if (isset($_POST['domainName'])) { $d = new Domain(); $d->name = $_POST['domainName']; if (Domain::model()->domainExists($d->name)) { //do nothing } else { $d = new Domain(); $ud = new UserDomain(); $d->name = $_POST['domainName']; $d->save(); $ud->domain_id = $d->id; $ud->user_id = $model->id; $ud->rate = $_POST['ratings']; $ud->save(); } } if (isset($_POST['existDoms'])) { $doms = $_POST['existDoms']; for ($i = 0; $i < count($doms); $i++) { $d = Domain::model()->findBySql("SELECT id FROM domain WHERE name='{$doms[$i]}'"); $ud = new UserDomain(); $ud->domain_id = $d->id; $ud->user_id = $model->id; $ud->rate = $_POST['ratings']; $ud->save(); } } if (isset($_POST['unrated'])) { $ud = UserDomain::model()->findAllBySql("SELECT * FROM user_domain WHERE rate IS NULL AND user_id={$model->id} "); $ur = $_POST['unrated']; for ($i = 0; $i < count($ur); $i++) { $ud[$i]->rate = $ur[$i]; $ud[$i]->save(); } } } } /** @var User $username */ $username = Yii::app()->user->name; $user = User::model()->find("username=:username", array(':username' => $username)); $projects = Project::model()->findAllBySql("SELECT title FROM project WHERE project_mentor_user_id={$user->id}"); $userdoms = UserDomain::model()->findAllBySql("SELECT distinct domain_id FROM user_domain WHERE user_id={$user->id}"); $Mentees = Mentee::model()->findAllBySql("SELECT user_id FROM mentee WHERE personal_mentor_user_id={$user->id}"); $Tickets = Ticket::model()->findAllBySql("SELECT * FROM ticket WHERE assign_user_id=:id", array(":id" => $user->id)); $this->render('userProfile', array('Tickets' => $Tickets, 'user' => $user, 'userdoms' => $userdoms, 'Mentees' => $Mentees, 'projects' => $projects)); }
public static function getDomMentor($id) { $dommentor = DomainMentor::model()->findBySql("SELECT * FROM domain_mentor WHERE user_id={$id}"); return $dommentor; }