<?php
declare(strict_types=1);
namespace App\Admin;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Show\ShowMapper;
final class UAlunoAdmin extends AbstractAdmin
{
protected function configureDatagridFilters(DatagridMapper $datagridMapper): void
{
$datagridMapper
->add('id')
->add('nome')
->add('email')
->add('whatsapp')
->add('cidade')
->add('Uf')
->add('genero')
->add('dataNascimento')
->add('avatar')
->add('cpf')
->add('cep')
;
}
protected function configureListFields(ListMapper $listMapper): void
{
$listMapper
->add('nome')
->add('email')
->add('whatsapp')
->add('cidade')
->add('Uf')
->add('_action', null, [
'actions' => [
'show' => [],
'edit' => [],
'delete' => [],
],
]);
}
protected function configureFormFields(FormMapper $formMapper): void
{
$formMapper
->add('nome')
->add('whatsapp')
->add('cidade')
->add('Uf')
->add('genero')
->add('dataNascimento')
->add('avatar')
->add('cpf')
->add('cep')
;
}
protected function configureShowFields(ShowMapper $showMapper): void
{
$showMapper
->add('id')
->add('nome')
->add('usuario.email')
->add('whatsapp')
->add('cidade')
->add('Uf')
->add('genero')
->add('dataNascimento')
->add('avatar')
->add('cpf')
->add('cep')
;
}
public function preRemove($object): void
{
parent::preRemove($object);
// Remove todas as respostas do aluno antes de deletá-lo
$em = $this->getModelManager()->getEntityManager(\App\Entity\URespostaPerguntaModulo::class);
$respostas = $em->getRepository(\App\Entity\URespostaPerguntaModulo::class)
->findBy(['aluno' => $object]);
foreach ($respostas as $resposta) {
$em->remove($resposta);
}
$em->flush();
}
}