addSelect('cal.urgent AS urgency_aggregator'); $qb->addGroupBy('urgency_aggregator'); } public function applyOn(): string { return Declarations::CALENDAR_TYPE; } public function buildForm(FormBuilderInterface $builder) { // no form } public function getFormDefaultData(): array { return []; } public function getLabels($key, array $values, $data): Closure { return function ($value): string { if ('_header' === $value) { return 'Urgency'; } return match ($value) { true => $this->translator->trans('is urgent'), false => $this->translator->trans('is not urgent'), default => throw new LogicException(sprintf('The value %s is not valid', $value)), }; }; } public function getQueryKeys($data): array { return ['urgency_aggregator']; } public function getTitle(): string { return 'Group calendars by urgency'; } }