/** * Fill the response with the default class IDs (if they don't exist already) * so that app versions with hardcoded defaults don't crash * * @param array $response The response */ private function fillDefault(array &$response) { $classes = $this->getDoctrine()->getRepository('AppBundle:SchoolClass')->createQueryBuilder('c')->select('c.id')->where('c.id in (:ids)')->setParameter('ids', static::$defaultClasses)->getQuery()->getResult(); $missing = array_diff(static::$defaultClasses, array_map('current', $classes)); if (empty($missing)) { return; } $orientation = new Orientation(); $separation = new Separation(); $orientation->setName('')->setFullName('')->setColour(''); $separation->setName('')->setFullName('')->setColour(''); $separation->addOrientation($orientation); $orientation->setSeparation($separation); $this->setId($separation); $this->setId($orientation); foreach ($missing as $id) { $class = new SchoolClass(); $this->setId($class, $id); $class->setName(''); $class->setOrientation($orientation); $class->setDefault(false); $orientation->addClass($class); } $response['grades'][] = ['id' => 2, 'name' => '', 'separations' => [$separation]]; }
public function isSelected(SchoolClass $class, Separation $separation = null) { if (!array_key_exists($separation->getId(), $this->classes)) { return false; } elseif ($separation) { return $this->classes[$separation->getId()] == $class->getId(); } else { return in_array($class->getId(), $this->classes); } }