diff --git a/lib/controller/AgendaController.php b/lib/controller/AgendaController.php index 58b0ad37e..4a45691e1 100644 --- a/lib/controller/AgendaController.php +++ b/lib/controller/AgendaController.php @@ -19,6 +19,7 @@ use CsrDelft\repository\groepen\ActiviteitenRepository; use CsrDelft\repository\maalcie\MaaltijdenRepository; use CsrDelft\repository\ProfielRepository; +use CsrDelft\service\AgendaService; use CsrDelft\view\agenda\AgendaItemForm; use CsrDelft\view\bbcode\BbToProsemirror; use CsrDelft\view\Icon; @@ -39,6 +40,10 @@ class AgendaController extends AbstractController { const SECONDEN_IN_JAAR = 31557600; + /** + * @var AgendaService + */ + private $agendaService; /** * @var AgendaRepository */ @@ -65,6 +70,7 @@ class AgendaController extends AbstractController private $profielRepository; public function __construct( + AgendaService $agendaService, AgendaRepository $agendaRepository, AgendaVerbergenRepository $agendaVerbergenRepository, ActiviteitenRepository $activiteitenRepository, @@ -72,6 +78,7 @@ public function __construct( MaaltijdenRepository $maaltijdenRepository, ProfielRepository $profielRepository ) { + $this->agendaService = $agendaService; $this->agendaRepository = $agendaRepository; $this->agendaVerbergenRepository = $agendaVerbergenRepository; $this->activiteitenRepository = $activiteitenRepository; @@ -122,7 +129,7 @@ public function ical(): Response return $this->render( 'agenda/icalendar.ical.twig', [ - 'items' => $this->agendaRepository->getICalendarItems(), + 'items' => $this->agendaService->getICalendarItems(), 'published' => $this->icalDate(), ], new IcalResponse() @@ -204,7 +211,7 @@ public function zoeken(Request $request, $zoekterm = null): JsonResponse */ public function courant(BbToProsemirror $bbToProsemirror) { - $items = $this->agendaRepository->getAllAgendeerbaar( + $items = $this->agendaService->getAllAgendeerbaar( date_create_immutable(), date_create_immutable('next saturday + 2 weeks'), false, @@ -360,7 +367,7 @@ public function verbergen($refuuid = null): JsonResponse if (!$item) { throw $this->createAccessDeniedException(); } - $this->agendaVerbergenRepository->toggleVerbergen($item); + $this->agendaVerbergenRepository->toggleVerbergen($this->getUid(), $item); return new JsonResponse(true); } @@ -421,7 +428,7 @@ public function feed(Request $request): JsonResponse ); } - $events = $this->agendaRepository->getAllAgendeerbaar( + $events = $this->agendaService->getAllAgendeerbaar( $startMoment, $eindMoment ); @@ -491,7 +498,7 @@ public function details($uuid): Response return $this->render('agenda/details.html.twig', [ 'item' => $item, - 'verborgen' => $this->agendaVerbergenRepository->isVerborgen($item), + 'verborgen' => $this->agendaVerbergenRepository->isVerborgen($this->getUid(), $item), ]); } diff --git a/lib/controller/VoorpaginaController.php b/lib/controller/VoorpaginaController.php index db6447dc4..b50dcc9c4 100644 --- a/lib/controller/VoorpaginaController.php +++ b/lib/controller/VoorpaginaController.php @@ -10,6 +10,7 @@ use CsrDelft\repository\instellingen\LidInstellingenRepository; use CsrDelft\repository\maalcie\MaaltijdenRepository; use CsrDelft\repository\WoordVanDeDagRepository; +use CsrDelft\service\AgendaService; use CsrDelft\service\forum\ForumDelenService; use CsrDelft\service\maalcie\MaaltijdenService; use CsrDelft\service\security\LoginService; @@ -41,16 +42,16 @@ public function forum( } /** - * @param AgendaRepository $agendaRepository + * @param AgendaService $agendaService * @return Response * @Route("/voorpagina/agenda") */ - public function agenda(AgendaRepository $agendaRepository): Response + public function agenda(AgendaService $agendaService): Response { // Agenda if (LoginService::mag(P_AGENDA_READ)) { $aantalWeken = InstellingUtil::lid_instelling('zijbalk', 'agendaweken'); - $items = $agendaRepository->getAllAgendeerbaar( + $items = $agendaService->getAllAgendeerbaar( date_create_immutable(), date_create_immutable('next saturday + ' . $aantalWeken . ' weeks'), false, @@ -171,13 +172,13 @@ public function civisaldo(): Response public function ishetal( LidInstellingenRepository $lidInstellingenRepository, RequestStack $requestStack, - AgendaRepository $agendaRepository, + AgendaService $agendaService, WoordVanDeDagRepository $woordVanDeDagRepository ): Response { $isHetAlView = new IsHetAlView( $lidInstellingenRepository, $requestStack, - $agendaRepository, + $agendaService, $woordVanDeDagRepository, InstellingUtil::lid_instelling('zijbalk', 'ishetal') ); diff --git a/lib/repository/agenda/AgendaRepository.php b/lib/repository/agenda/AgendaRepository.php index 7cf293c75..1c4169bb0 100644 --- a/lib/repository/agenda/AgendaRepository.php +++ b/lib/repository/agenda/AgendaRepository.php @@ -9,7 +9,6 @@ use CsrDelft\entity\agenda\AgendaVerbergen; use CsrDelft\entity\agenda\Agendeerbaar; use CsrDelft\entity\groepen\Activiteit; -use CsrDelft\entity\security\enum\AccessAction; use CsrDelft\entity\security\enum\AuthenticationMethod; use CsrDelft\repository\AbstractRepository; use CsrDelft\repository\corvee\CorveeTakenRepository; @@ -34,48 +33,18 @@ */ class AgendaRepository extends AbstractRepository { - /** - * @var AgendaVerbergenRepository - */ - private $agendaVerbergenRepository; - /** - * @var ActiviteitenRepository - */ - private $activiteitenRepository; - /** - * @var CorveeTakenRepository - */ - private $corveeTakenRepository; - /** - * @var VerjaardagenService - */ - private $verjaardagenService; /** * @var Security */ private $security; - /** - * @var MaaltijdenService - */ - private $maaltijdenService; public function __construct( ManagerRegistry $registry, Security $security, - AgendaVerbergenRepository $agendaVerbergenRepository, - ActiviteitenRepository $activiteitenRepository, - CorveeTakenRepository $corveeTakenRepository, - MaaltijdenService $maaltijdenService, - VerjaardagenService $verjaardagenService ) { parent::__construct($registry, AgendaItem::class); - $this->agendaVerbergenRepository = $agendaVerbergenRepository; - $this->activiteitenRepository = $activiteitenRepository; - $this->corveeTakenRepository = $corveeTakenRepository; - $this->verjaardagenService = $verjaardagenService; $this->security = $security; - $this->maaltijdenService = $maaltijdenService; } /** @@ -108,44 +77,6 @@ public function getAgendaItem($itemId) return $this->find($itemId); } - public function getICalendarItems() - { - return $this->filterVerborgen( - $this->getAllAgendeerbaar( - date_create_immutable( - InstellingUtil::instelling('agenda', 'ical_from') - ), - date_create_immutable(InstellingUtil::instelling('agenda', 'ical_to')), - true - ) - ); - } - - public function filterVerborgen(array $items) - { - // Items verbergen - $itemsByUUID = []; - foreach ($items as $index => $item) { - $itemsByUUID[$item->getUUID()] = $item; - unset($items[$index]); - } - if (!empty($itemsByUUID)) { - /** @var AgendaVerbergen[] $verborgen */ - $verborgen = $this->agendaVerbergenRepository - ->createQueryBuilder('av') - ->where('av.uid = :uid and av.refuuid in (:uuids)') - ->setParameter('uid', LoginService::getUid()) - ->setParameter('uuids', array_keys($itemsByUUID)) - ->getQuery() - ->getResult(); - - foreach ($verborgen as $verbergen) { - unset($itemsByUUID[$verbergen->refuuid]); - } - } - return $itemsByUUID; - } - /** * @param DateTimeImmutable $van * @param DateTimeImmutable $tot @@ -175,23 +106,11 @@ public function zoeken( } /** - * @param DateTimeImmutable $van - * @param DateTimeImmutable $tot - * @param bool $ical - * @param bool $zijbalk - * @return Agendeerbaar[] + * @return AgendaItem[] */ - public function getAllAgendeerbaar( - DateTimeImmutable $van, - DateTimeImmutable $tot, - $ical = false, - $zijbalk = false - ) { - $result = []; - - // AgendaItems - /** @var AgendaItem[] $items */ - $items = $this->createQueryBuilder('a') + public function getAgendaItems(DateTimeImmutable $van, DateTimeImmutable $tot) + { + return $this->createQueryBuilder('a') ->where( 'a.begin_moment >= :begin_moment and a.begin_moment < :eind_moment' ) @@ -206,114 +125,6 @@ public function getAllAgendeerbaar( ) ->getQuery() ->getResult(); - foreach ($items as $item) { - if ($item->magBekijken($ical)) { - $result[] = $item; - } - } - - $auth = $ical ? AuthenticationMethod::getEnumValues() : null; - - // Activiteiten - /** @var Activiteit[] $activiteiten */ - $activiteiten = $this->activiteitenRepository->getGroepenVoorAgenda( - $van, - $tot - ); - foreach ($activiteiten as $activiteit) { - if ( - $this->security->isGranted(AbstractGroepVoter::BEKIJKEN, $activiteit) - ) { - $result[] = $activiteit; - } - } - - // Maaltijden - if (InstellingUtil::lid_instelling('agenda', 'toonMaaltijden') === 'ja') { - // TODO: Dit moet altijd aanstaan - $result = array_merge( - $result, - $this->maaltijdenService->getMaaltijdenVoorAgenda( - $van->getTimestamp(), - $tot->getTimestamp() - ) - ); - } - - // CorveeTaken - if (InstellingUtil::lid_instelling('agenda', 'toonCorvee') === 'iedereen') { - $result = array_merge( - $result, - $this->corveeTakenRepository->getTakenVoorAgenda($van, $tot, true) - ); - } elseif ( - InstellingUtil::lid_instelling('agenda', 'toonCorvee') === 'eigen' - ) { - $result = array_merge( - $result, - $this->corveeTakenRepository->getTakenVoorAgenda($van, $tot, false) - ); - } - - // Verjaardagen - $toonVerjaardagen = $ical ? 'toonVerjaardagenICal' : 'toonVerjaardagen'; - if ( - !$zijbalk && - LoginService::mag(P_VERJAARDAGEN, $auth) && - InstellingUtil::lid_instelling('agenda', $toonVerjaardagen) === 'ja' - ) { - //Verjaardagen. Omdat Lid-objectjes eigenlijk niet Agendeerbaar, maar meer iets als - //PeriodiekAgendeerbaar zijn, maar we geen zin hebben om dat te implementeren, - //doen we hier even een vieze hack waardoor het wel soort van werkt. - $GLOBALS['agenda_van'] = $van; - $GLOBALS['agenda_tot'] = $tot; - - $result = array_merge( - $result, - $this->verjaardagenService->getTussen($van, $tot) - ); - } - - // Sorteren - usort($result, [AgendaRepository::class, 'vergelijkAgendeerbaars']); - - return $result; - } - - /** - * Zoek in de activiteiten (titel en beschrijving) van vandaag - * naar het woord $woord, geef de eerste terug. - * @param $woord string - * @return Agendeerbaar|null - */ - public function zoekWoordAgenda($woord) - { - return $this->zoekRegexAgenda('/' . preg_quote($woord, '/') . '/iu'); - } - - /** - * Vind de eerste activiteit van vandaag waarvan de - * titel of omschrijving wordt gematcht door $patroon. - * @param $patroon string - * @return Agendeerbaar|null - */ - public function zoekRegexAgenda($patroon) - { - $beginDag = date_create_immutable('today'); - foreach ($this->getItemsByDay($beginDag) as $item) { - if ( - preg_match($patroon, $item->getTitel()) || - preg_match($patroon, $item->getBeschrijving()) - ) { - return $item; - } - } - return null; - } - - public function getItemsByDay(DateTimeImmutable $dag) - { - return $this->getAllAgendeerbaar($dag, $dag); } public function nieuw($beginMoment, $eindMoment) diff --git a/lib/repository/agenda/AgendaVerbergenRepository.php b/lib/repository/agenda/AgendaVerbergenRepository.php index 3cc817dd8..d5975311c 100644 --- a/lib/repository/agenda/AgendaVerbergenRepository.php +++ b/lib/repository/agenda/AgendaVerbergenRepository.php @@ -5,7 +5,6 @@ use CsrDelft\entity\agenda\AgendaVerbergen; use CsrDelft\entity\agenda\Agendeerbaar; use CsrDelft\repository\AbstractRepository; -use CsrDelft\service\security\LoginService; use Doctrine\Persistence\ManagerRegistry; /** @@ -23,15 +22,15 @@ public function __construct(ManagerRegistry $registry) parent::__construct($registry, AgendaVerbergen::class); } - public function toggleVerbergen(Agendeerbaar $item) + public function toggleVerbergen($uid, Agendeerbaar $item) { $verborgen = $this->find([ - 'uid' => LoginService::getUid(), + 'uid' => $uid, 'refuuid' => $item->getUUID(), ]); if (!$verborgen) { $verborgen = new AgendaVerbergen(); - $verborgen->uid = LoginService::getUid(); + $verborgen->uid = $uid; $verborgen->refuuid = $item->getUUID(); $this->save($verborgen); } else { @@ -39,11 +38,24 @@ public function toggleVerbergen(Agendeerbaar $item) } } - public function isVerborgen(Agendeerbaar $item) + public function isVerborgen($uid, Agendeerbaar $item) { return $this->find([ - 'uid' => LoginService::getUid(), + 'uid' => $uid, 'refuuid' => $item->getUUID(), ]); } + + /** + * @return AgendaVerbergen[] + */ + public function getVerborgen($uid, $uuids) { + return $this + ->createQueryBuilder('av') + ->where('av.uid = :uid and av.refuuid in (:uuids)') + ->setParameter('uid', $uid) + ->setParameter('uuids', $uuids) + ->getQuery() + ->getResult(); + } } diff --git a/lib/service/AgendaService.php b/lib/service/AgendaService.php new file mode 100644 index 000000000..d947c7549 --- /dev/null +++ b/lib/service/AgendaService.php @@ -0,0 +1,225 @@ +agendaRepository = $agendaRepository; + $this->agendaVerbergenRepository = $agendaVerbergenRepository; + $this->activiteitenRepository = $activiteitenRepository; + $this->corveeTakenRepository = $corveeTakenRepository; + $this->verjaardagenService = $verjaardagenService; + $this->security = $security; + $this->maaltijdenService = $maaltijdenService; + } + + /** + * Zoek in de activiteiten (titel en beschrijving) van vandaag + * naar het woord $woord, geef de eerste terug. + * @param $woord string + * @return Agendeerbaar|null + */ + public function zoekWoordAgenda($woord) + { + return $this->zoekRegexAgenda('/' . preg_quote($woord, '/') . '/iu'); + } + + /** + * Vind de eerste activiteit van vandaag waarvan de + * titel of omschrijving wordt gematcht door $patroon. + * @param $patroon string + * @return Agendeerbaar|null + */ + public function zoekRegexAgenda($patroon) + { + $beginDag = date_create_immutable('today'); + foreach ($this->getItemsByDay($beginDag) as $item) { + if ( + preg_match($patroon, $item->getTitel()) || + preg_match($patroon, $item->getBeschrijving()) + ) { + return $item; + } + } + return null; + } + + + public function getItemsByDay(DateTimeImmutable $dag) + { + return $this->getAllAgendeerbaar($dag, $dag); + } + + /** + * @param DateTimeImmutable $van + * @param DateTimeImmutable $tot + * @param bool $ical + * @param bool $zijbalk + * @return Agendeerbaar[] + */ + public function getAllAgendeerbaar( + DateTimeImmutable $van, + DateTimeImmutable $tot, + $ical = false, + $zijbalk = false + ) { + $result = []; + + // AgendaItems + /** @var AgendaItem[] $items */ + $items = $this->agendaRepository->getAgendaItems($van, $tot); + foreach ($items as $item) { + if ($item->magBekijken($ical)) { + $result[] = $item; + } + } + + $auth = $ical ? AuthenticationMethod::getEnumValues() : null; + + // Activiteiten + /** @var Activiteit[] $activiteiten */ + $activiteiten = $this->activiteitenRepository->getGroepenVoorAgenda( + $van, + $tot + ); + foreach ($activiteiten as $activiteit) { + if ( + $this->security->isGranted(AbstractGroepVoter::BEKIJKEN, $activiteit) + ) { + $result[] = $activiteit; + } + } + + // Maaltijden + if (InstellingUtil::lid_instelling('agenda', 'toonMaaltijden') === 'ja') { + // TODO: Dit moet altijd aanstaan + $result = array_merge( + $result, + $this->maaltijdenService->getMaaltijdenVoorAgenda( + $van->getTimestamp(), + $tot->getTimestamp() + ) + ); + } + + // CorveeTaken + if (InstellingUtil::lid_instelling('agenda', 'toonCorvee') === 'iedereen') { + $result = array_merge( + $result, + $this->corveeTakenRepository->getTakenVoorAgenda($van, $tot, true) + ); + } elseif ( + InstellingUtil::lid_instelling('agenda', 'toonCorvee') === 'eigen' + ) { + $result = array_merge( + $result, + $this->corveeTakenRepository->getTakenVoorAgenda($van, $tot, false) + ); + } + + // Verjaardagen + $toonVerjaardagen = $ical ? 'toonVerjaardagenICal' : 'toonVerjaardagen'; + if ( + !$zijbalk && + LoginService::mag(P_VERJAARDAGEN, $auth) && + InstellingUtil::lid_instelling('agenda', $toonVerjaardagen) === 'ja' + ) { + //Verjaardagen. Omdat Lid-objectjes eigenlijk niet Agendeerbaar, maar meer iets als + //PeriodiekAgendeerbaar zijn, maar we geen zin hebben om dat te implementeren, + //doen we hier even een vieze hack waardoor het wel soort van werkt. + $GLOBALS['agenda_van'] = $van; + $GLOBALS['agenda_tot'] = $tot; + + $result = array_merge( + $result, + $this->verjaardagenService->getTussen($van, $tot) + ); + } + + // Sorteren + usort($result, [AgendaRepository::class, 'vergelijkAgendeerbaars']); + + return $result; + } + + public function getICalendarItems() + { + return $this->filterVerborgen( + $this->getAllAgendeerbaar( + date_create_immutable( + InstellingUtil::instelling('agenda', 'ical_from') + ), + date_create_immutable(InstellingUtil::instelling('agenda', 'ical_to')), + true + ) + ); + } + + public function filterVerborgen(array $items) + { + // Items verbergen + $itemsByUUID = []; + foreach ($items as $index => $item) { + $itemsByUUID[$item->getUUID()] = $item; + unset($items[$index]); + } + if (!empty($itemsByUUID)) { + $verborgen = $this->agendaVerbergenRepository->getVerborgen(LoginService::getUid(), array_keys($itemsByUUID)); + + foreach ($verborgen as $verbergen) { + unset($itemsByUUID[$verbergen->refuuid]); + } + } + return $itemsByUUID; + } +} \ No newline at end of file diff --git a/lib/view/IsHetAlView.php b/lib/view/IsHetAlView.php index e223a03fa..8ca21fdb6 100644 --- a/lib/view/IsHetAlView.php +++ b/lib/view/IsHetAlView.php @@ -6,6 +6,7 @@ use CsrDelft\repository\agenda\AgendaRepository; use CsrDelft\repository\instellingen\LidInstellingenRepository; use CsrDelft\repository\WoordVanDeDagRepository; +use CsrDelft\service\AgendaService; use CsrDelft\service\security\LoginService; use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Session\Session; @@ -42,7 +43,7 @@ class IsHetAlView implements View public function __construct( LidInstellingenRepository $lidInstellingenRepository, RequestStack $requestStack, - AgendaRepository $agendaRepository, + AgendaService $agendaService, WoordVanDeDagRepository $woordVanDeDagRepository, $ishetal ) { @@ -136,14 +137,14 @@ public function __construct( case 'kring': // Matcht 'kring 42', 'loremipsumkring', 'kringlezing', maar niet 'kringleidersinstructie'. - $vandaag = $agendaRepository->zoekRegexAgenda( + $vandaag = $agendaService->zoekRegexAgenda( '/kring(?: \d+|\b|lezing\b)/i' ); $this->ja = $vandaag instanceof AgendaItem; break; default: - $vandaag = $agendaRepository->zoekWoordAgenda($this->model); + $vandaag = $agendaService->zoekWoordAgenda($this->model); if ($vandaag instanceof AgendaItem) { $this->ja = true; /* diff --git a/lib/view/Zijbalk.php b/lib/view/Zijbalk.php index a4b4eaddd..9c2c5ba5f 100644 --- a/lib/view/Zijbalk.php +++ b/lib/view/Zijbalk.php @@ -12,6 +12,7 @@ use CsrDelft\repository\instellingen\LidInstellingenRepository; use CsrDelft\repository\MenuItemRepository; use CsrDelft\repository\WoordVanDeDagRepository; +use CsrDelft\service\AgendaService; use CsrDelft\service\forum\ForumDelenService; use CsrDelft\service\security\LoginService; use CsrDelft\service\VerjaardagenService; @@ -33,13 +34,9 @@ class Zijbalk */ private $menuItemRepository; /** - * @var ForumDradenRepository + * @var AgendaService */ - private $forumDradenRepository; - /** - * @var AgendaRepository - */ - private $agendaRepository; + private $agendaService; /** * @var ForumPostsRepository */ @@ -73,9 +70,8 @@ public function __construct( RequestStack $requestStack, Environment $twig, MenuItemRepository $menuItemRepository, - ForumDradenRepository $forumDradenRepository, ForumDelenService $forumDelenService, - AgendaRepository $agendaRepository, + AgendaService $agendaService, ForumPostsRepository $forumPostsRepository, FotoAlbumRepository $fotoAlbumRepository, VerjaardagenService $verjaardagenService, @@ -84,8 +80,7 @@ public function __construct( ) { $this->twig = $twig; $this->menuItemRepository = $menuItemRepository; - $this->forumDradenRepository = $forumDradenRepository; - $this->agendaRepository = $agendaRepository; + $this->agendaService = $agendaService; $this->forumPostsRepository = $forumPostsRepository; $this->fotoAlbumRepository = $fotoAlbumRepository; $this->verjaardagenService = $verjaardagenService; @@ -128,7 +123,7 @@ private function blockIsHetAl() return (new IsHetAlView( $this->lidInstellingenRepository, $this->requestStack, - $this->agendaRepository, + $this->agendaService, $this->woordVanDeDagRepository, InstellingUtil::lid_instelling('zijbalk', 'ishetal') ))->__toString(); @@ -177,7 +172,7 @@ private function blockAgenda() InstellingUtil::lid_instelling('zijbalk', 'agenda_max') > 0 ) { $aantalWeken = InstellingUtil::lid_instelling('zijbalk', 'agendaweken'); - $items = $this->agendaRepository->getAllAgendeerbaar( + $items = $this->agendaService->getAllAgendeerbaar( date_create_immutable(), date_create_immutable('next saturday + ' . $aantalWeken . ' weeks'), false, diff --git a/lib/view/bbcode/tag/BbIsHetAl.php b/lib/view/bbcode/tag/BbIsHetAl.php index c32120f91..9e1050d59 100644 --- a/lib/view/bbcode/tag/BbIsHetAl.php +++ b/lib/view/bbcode/tag/BbIsHetAl.php @@ -7,6 +7,7 @@ use CsrDelft\repository\agenda\AgendaRepository; use CsrDelft\repository\instellingen\LidInstellingenRepository; use CsrDelft\repository\WoordVanDeDagRepository; +use CsrDelft\service\AgendaService; use CsrDelft\view\IsHetAlView; use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\Security\Core\Security; @@ -18,9 +19,9 @@ class BbIsHetAl extends BbTag */ private $requestStack; /** - * @var AgendaRepository + * @var AgendaService */ - private $agendaRepository; + private $agendaService; /** * @var LidInstellingenRepository */ @@ -41,11 +42,11 @@ class BbIsHetAl extends BbTag public function __construct( RequestStack $requestStack, Security $security, - AgendaRepository $agendaRepository, + AgendaService $agendaService, LidInstellingenRepository $lidInstellingenRepository, WoordVanDeDagRepository $woordVanDeDagRepository ) { - $this->agendaRepository = $agendaRepository; + $this->agendaService = $agendaService; $this->lidInstellingenRepository = $lidInstellingenRepository; $this->woordVanDeDagRepository = $woordVanDeDagRepository; $this->requestStack = $requestStack; @@ -80,7 +81,7 @@ public function render() $html .= (new IsHetAlView( $this->lidInstellingenRepository, $this->requestStack, - $this->agendaRepository, + $this->agendaService, $this->woordVanDeDagRepository, $this->value ))->__toString();