diff --git a/src/Bundle/ChillPersonBundle/Menu/AccompanyingCourseMenuBuilder.php b/src/Bundle/ChillPersonBundle/Menu/AccompanyingCourseMenuBuilder.php index 1ac0f8008..744e5dbbe 100644 --- a/src/Bundle/ChillPersonBundle/Menu/AccompanyingCourseMenuBuilder.php +++ b/src/Bundle/ChillPersonBundle/Menu/AccompanyingCourseMenuBuilder.php @@ -67,13 +67,6 @@ class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface 'id' => $period->getId() ]]) ->setExtras(['order' => 40]); - - $menu->addChild($this->translator->trans('Tasks'), [ - 'route' => 'chill_task_singletask_list', - 'routeParameters' => [ - 'course_id' => $period->getId() - ]]) - ->setExtras(['order' => 50]); } diff --git a/src/Bundle/ChillTaskBundle/Menu/PersonMenuBuilder.php b/src/Bundle/ChillTaskBundle/Menu/PersonMenuBuilder.php index ee0afa497..8c45b0beb 100644 --- a/src/Bundle/ChillTaskBundle/Menu/PersonMenuBuilder.php +++ b/src/Bundle/ChillTaskBundle/Menu/PersonMenuBuilder.php @@ -53,28 +53,55 @@ class PersonMenuBuilder implements LocalMenuBuilderInterface public function buildMenu($menuId, MenuItem $menu, array $parameters) { - /* @var $person \Chill\PersonBundle\Entity\Person */ + switch($menuId) { + case 'person': + $this->buildPersonMenu($menu, $parameters); + break; + case 'accompanyingCourse': + $this->buildAccompanyingCourseMenu($menu, $parameters); + break; + case 'section': + $menu->setExtras('icons', 'tasks'); + break; + default: + throw new \LogicException("this menuid $menuId is not implemented"); + } + } + + public function buildPersonMenu($menu, $parameters){ + + //var $person \Chill\PersonBundle\Entity\Person */ $person = $parameters['person'] ?? null; if ($this->authorizationChecker->isGranted(TaskVoter::SHOW, $person)) { $menu->addChild( $this->translator->trans('Tasks'), [ 'route' => 'chill_task_singletask_list', - 'routeParameters' => $menuId === 'person' ? + 'routeParameters' => [ 'person_id' => $person->getId() ] - : - null, - ]) - ->setExtra('order', 400) - ; - if ($menuId === 'section') { - $menu->setExtra('icons', 'tasks'); - } + ]) + ->setExtra('order', 400); } } + public function buildAccompanyingCourseMenu($menu, $parameters){ + + //var $person \Chill\PersonBundle\Entity\Person */ + $course = $parameters['accompanyingCourse']; + + // if ($this->authorizationChecker->isGranted(TaskVoter::SHOW, $course)) { + $menu->addChild( + $this->translator->trans('Tasks'), [ + 'route' => 'chill_task_singletask_list', + 'routeParameters' => + [ 'course_id' => $course->getId() ] + ]) + ->setExtra('order', 400); + // } + } + public static function getMenuIds(): array { - return ['person']; + return ['person', 'accompanyingCourse']; } }