mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-11-04 11:18:25 +00:00 
			
		
		
		
	fix bootstrapping listener for person capitalization name
This commit is contained in:
		@@ -268,7 +268,7 @@ final class PersonController extends AbstractController
 | 
			
		||||
            ) {
 | 
			
		||||
                $this->em->persist($person);
 | 
			
		||||
 | 
			
		||||
                // $this->em->flush();
 | 
			
		||||
                $this->em->flush();
 | 
			
		||||
                $this->lastPostDataReset();
 | 
			
		||||
 | 
			
		||||
                if ($form->get('createPeriod')->isClicked()) {
 | 
			
		||||
 
 | 
			
		||||
@@ -12,28 +12,19 @@ use Symfony\Component\Validator\Exception\LogicException as ExceptionLogicExcept
 | 
			
		||||
 | 
			
		||||
class PersonEventListener
 | 
			
		||||
{
 | 
			
		||||
    public function onPrePersist(LifecycleEventArgs $event): void
 | 
			
		||||
    public function prePersistPerson(Person $person): void
 | 
			
		||||
    {
 | 
			
		||||
        if($event->getObject() instanceof Person){
 | 
			
		||||
        $firstnameCaps = mb_convert_case(mb_strtolower($person->getFirstName()), MB_CASE_TITLE, 'UTF-8');
 | 
			
		||||
        $firstnameCaps = ucwords(strtolower($firstnameCaps), " \t\r\n\f\v'-");
 | 
			
		||||
        $person->setFirstName($firstnameCaps);
 | 
			
		||||
 | 
			
		||||
            $person = $event->getObject();
 | 
			
		||||
            $firstnameCaps = mb_convert_case(mb_strtolower($person->getFirstName()), MB_CASE_TITLE, 'UTF-8');
 | 
			
		||||
            $firstnameCaps = ucwords(strtolower($firstnameCaps), " \t\r\n\f\v'-");
 | 
			
		||||
            $person->setFirstName($firstnameCaps);
 | 
			
		||||
 | 
			
		||||
            $lastnameCaps = mb_strtoupper($person->getLastName(), 'UTF-8');
 | 
			
		||||
            $person->setLastName($lastnameCaps);
 | 
			
		||||
 | 
			
		||||
        } elseif ($event->getObject() instanceof PersonAltName){
 | 
			
		||||
 | 
			
		||||
            $altname = $event->getObject();
 | 
			
		||||
            $altnameCaps = mb_strtoupper($altname->getLabel(), 'UTF-8');
 | 
			
		||||
            $altname->setLabel($altnameCaps);
 | 
			
		||||
 | 
			
		||||
        } else {
 | 
			
		||||
 | 
			
		||||
            throw new LogicException('Entity must be a person or an altname');
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
        $lastnameCaps = mb_strtoupper($person->getLastName(), 'UTF-8');
 | 
			
		||||
        $person->setLastName($lastnameCaps);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
    public function prePersistAltName(PersonAltName $altname)
 | 
			
		||||
    {
 | 
			
		||||
        $altnameCaps = mb_strtoupper($altname->getLabel(), 'UTF-8');
 | 
			
		||||
        $altname->setLabel($altnameCaps);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -20,11 +20,7 @@ class PersonCreateEventTest extends TestCase
 | 
			
		||||
        $person->setFirstName($firstname);
 | 
			
		||||
        $person->setLastName($lastname);
 | 
			
		||||
 | 
			
		||||
        $args = $this->createMock(LifecycleEventArgs::class);
 | 
			
		||||
        $args->method('getObject')
 | 
			
		||||
            ->willReturn($person);
 | 
			
		||||
 | 
			
		||||
        $listener->onPrePersist($args);
 | 
			
		||||
        $listener->prePersistPerson($person);
 | 
			
		||||
 | 
			
		||||
        $this->assertEquals($firstnameExpected, $person->getFirstName());
 | 
			
		||||
        $this->assertEquals($lastnameExpected, $person->getLastName());
 | 
			
		||||
@@ -41,11 +37,7 @@ class PersonCreateEventTest extends TestCase
 | 
			
		||||
 | 
			
		||||
        $personAltname->setLabel($altname);
 | 
			
		||||
 | 
			
		||||
        $args = $this->createMock(LifecycleEventArgs::class);
 | 
			
		||||
        $args->method('getObject')
 | 
			
		||||
            ->willReturn($personAltname);
 | 
			
		||||
 | 
			
		||||
        $listener->onPrePersist($args);
 | 
			
		||||
        $listener->prePersistAltName($personAltname);
 | 
			
		||||
 | 
			
		||||
        $this->assertEquals($altnameExpected, $personAltname->getLabel());
 | 
			
		||||
    }
 | 
			
		||||
@@ -66,4 +58,4 @@ class PersonCreateEventTest extends TestCase
 | 
			
		||||
        yield ['fastré', 'FASTRÉ'];
 | 
			
		||||
        yield ['émile', 'ÉMILE'];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,14 @@
 | 
			
		||||
services:
 | 
			
		||||
  Chill\PersonBundle\EventListener\PersonEventListener:
 | 
			
		||||
    autoconfigure: true
 | 
			
		||||
    tags: 
 | 
			
		||||
      - 
 | 
			
		||||
        name: 'doctrine.orm.entity_listener'
 | 
			
		||||
        event: 'onPrePersist'
 | 
			
		||||
        entity: 'Chill\PersonBundle\Entity\Person'
 | 
			
		||||
    tags:
 | 
			
		||||
      -
 | 
			
		||||
        name: 'doctrine.orm.entity_listener'
 | 
			
		||||
        event: 'onPrePersist'
 | 
			
		||||
        entity: 'Chill\PersonBundle\Entity\PersonAltName'
 | 
			
		||||
        event: 'prePersist'
 | 
			
		||||
        entity: 'Chill\PersonBundle\Entity\Person'
 | 
			
		||||
        method: 'prePersistPerson'
 | 
			
		||||
      -
 | 
			
		||||
        name: 'doctrine.orm.entity_listener'
 | 
			
		||||
        event: 'prePersist'
 | 
			
		||||
        entity: 'Chill\PersonBundle\Entity\PersonAltName'
 | 
			
		||||
        method: 'prePersistAltName'
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user