src/Nolimit/CashOutType/Admin/CashOutTypeAdmin.php line 16

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Nolimit\CashOutType\Admin;
  4. use Sonata\AdminBundle\Admin\AbstractAdmin;
  5. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  6. use Sonata\AdminBundle\Datagrid\ListMapper;
  7. use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
  8. use Sonata\AdminBundle\Form\FormMapper;
  9. use Sonata\AdminBundle\Route\RouteCollectionInterface;
  10. use Sonata\AdminBundle\Show\ShowMapper;
  11. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  12. final class CashOutTypeAdmin extends AbstractAdmin
  13. {
  14.     protected function configureDatagridFilters(DatagridMapper $filter): void
  15.     {
  16.         $filter
  17.             ->add('name')
  18.         ;
  19.     }
  20.     protected function configureListFields(ListMapper $list): void
  21.     {
  22.         $list
  23.             ->add('name')
  24.             ->add('value')
  25.             ->add('fixed')
  26.             ->add('cash_out_deletable')
  27.             ->add(ListMapper::NAME_ACTIONSnull, [
  28.                 'actions' => [
  29.                     'show' => [],
  30.                     'edit' => [],
  31.                     'delete' => [],
  32.                     'delete_log' => [
  33.                         'template' => '/CRUD/logical_delete_with_condition.html.twig',
  34.                     ]
  35.                 ],
  36.             ]);
  37.     }
  38.     protected function configureFormFields(FormMapper $form): void
  39.     {
  40.         $form
  41.             ->add('name')
  42.             ->add('value')
  43.             ->add('fixed')
  44.             ->add('cash_out_deletable')
  45.             ->add('deleted',HiddenType::class, array('empty_data' => false))
  46.             ->add('deletable',HiddenType::class, array('empty_data' => true))
  47.         ;
  48.     }
  49.     protected function configureShowFields(ShowMapper $show): void
  50.     {
  51.         $show
  52.             ->add('name')
  53.             ->add('value')
  54.             ->add('fixed')
  55.             ->add('cash_out_deletable')
  56.         ;
  57.     }
  58.     protected function configureRoutes(RouteCollectionInterface $collection): void
  59.     {
  60.         $collection
  61.         ->remove('delete')
  62.         ->add('delete_log'$this->getRouterIdParameter().'/delete_log');
  63.     }
  64.     protected function configureQuery(ProxyQueryInterface $query): ProxyQueryInterface
  65.     {
  66.         $query parent::configureQuery($query);
  67.         $rootAlias current($query->getRootAliases());
  68.         $query->andWhere(
  69.             $query->expr()->eq($rootAlias '.deleted'':type')
  70.         );
  71.         $query->setParameter(':type''0');
  72.         return $query;
  73.     }
  74. }