<?php
namespace AdminBundle\Admin\Insurance;
use AdminBundle\Admin\BaseAdmin;
use InsuranceBundle\Entity\InsuranceConditionCategory;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Form\Type\ModelType;
use Sonata\MediaBundle\Form\Type\MediaType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
class InsuranceConditionAdmin extends BaseAdmin
{
public function prePersist($object): void
{
parent::prePersist($object);
}
public function preUpdate($object): void
{
parent::preUpdate($object);
}
public function getInsuranceConditionCategory()
{
return $this->getModelManager()
->getEntityManager(InsuranceConditionCategory::class)
->createQueryBuilder('cp')
->select('cp')
->from('InsuranceBundle:InsuranceConditionCategory', 'cp');
}
protected function configureListFields(ListMapper $list): void
{
$list->addIdentifier('id')
->add('title', null, ['label' => 'Заголовок'])
->add('_action', 'actions', [
'label' => 'Действия',
'actions' => [
'edit' => [],
]
])
->add('categories', EntityType::class, [
'class' => InsuranceConditionCategory::class,
'label' => 'Подкатегория документа',
]);
}
protected function configureFormFields(FormMapper $form): void
{
$queryBuilderParentCategory = $this->getModelManager()
->getEntityManager(InsuranceConditionCategory::class)
->createQueryBuilder('spc')
->select('spc')
->from(InsuranceConditionCategory::class,'spc')
->where('spc.parent_category is not null');
$form
->with('Новый документ "Условия страхования"', ['class' => 'col-lg-6'])
->add('title', null, ['label' => 'Название', 'required' => true])
->add('categories', ModelType::class, [
'label' => 'Подкатегория документа',
'query' => $queryBuilderParentCategory,
'btn_add' => false,
'required' => true,
'multiple' => true,
])
->add('file', MediaType::class, [
'label' => 'Файл',
'provider' => 'sonata.media.provider.file',
'context' => 'insurance'
])
->end()
->end();
}
}