src/AdminBundle/Admin/ModelRange/Pages/PagesAdmin.php line 19

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Admin\ModelRange\Pages;
  3. use AdminBundle\Admin\BaseAdmin;
  4. use CoreBundle\Entity\Vehicles\CharacteristicValue;
  5. use CoreBundle\Entity\Vehicles\RecommendGroup;
  6. use CoreBundle\Entity\Vehicles\Vehicle;
  7. use FOS\CKEditorBundle\Form\Type\CKEditorType;
  8. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  9. use Sonata\AdminBundle\Datagrid\ListMapper;
  10. use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
  11. use Sonata\AdminBundle\Form\FormMapper;
  12. use Sonata\AdminBundle\Route\RouteCollectionInterface;
  13. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  14. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  15. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  16. class PagesAdmin extends BaseAdmin
  17. {
  18.     protected $baseRouteName 'page';
  19.     protected $baseRoutePattern 'dcsite/model-range/pages';
  20.     /**
  21.      * @param RouteCollectionInterface $collection
  22.      */
  23.     protected function configureRoutes(RouteCollectionInterface $collection): void
  24.     {
  25.         $collection->remove('delete');
  26.         $collection->add('import');
  27.     }
  28.     /**
  29.      * @param array $buttonList
  30.      * @param string $action
  31.      * @param null $object
  32.      * @return array
  33.      */
  34.     public function configureActionButtons(array $buttonList$action$object null): array
  35.     {
  36.         $list parent::configureActionButtons($buttonList$action$object);
  37.         $list['import']['template'] = '@AdminBundle/admin/import_dashboard_button.html.twig';
  38.         return $list;
  39.     }
  40.     public function prePersist($object): void
  41.     {
  42.         $object->setDealer($this->getUserDealer());
  43.     }
  44.     public function preUpdate($object): void
  45.     {
  46.         $object->setDealer($this->getUserDealer());
  47.     }
  48.     public function configureQuery($context 'list'): ProxyQueryInterface
  49.     {
  50.         $query parent::configureQuery();
  51.         $query->andWhere($query->expr()->eq($query->getRootAliases()[0].'.dealer'':dealer'));
  52.         $query->setParameter('dealer'$this->getUserDealer()->getId());
  53.         return $query;
  54.     }
  55.     protected function configureDatagridFilters(DatagridMapper $datagridMapper): void
  56.     {
  57.         $datagridMapper->add('id');
  58.         $datagridMapper->add('label_ua');
  59.     }
  60.     protected function configureListFields(ListMapper $list): void
  61.     {
  62.         $list->addIdentifier('id')
  63.             ->add('label_ua'null, ['label' => 'Назва'])
  64.             ->add('url'null, ['label' => 'Посилання'])
  65.             ->add('active'null, ['label' => 'Активний'])
  66.             ->add('_action''actions', [
  67.                 'label' => 'Действия',
  68.                 'actions' => [
  69.                     'view' => [],
  70.                     'edit' => [],
  71.                     'delete' => [],
  72.                 ]
  73.             ]);
  74.     }
  75.     protected function configureFormFields(FormMapper $form): void
  76.     {
  77.         $vehicles $this->getEntityManager()->getRepository(Vehicle::class)
  78.             ->createQueryBuilder('v');
  79.         if ($this->getUserDealer()->getId() != 6) {
  80.             $vehicles->where('v.dealer = :dealer')->setParameter('dealer'$this->getUserDealer());
  81.         }
  82.         if ($this->getUserDealer()->getId() == 6) {
  83.             $vehicles->andWhere('v.is_used = 1');
  84.         } else {
  85.             $vehicles->andWhere('v.is_used = 0');
  86.         }
  87.         $vehicles->andWhere('v.is_delete = 0')
  88.             ->andWhere('v.state = 1');
  89.         $fuel $this->getModelManager()
  90.             ->getEntityManager(CharacteristicValue::class)
  91.             ->createQueryBuilder()
  92.             ->select('cv')
  93.             ->from(CharacteristicValue::class,'cv')
  94.             ->where('cv.characteristic = 2');
  95.         $kpp $this->getModelManager()
  96.             ->getEntityManager(CharacteristicValue::class)
  97.             ->createQueryBuilder()
  98.             ->select('cv')
  99.             ->from(CharacteristicValue::class, 'cv')
  100.             ->where('cv.characteristic = 4');
  101.         $seat $this->getModelManager()
  102.             ->getEntityManager(CharacteristicValue::class)
  103.             ->createQueryBuilder()
  104.             ->select('cv')
  105.             ->from(CharacteristicValue::class, 'cv')
  106.             ->where('cv.characteristic = 20');
  107.         $body $this->getModelManager()
  108.             ->getEntityManager(CharacteristicValue::class)
  109.             ->createQueryBuilder()
  110.             ->select('cv')
  111.             ->from(CharacteristicValue::class, 'cv')
  112.             ->where('cv.characteristic = 1');
  113.         $color $this->getModelManager()
  114.             ->getEntityManager(CharacteristicValue::class)
  115.             ->createQueryBuilder()
  116.             ->select('cv')
  117.             ->from(CharacteristicValue::class, 'cv')
  118.             ->where('cv.characteristic = 236');
  119.         $recommend $this->getModelManager()
  120.             ->getEntityManager(RecommendGroup::class)
  121.             ->createQueryBuilder()
  122.             ->select('r')
  123.             ->from(RecommendGroup::class, 'r')
  124.             ->where('r.state = 1')
  125.             ->andWhere('r.state_slider = 1');
  126.         $form->with('UA', ['class' => 'col-md-6'])
  127.             ->add('label_ua'null, ['label' => 'Назва''required' => true])
  128.             ->add('title_ua'null, ['label' => 'Заголовок''required' => true])
  129.             ->add('description_ua'CKEditorType::class, ['label' => 'Опис''required' => false])
  130.             ->add('title_seo_ua'null, ['label' => 'SEO Title''required' => true])
  131.             ->add('description_seo_ua'TextareaType::class, ['label' => 'SEO Description''required' => true])
  132.             ->end()
  133.             ->end();
  134.         $form->with('RU', ['class' => 'col-md-6'])
  135.             ->add('label_ru'null, ['label' => 'Назва''required' => true])
  136.             ->add('title_ru'null, ['label' => 'Заголовок''required' => true])
  137.             ->add('description_ru'CKEditorType::class, ['label' => 'Опис''required' => false])
  138.             ->add('title_seo_ru'null, ['label' => 'SEO Title''required' => true])
  139.             ->add('description_seo_ru'TextareaType::class, ['label' => 'SEO Description''required' => true])
  140.             ->end()
  141.             ->end();
  142.         $form->with(' ')
  143.             ->add('vehicles'EntityType::class, ['class' => Vehicle::class, 'label' => 'Автомобили''multiple' => true,'required' => false'query_builder' => $vehicles], [ 'admin_code' => 'admin.vehicles.passenger_vehicle'])
  144.             ->add('price'null, ['label' => 'Ціна Usd''required' => false])
  145.             ->add('body'null, ['label' => 'Тип кузова''required' => false'query_builder' => $body])
  146.             ->add('fuel'null, ['label' => 'Тип палива''required' => false'query_builder' => $fuel])
  147.             ->add('kpp'null, ['label' => 'Тип КПП''required' => false'query_builder' => $kpp])
  148.             ->add('seat'null, ['label' => 'Кількість місць''required' => false'query_builder' => $seat])
  149.             ->add('color'null, ['label' => 'Колір кузова''required' => false'query_builder' => $color])
  150.             ->add('recommend'null, ['label' => 'Підбірка''required' => false'query_builder' => $recommend])
  151.             ->add('url'null, ['label' => 'Посилання''required' => true])
  152.             ->add('position'null, ['label' => 'Позиція''required' => false])
  153.             ->add('active'CheckboxType::class, ['label' => 'Активний''required' => false'value' => true])
  154.             ->end();
  155.     }
  156. }