getCollectifDataContainer()->getRepositoryQuery(); } public function configureFields(string $pageName): iterable { $fields = array(); $fields[] = TextField::new('name'); $fields[] = AssociationField::new('territory') ->setTemplatePath('crud/field/association.html.twig'); $fields[] = IntegerField::new('nbParticipant'); $fields[] = TextField::new('nbDream') ->onlyOnIndex(); $fields[] = TextField::new('nbRevolt') ->onlyOnIndex(); $fields[] = TextField::new('nbProjectBoost') ->onlyOnIndex(); $fields[] = TextField::new('nbProjectInspiring') ->onlyOnIndex(); $fields[] = CollectionField::new('revolt') ->setFormTypeOption('entry_type', RevoltType::class) ->setFormTypeOption('by_reference', false) ->setRequired(false) ->hideOnIndex(); $fields[] = CollectionField::new('dream') ->setFormTypeOption('entry_type', DreamType::class) ->setFormTypeOption('by_reference', false) ->setRequired(false) ->hideOnIndex(); $fields[] = CollectionField::new('projectBoost') ->setFormTypeOption('entry_type', ProjectBoostType::class) ->setFormTypeOption('by_reference', false) ->setRequired(false) ->hideOnIndex(); $fields[] = CollectionField::new('projectinspiring') ->setFormTypeOption('entry_type', ProjectInspiringType::class) ->setFormTypeOption('by_reference', false) ->setRequired(false) ->hideOnIndex(); $hasAccess = $this->isGranted('ROLE_ADMIN'); if ($hasAccess) { $fields[] = StatusField::new('status') ->setFormTypeOption('choices', ['Validé' => 1, 'En attente' => 0]) ->setCustomOption('toggle_label', 'Valider') ->hideOnIndex(); } else { $fields[] = HiddenField::new('status') ->setFormTypeOption('data', 0) ->hideOnIndex(); } return $fields; } public function createIndexQueryBuilder( SearchDto $searchDto, EntityDto $entityDto, FieldCollection $fields, FilterCollection $filters ): QueryBuilder { $queryBuilder = parent::createIndexQueryBuilder( $searchDto, $entityDto, $fields, $filters ); $queryBuilder->andWhere('entity.status = ' . $searchDto->getRequest()->get('status')); return $queryBuilder; } public function persistEntity(EntityManagerInterface $entityManager, $entityInstance): void { $entityInstance->setUser($this->getUser()); $entityManager->persist($entityInstance); $entityManager->flush(); parent::persistEntity($entityManager, $entityInstance); } }