diff --git a/webapp/src/Form/Type/JuryClarificationType.php b/webapp/src/Form/Type/JuryClarificationType.php index a379c8ed5f..70b8a69689 100644 --- a/webapp/src/Form/Type/JuryClarificationType.php +++ b/webapp/src/Form/Type/JuryClarificationType.php @@ -44,7 +44,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void $recipientOptions[$this->getTeamLabel($limitToTeam)] = $limitToTeam->getTeamid(); } else { /** @var Team|null $limitToTeam */ - $teams = $this->em->getRepository(Team::class)->findAll(); + $teams = $this->dj->getTeamsForContest($this->dj->getCurrentContest()); foreach ($teams as $team) { $recipientOptions[$this->getTeamLabel($team)] = $team->getTeamid(); } diff --git a/webapp/src/Service/DOMJudgeService.php b/webapp/src/Service/DOMJudgeService.php index 74f699ffba..befafb631d 100644 --- a/webapp/src/Service/DOMJudgeService.php +++ b/webapp/src/Service/DOMJudgeService.php @@ -1699,4 +1699,20 @@ public function getAllowedLanguagesForContest(?Contest $contest) : array { ->getQuery() ->getResult(); } + + /** @return Team[] */ + public function getTeamsForContest(?Contest $contest) : array { + if ($contest && !$contest->isOpenToAllTeams()) { + $contestTeams = $contest->getTeams()->toArray(); + foreach ($contest->getTeamCategories() as $category) { + $contestTeams = array_merge($contestTeams, $category->getTeams()->toArray()); + } + return $contestTeams; + } + return $this->em->createQueryBuilder() + ->select('l') + ->from(Team::class, 'l') + ->getQuery() + ->getResult(); + } }