Compare commits

..

3 Commits

8 changed files with 108 additions and 18 deletions

View File

@@ -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

View File

@@ -1,6 +0,0 @@
kind: Fixed
body: 'Fix: display also social actions linked to parents of the selected social issue'
time: 2025-10-29T12:43:55.008647232+01:00
custom:
Issue: "451"
SchemaChange: No schema change

View File

@@ -0,0 +1,45 @@
<?php
declare(strict_types=1);
/*
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Chill\MainBundle\DataFixtures\ORM;
use Chill\MainBundle\Entity\Location;
use Chill\MainBundle\Entity\LocationType;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Persistence\ObjectManager;
class LoadAdministrativeLocation extends AbstractFixture implements OrderedFixtureInterface
{
final public const ADMINISTRATIVE_LOCATION = 'administrative_location';
public function getOrder(): int
{
return 9000;
}
public function load(ObjectManager $manager): void
{
$o = new Location();
/** @var LocationType $locationType */
$locationType = $this->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();
}
}

View File

@@ -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();

View File

@@ -0,0 +1,41 @@
<?php
declare(strict_types=1);
/*
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Chill\MainBundle\DataFixtures\ORM;
use Chill\MainBundle\Entity\UserJob;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Persistence\ObjectManager;
class LoadUserJob extends AbstractFixture implements OrderedFixtureInterface
{
final public const USER_JOB = 'user_job';
private array $socialWorker = ['en' => '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();
}
}

View File

@@ -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);

View File

@@ -239,22 +239,13 @@ class SocialIssue
}
/**
* @return Collection<SocialAction> All the social actions of the entity, it's
* the descendants and it's parents
* @return Collection<SocialAction> All the descendant social actions of all
* the descendants of the entity
*/
public function getRecursiveSocialActions(): Collection
{
$recursiveSocialActions = new ArrayCollection();
// Get social actions from parent issues
foreach ($this->getAncestors(false) as $ancestor) {
foreach ($ancestor->getDescendantsSocialActions() as $descendant) {
if (!$recursiveSocialActions->contains($descendant)) {
$recursiveSocialActions->add($descendant);
}
}
}
foreach ($this->getDescendantsWithThis() as $socialIssue) {
foreach ($socialIssue->getDescendantsSocialActions() as $descendant) {
if (!$recursiveSocialActions->contains($descendant)) {

View File

@@ -60,6 +60,7 @@ import {
EVALUATION_DOCUMENT_MOVE_SUCCESS,
} from "translator";
import { useToast } from "vue-toast-notification";
import { buildLinkCreate as buildLinkCreateNotification } from "ChillMainAssets/lib/entity-notification/api";
const props = defineProps(["evaluation", "docAnchorId"]);
const store = useStore();