IdField::new('id') ->setSortable(true) ->hideOnForm(), 'createdAt' => DateTimeField::new('createdAt') ->setSortable(true) ->hideOnForm(), 'visitorFirstname' => TextField::new('visitorFirstname') ->setTemplatePath('@LcSov/admin/ticket/field/firstname.html.twig') ->setCustomOption('filter_fqcn', TicketFirstnameFilter::class) ->setSortable(true) ->hideOnForm(), 'visitorLastname' => TextField::new('visitorLastname') ->setTemplatePath('@LcSov/admin/ticket/field/lastname.html.twig') ->setCustomOption('filter_fqcn', TicketLastnameFilter::class) ->setSortable(true) ->hideOnForm(), 'visitorEmail' => TextField::new('visitorEmail') ->setTemplatePath('@LcSov/admin/ticket/field/email.html.twig') ->setCustomOption('filter_fqcn', TicketEmailFilter::class) ->setSortable(true) ->hideOnForm(), 'user' => AssociationField::new('user') ->hideOnIndex(), 'subject' => TextField::new('subject') ->setSortable(true), 'updatedAt' => DateTimeField::new('updatedAt') ->setTemplatePath('@LcSov/admin/ticket/field/lastmessage.html.twig') ->setSortable(true) ->hideOnForm(), 'type' => ChoiceField::new('type') ->autocomplete() ->setSortable(true) ->setChoices( $this->translatorAdmin->transChoices( TicketSolver::getTypeChoices(), 'Ticket', 'type' ) ), 'status' => ChoiceField::new('status') ->autocomplete() ->setSortable(true) ->setChoices( $this->translatorAdmin->transChoices( TicketSolver::getStatusChoices(), 'Ticket', 'status' ) ) ->setTemplatePath('@LcSov/admin/ticket/field/status.html.twig'), 'ticketMessages' => CollectionField::new('ticketMessages') ->setFormTypeOption('entry_type', TicketMessageAdminFormType::class) ->setFormTypeOption('allow_add', false) ->setFormTypeOption('allow_delete', false) ]; } }