public static function retrievePagerByUser($user_id, $page = 1, $max = null) { if ($max == null) { $max = sfConfig::get('app_pager_project_max'); } sfContext::getInstance()->getLogger()->info('Begin project retrieval by user_id'); $c = new Criteria(); $positions = ProjectUserPeer::retrieveFilledByUserId($user_id); $projects = array(); foreach ($positions as $position) { $projects[] = $position->getProjectPosition()->getProjectId(); } if (count($projects) > 0) { $c->add(self::ID, $projects, Criteria::IN); } $crit0 = $c->getNewCriterion(self::CREATED_BY, $user_id); $crit1 = $c->getNewCriterion(self::OWNER_ID, $user_id); $crit0->addOr($crit1); $c->add($crit0); $pager = new sfPropelPager('Project', $max); $pager->setCriteria($c); $pager->setPage($page); $pager->init(); return $pager; }
public function getProjectUsersJoinsfGuardUser($criteria = null, $con = null) { include_once 'lib/model/om/BaseProjectUserPeer.php'; if ($criteria === null) { $criteria = new Criteria(); } elseif ($criteria instanceof Criteria) { $criteria = clone $criteria; } if ($this->collProjectUsers === null) { if ($this->isNew()) { $this->collProjectUsers = array(); } else { $criteria->add(ProjectUserPeer::POSITION_ID, $this->getId()); $this->collProjectUsers = ProjectUserPeer::doSelectJoinsfGuardUser($criteria, $con); } } else { $criteria->add(ProjectUserPeer::POSITION_ID, $this->getId()); if (!isset($this->lastProjectUserCriteria) || !$this->lastProjectUserCriteria->equals($criteria)) { $this->collProjectUsers = ProjectUserPeer::doSelectJoinsfGuardUser($criteria, $con); } } $this->lastProjectUserCriteria = $criteria; return $this->collProjectUsers; }
public function getApplicants() { return ProjectUserPeer::retrieveApplicantsByPositionId($this->getId()); }
public function clonePositionAcceptApplicant($position_uuid, $user_uuid) { // retrieve desired position $position_old = ProjectPositionPeer::retrieveByUuid($position_uuid); // clone position $position = $position_old->copy(); // clear uuid so it will regenerate a unique one, save $position->setUuid(NULL); $position->setFilled(true); $position->save(); // grab desired user $user = sfGuardUserProfilePeer::retrieveByUuid($user_uuid); // remove applicant from old position $positionUser = ProjectUserPeer::retrieveByPositionIdUserId($position_old->getId(), $user->getUserId()); if ($positionUser == null) { sfContext::getInstance()->getLogger()->info('Old PositionUser not found, unable to clone and accept applicant'); return false; } $positionUser->delete(); // build a new positionUser object $positionUser = new ProjectUser(); $positionUser->setPositionId($position->getId()); $positionUser->setUserId($user->getUserId()); $positionUser->setStatus(1); // Status(1): Accepted $positionUser->save(); if ($position == null || $user == null || $positionUser == null) { sfContext::getInstance()->getLogger()->info('Position, user, or PositionUser not found, unable to accept applicant'); return false; } // Assign user to members group $user = $user->getSfGuardUser(); $this->addUserToGroup($user, 'members'); return true; }
public static function retrieveByPKs($pks, $con = null) { if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(); $criteria->add(ProjectUserPeer::ID, $pks, Criteria::IN); $objs = ProjectUserPeer::doSelect($criteria, $con); } return $objs; }
public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) { $keys = ProjectUserPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setId($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setUuid($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setUserId($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setPositionId($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setTotalHours($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setPosition($arr[$keys[5]]); } if (array_key_exists($keys[6], $arr)) { $this->setStatus($arr[$keys[6]]); } if (array_key_exists($keys[7], $arr)) { $this->setIsApproved($arr[$keys[7]]); } if (array_key_exists($keys[8], $arr)) { $this->setUpdatedAt($arr[$keys[8]]); } if (array_key_exists($keys[9], $arr)) { $this->setDeletedAt($arr[$keys[9]]); } if (array_key_exists($keys[10], $arr)) { $this->setCreatedAt($arr[$keys[10]]); } }
public function getPositionsUser() { sfContext::getInstance()->getLogger()->info('Grabbing user positions...'); return ProjectUserPeer::retrieveFilledByUserId($this->getUserId()); }