/** * @param Objective $objective */ public function setObjective(Objective $objective) { $this->objective = $objective; $this->objectiveName = $objective->getName(); }
private function getObjectiveProgress(Objective $objective, User $user) { if (!isset($this->cachedObjectiveProgresses[$objective->getId()])) { $progress = $this->objectiveProgressRepo->findOneBy(['objective' => $objective, 'user' => $user]); if (!$progress) { $progress = new ObjectiveProgress(); $progress->setObjective($objective); $progress->setUser($user); $this->om->persist($progress); } else { $this->om->persist($progress->makeLog()); } $this->cachedObjectiveProgresses[$objective->getId()] = $progress; } return $this->cachedObjectiveProgresses[$objective->getId()]; }
protected function persistObjective($name, array $competenciesData) { $objective = new Objective(); $objective->setName($name); foreach ($competenciesData as $competencyData) { $link = new ObjectiveCompetency(); $link->setCompetency($competencyData[0]); $link->setFramework($competencyData[1]); $link->setLevel($competencyData[2]); $this->om->persist($link); $objective->addObjectiveCompetency($link); } $this->om->persist($objective); return $objective; }
private function doLoadObjectiveCompetencies(Objective $objective, $loadAbilities) { $links = $objective->getObjectiveCompetencies(); $competencies = []; foreach ($links as $link) { $competency = $this->competencyManager->loadCompetency($link->getCompetency(), $loadAbilities); $competency['originalId'] = $competency['id']; $competency['id'] = $link->getId(); // link is treated as the competency itself on client-side $competency['framework'] = $link->getFramework()->getName(); $competency['level'] = $link->getLevel()->getName(); $competency['levelValue'] = $link->getLevel()->getValue(); $competencies[] = $competency; } return $competencies; }