mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
fix bootstrapping listener for person capitalization name
This commit is contained in:
parent
0c5e5ac672
commit
2db9a98bfe
@ -268,7 +268,7 @@ final class PersonController extends AbstractController
|
|||||||
) {
|
) {
|
||||||
$this->em->persist($person);
|
$this->em->persist($person);
|
||||||
|
|
||||||
// $this->em->flush();
|
$this->em->flush();
|
||||||
$this->lastPostDataReset();
|
$this->lastPostDataReset();
|
||||||
|
|
||||||
if ($form->get('createPeriod')->isClicked()) {
|
if ($form->get('createPeriod')->isClicked()) {
|
||||||
|
@ -12,28 +12,19 @@ use Symfony\Component\Validator\Exception\LogicException as ExceptionLogicExcept
|
|||||||
|
|
||||||
class PersonEventListener
|
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();
|
$lastnameCaps = mb_strtoupper($person->getLastName(), 'UTF-8');
|
||||||
$firstnameCaps = mb_convert_case(mb_strtolower($person->getFirstName()), MB_CASE_TITLE, 'UTF-8');
|
$person->setLastName($lastnameCaps);
|
||||||
$firstnameCaps = ucwords(strtolower($firstnameCaps), " \t\r\n\f\v'-");
|
}
|
||||||
$person->setFirstName($firstnameCaps);
|
|
||||||
|
|
||||||
$lastnameCaps = mb_strtoupper($person->getLastName(), 'UTF-8');
|
public function prePersistAltName(PersonAltName $altname)
|
||||||
$person->setLastName($lastnameCaps);
|
{
|
||||||
|
$altnameCaps = mb_strtoupper($altname->getLabel(), 'UTF-8');
|
||||||
} elseif ($event->getObject() instanceof PersonAltName){
|
$altname->setLabel($altnameCaps);
|
||||||
|
|
||||||
$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');
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -20,11 +20,7 @@ class PersonCreateEventTest extends TestCase
|
|||||||
$person->setFirstName($firstname);
|
$person->setFirstName($firstname);
|
||||||
$person->setLastName($lastname);
|
$person->setLastName($lastname);
|
||||||
|
|
||||||
$args = $this->createMock(LifecycleEventArgs::class);
|
$listener->prePersistPerson($person);
|
||||||
$args->method('getObject')
|
|
||||||
->willReturn($person);
|
|
||||||
|
|
||||||
$listener->onPrePersist($args);
|
|
||||||
|
|
||||||
$this->assertEquals($firstnameExpected, $person->getFirstName());
|
$this->assertEquals($firstnameExpected, $person->getFirstName());
|
||||||
$this->assertEquals($lastnameExpected, $person->getLastName());
|
$this->assertEquals($lastnameExpected, $person->getLastName());
|
||||||
@ -41,11 +37,7 @@ class PersonCreateEventTest extends TestCase
|
|||||||
|
|
||||||
$personAltname->setLabel($altname);
|
$personAltname->setLabel($altname);
|
||||||
|
|
||||||
$args = $this->createMock(LifecycleEventArgs::class);
|
$listener->prePersistAltName($personAltname);
|
||||||
$args->method('getObject')
|
|
||||||
->willReturn($personAltname);
|
|
||||||
|
|
||||||
$listener->onPrePersist($args);
|
|
||||||
|
|
||||||
$this->assertEquals($altnameExpected, $personAltname->getLabel());
|
$this->assertEquals($altnameExpected, $personAltname->getLabel());
|
||||||
}
|
}
|
||||||
|
@ -4,9 +4,11 @@ services:
|
|||||||
tags:
|
tags:
|
||||||
-
|
-
|
||||||
name: 'doctrine.orm.entity_listener'
|
name: 'doctrine.orm.entity_listener'
|
||||||
event: 'onPrePersist'
|
event: 'prePersist'
|
||||||
entity: 'Chill\PersonBundle\Entity\Person'
|
entity: 'Chill\PersonBundle\Entity\Person'
|
||||||
|
method: 'prePersistPerson'
|
||||||
-
|
-
|
||||||
name: 'doctrine.orm.entity_listener'
|
name: 'doctrine.orm.entity_listener'
|
||||||
event: 'onPrePersist'
|
event: 'prePersist'
|
||||||
entity: 'Chill\PersonBundle\Entity\PersonAltName'
|
entity: 'Chill\PersonBundle\Entity\PersonAltName'
|
||||||
|
method: 'prePersistAltName'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user