diff --git a/packages/sonata-integration-bundle/EntityMigrator/Admin/BaseEntityMigrationAdmin.php b/packages/sonata-integration-bundle/EntityMigrator/Admin/BaseEntityMigrationAdmin.php index 0ff5b861b..eb32cfa12 100644 --- a/packages/sonata-integration-bundle/EntityMigrator/Admin/BaseEntityMigrationAdmin.php +++ b/packages/sonata-integration-bundle/EntityMigrator/Admin/BaseEntityMigrationAdmin.php @@ -2,10 +2,16 @@ namespace Draw\Bundle\SonataIntegrationBundle\EntityMigrator\Admin; +use Draw\Component\EntityMigrator\Entity\BaseEntityMigration; use Sonata\AdminBundle\Admin\AbstractAdmin; +use Sonata\AdminBundle\Datagrid\DatagridMapper; use Sonata\AdminBundle\Datagrid\ListMapper; +use Sonata\AdminBundle\Form\Type\ModelAutocompleteType; use Sonata\AdminBundle\Route\RouteCollectionInterface; use Sonata\AdminBundle\Show\ShowMapper; +use Sonata\DoctrineORMAdminBundle\Filter\ChoiceFilter; +use Sonata\DoctrineORMAdminBundle\Filter\ModelFilter; +use Symfony\Component\Form\Extension\Core\Type\ChoiceType; abstract class BaseEntityMigrationAdmin extends AbstractAdmin { @@ -16,6 +22,38 @@ abstract class BaseEntityMigrationAdmin extends AbstractAdmin 'icon' => 'fas fa-cogs', ]; + protected function configureDatagridFilters(DatagridMapper $filter): void + { + $filter + ->add('id') + ->add( + 'migration', + ModelFilter::class, + [ + 'field_type' => ModelAutocompleteType::class, + 'field_options' => [ + 'property' => 'name', + ], + 'show_filter' => true, + ] + ) + ->add( + 'state', + ChoiceFilter::class, + [ + 'field_type' => ChoiceType::class, + 'field_options' => [ + 'multiple' => true, + 'choices' => array_combine( + BaseEntityMigration::STATES, + BaseEntityMigration::STATES + ), + ], + 'show_filter' => true, + ] + ); + } + protected function configureListFields(ListMapper $list): void { $list @@ -44,6 +82,6 @@ protected function configureShowFields(ShowMapper $show): void protected function configureRoutes(RouteCollectionInterface $collection): void { $collection - ->clearExcept('list'); + ->clearExcept(['list', 'show']); } }