← Back
Editing: ControlTemplateCrudController.php
<?php namespace App\Controller\Admin; use App\Entity\ControlTemplate; use App\Form\Admin\AssignControlTemplateType; use App\Service\ControlTemplate\ControlTemplateAssigner; use EasyCorp\Bundle\EasyAdminBundle\Config\Action; use EasyCorp\Bundle\EasyAdminBundle\Config\Actions; use EasyCorp\Bundle\EasyAdminBundle\Config\Crud; use EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext; use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController; use EasyCorp\Bundle\EasyAdminBundle\Field\AssociationField; use EasyCorp\Bundle\EasyAdminBundle\Provider\FieldProvider; use Symfony\Component\HttpFoundation\Response; class ControlTemplateCrudController extends AbstractCrudController { public static function getEntityFqcn(): string { return ControlTemplate::class; } public function configureCrud(Crud $crud): Crud { return $crud ->setDefaultSort(['id' => 'DESC']); } public function configureFields(string $pageName): iterable { $fields = $this->container->get(FieldProvider::class)->getDefaultFields($pageName); $fields[] = AssociationField::new('adresses'); $fields[] = AssociationField::new('items'); return $fields; } public function configureActions(Actions $actions): Actions { $assignToAddresses = Action::new('assignToAddresses', 'Assigner en masse à des adresses') ->linkToCrudAction('renderAssignToAddresses'); return $actions ->add(Crud::PAGE_INDEX, $assignToAddresses) ->add(Crud::PAGE_EDIT, $assignToAddresses) ->disable(Action::DELETE); } public function renderAssignToAddresses(AdminContext $adminContext, ControlTemplateAssigner $assigner): Response { $controlTemplate = $adminContext->getEntity()->getInstance(); $request = $adminContext->getRequest(); $form = $this->createForm(AssignControlTemplateType::class, [ 'sourceTarget' => $adminContext->getReferrer() ?? null, ]); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $data = $form->getData(); if ($request->request->has('assign-sector')) { $assigner->assignToSector($controlTemplate, $data['fromManager']); } if ($request->request->has('assign-agency')) { $assigner->assignToAgency($controlTemplate, $data['fromAgency']); } if ($request->request->has('assign-organization')) { $assigner->assignToOrganization($controlTemplate, $data['fromOrganization']); } $this->addFlash('success', 'Les templates ont bien été attribués'); } return $this->render('admin/assign_templates_to_addresses.html.twig', [ 'form' => $form->createView(), ]); } }
Save File
Cancel