src/AdminBundle/Admin/SubAutoSite/DepartmentAdmin.php line 15

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Admin\SubAutoSite;
  3. use ImporterBundle\Model\DepartmentModel;
  4. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  5. use Sonata\AdminBundle\Datagrid\ListMapper;
  6. use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
  7. use Sonata\AdminBundle\Form\FormMapper;
  8. use Sonata\AdminBundle\Route\RouteCollection;
  9. use Sonata\AdminBundle\Route\RouteCollectionInterface;
  10. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  11. class DepartmentAdmin extends BaseImporterAdmin
  12. {
  13.     public function prePersist($object): void
  14.     {
  15.         $dealer $this->security->getUser()->getSubDealer();
  16.         $object->setDealer($dealer);
  17.     }
  18.     /**
  19.      * @param RouteCollectionInterface $collection
  20.      */
  21.     protected function configureRoutes(RouteCollectionInterface $collection): void
  22.     {
  23.         $collection->remove('view');
  24.     }
  25.     /**
  26.      * @param DatagridMapper $datagridMapper
  27.      */
  28.     protected function configureDatagridFilters(DatagridMapper $datagridMapper): void
  29.     {
  30.         $datagridMapper->add('id')
  31.             ->add('dealer'null, ['label' => 'Дилерский центр''admin_code' => 'admin.sub.contact'])
  32.         ;
  33.     }
  34.     /**
  35.      * @param string $context
  36.      * @return ProxyQueryInterface
  37.      */
  38.     public function configureQuery($context 'list'): ProxyQueryInterface
  39.     {
  40.         $user $this->security->getUser();
  41.         $dealer $user->getSubDealer();
  42.         $query parent::configureQuery($context);
  43.         $query->andWhere(
  44.             $query->expr()->eq($query->getRootAliases()[0] . '.dealer'':dealer')
  45.         );
  46.         $query->setParameter('dealer'$dealer);
  47.         return $query;
  48.     }
  49.     /**
  50.      * @param FormMapper $formMapper
  51.      */
  52.     protected function configureFormFields(FormMapper $formMapper): void
  53.     {
  54.         $formMapper
  55.             ->with(' ', ['class' => 'col-lg-6'])
  56.                 ->add('type'ChoiceType::class, ['label' => 'Тип отдела','choices' => array_flip(DepartmentModel::getDepartments())])
  57.                 ->add('title_ru'null, ['label' => 'Публичное название RU'])
  58.                 ->add('title_ua'null, ['label' => 'Публичное название UA'])
  59.                 ->add('email'null, ['label' => 'E-mail'])
  60.                 ->add('hidden_email'null, ['label' => 'Дополнительный E-mail'])
  61.                 ->add('phone'null, ['label' => 'Телефон'])
  62.                 ->add('phone_internal'null, ['label' => 'Телефон (внутренний)'])
  63.                 ->add('priority'null, ['label' => 'Приоритет'])
  64.             ->end()
  65.         ;
  66.     }
  67.     /**
  68.      * @param ListMapper $listMapper
  69.      */
  70.     protected function configureListFields(ListMapper $listMapper): void
  71.     {
  72.         $listMapper->addIdentifier('id')
  73.             ->add('type','choice', ['label' => 'Тип отдела''choices' => DepartmentModel::getDepartments()])
  74.             ->add('title_ru'null, ['label' => 'Название RU'])
  75.             ->add('title_ua'null, ['label' => 'Название UA'])
  76.             ->add('email'null, ['label' => 'E-mail'])
  77.             ->add('phone'null, ['label' => 'Телефон'])
  78.             ->add('priority'null, ['label' => 'Приоритет'])
  79.             ->add('_action''actions', [
  80.                 'label' => 'Действия',
  81.                 'actions' => [
  82.                     'edit' => [],
  83.                 ]
  84.             ])
  85.         ;
  86.     }
  87. }