diff --git a/.changes/unreleased/DX-20251030-123732.yaml b/.changes/unreleased/DX-20251030-123732.yaml new file mode 100644 index 000000000..db3ca64c2 --- /dev/null +++ b/.changes/unreleased/DX-20251030-123732.yaml @@ -0,0 +1,6 @@ +kind: DX +body: Add missing fixtures for proper loading of AccompanyingPeriods +time: 2025-10-30T12:37:32.824593456+01:00 +custom: + Issue: "280" + SchemaChange: No schema change diff --git a/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadAdministrativeLocation.php b/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadAdministrativeLocation.php new file mode 100644 index 000000000..2620620e2 --- /dev/null +++ b/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadAdministrativeLocation.php @@ -0,0 +1,45 @@ +getReference(LoadLocationType::LOCATION_TYPE.'_0'); + $o->setLocationType($locationType); + $o->setName('Commune de Bruxelles'); + $o->setAvailableForUsers(true); + + $manager->persist($o); + + $this->addReference(self::ADMINISTRATIVE_LOCATION, $o); + echo "Adding one Administrative Location\n"; + + $manager->flush(); + } +} diff --git a/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadLocationType.php b/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadLocationType.php index a1185c655..cc5297214 100644 --- a/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadLocationType.php +++ b/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadLocationType.php @@ -25,6 +25,8 @@ class LoadLocationType extends AbstractFixture implements ContainerAwareInterfac { private ?ContainerInterface $container = null; + final public const LOCATION_TYPE = 'location_type'; + public function getOrder(): int { return 52; @@ -53,13 +55,15 @@ class LoadLocationType extends AbstractFixture implements ContainerAwareInterfac ], ]; - foreach ($arr as $a) { + foreach ($arr as $index => $a) { $locationType = (new LocationType()) ->setTitle($a['name']) ->setAvailableForUsers(true) ->setActive(true) ->setAddressRequired($a['address_required']); $manager->persist($locationType); + + $this->addReference(self::LOCATION_TYPE.'_'.$index, $locationType); } $manager->flush(); diff --git a/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUserJob.php b/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUserJob.php new file mode 100644 index 000000000..d12648993 --- /dev/null +++ b/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUserJob.php @@ -0,0 +1,41 @@ + 'social worker', 'fr' => 'travailleur social']; + + public function getOrder(): int + { + return 9000; + } + + public function load(ObjectManager $manager): void + { + $o = new UserJob(); + $o->setLabel($this->socialWorker); + + $manager->persist($o); + + $this->addReference(self::USER_JOB, $o); + echo "Adding one AccompanyingPeriod User Job\n"; + + $manager->flush(); + } +} diff --git a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php index d5299af14..753094ec1 100644 --- a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php +++ b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php @@ -11,15 +11,19 @@ declare(strict_types=1); namespace Chill\PersonBundle\DataFixtures\ORM; +use Chill\MainBundle\DataFixtures\ORM\LoadAdministrativeLocation; use Chill\MainBundle\DataFixtures\ORM\LoadPostalCodes; +use Chill\MainBundle\DataFixtures\ORM\LoadUserJob; use Chill\MainBundle\Entity\Address; use Chill\MainBundle\Entity\Center; use Chill\MainBundle\Entity\Country; use Chill\MainBundle\Entity\Gender; use Chill\MainBundle\Entity\GenderEnum; +use Chill\MainBundle\Entity\Location; use Chill\MainBundle\Entity\PostalCode; use Chill\MainBundle\Entity\Scope; use Chill\MainBundle\Entity\User; +use Chill\MainBundle\Entity\UserJob; use Chill\MainBundle\Repository\CenterRepository; use Chill\MainBundle\Repository\CountryRepository; use Chill\MainBundle\Repository\GenderRepository; @@ -362,6 +366,10 @@ class LoadPeople extends AbstractFixture implements ContainerAwareInterface, Ord $origin = $this->getReference(LoadAccompanyingPeriodOrigin::ACCOMPANYING_PERIOD_ORIGIN, AccompanyingPeriod\Origin::class); $accompanyingPeriod->setOrigin($origin); $accompanyingPeriod->setIntensity('regular'); + $userJob = $this->getReference(LoadUserJob::USER_JOB, UserJob::class); + $accompanyingPeriod->setJob($userJob); + $administrativeLocation = $this->getReference(LoadAdministrativeLocation::ADMINISTRATIVE_LOCATION, Location::class); + $accompanyingPeriod->setAdministrativeLocation($administrativeLocation); $accompanyingPeriod->setAddressLocation($this->createAddress()); $manager->persist($accompanyingPeriod->getAddressLocation()); $workflow = $this->workflowRegistry->get($accompanyingPeriod);