Compare commits

..

1 Commits

Author SHA1 Message Date
2221d17930 Redo ux for selceting follow-up preferences for workflow 2025-10-29 11:17:47 +01:00
8 changed files with 33 additions and 136 deletions

View File

@@ -1,6 +0,0 @@
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

@@ -0,0 +1,6 @@
kind: UX
body: Improve the ux for selecting whether user wants to be notified of the final step of a workflow or all steps
time: 2025-10-29T11:08:04.077020411+01:00
custom:
Issue: "542"
SchemaChange: No schema change

View File

@@ -1,45 +0,0 @@
<?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,8 +25,6 @@ class LoadLocationType extends AbstractFixture implements ContainerAwareInterfac
{
private ?ContainerInterface $container = null;
final public const LOCATION_TYPE = 'location_type';
public function getOrder(): int
{
return 52;
@@ -55,15 +53,13 @@ class LoadLocationType extends AbstractFixture implements ContainerAwareInterfac
],
];
foreach ($arr as $index => $a) {
foreach ($arr as $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

@@ -1,41 +0,0 @@
<?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

@@ -1,40 +1,38 @@
<template>
<div class="d-grid gap-2 my-3">
<button
class="btn btn-misc"
class="btn btn-outline-primary text-start d-flex align-items-center"
:class="{ active: subscriberFinal }"
type="button"
v-if="!subscriberFinal"
@click="subscribeTo('subscribe', 'final')"
@click="
subscribeTo(
subscriberFinal ? 'unsubscribe' : 'subscribe',
'final',
)
"
>
<i class="fa fa-check fa-fw"></i>
{{ trans(WORKFLOW_SUBSCRIBE_FINAL) }}
<i
class="fa fa-fw me-2"
:class="subscriberFinal ? 'fa-check-square-o' : 'fa-square-o'"
></i>
<span>{{ trans(WORKFLOW_SUBSCRIBE_FINAL) }}</span>
</button>
<button
class="btn btn-misc"
class="btn btn-outline-primary text-start d-flex align-items-center"
:class="{ active: subscriberStep }"
type="button"
v-if="subscriberFinal"
@click="subscribeTo('unsubscribe', 'final')"
@click="
subscribeTo(
subscriberStep ? 'unsubscribe' : 'subscribe',
'step',
)
"
>
<i class="fa fa-times fa-fw"></i>
{{ trans(WORKFLOW_UNSUBSCRIBE_FINAL) }}
</button>
<button
class="btn btn-misc"
type="button"
v-if="!subscriberStep"
@click="subscribeTo('subscribe', 'step')"
>
<i class="fa fa-check fa-fw"></i>
{{ trans(WORKFLOW_SUBSCRIBE_ALL_STEPS) }}
</button>
<button
class="btn btn-misc"
type="button"
v-if="subscriberStep"
@click="subscribeTo('unsubscribe', 'step')"
>
<i class="fa fa-times fa-fw"></i>
{{ trans(WORKFLOW_UNSUBSCRIBE_ALL_STEPS) }}
<i
class="fa fa-fw me-2"
:class="subscriberStep ? 'fa-check-square-o' : 'fa-square-o'"
></i>
<span>{{ trans(WORKFLOW_SUBSCRIBE_ALL_STEPS) }}</span>
</button>
</div>
</template>
@@ -45,9 +43,7 @@ import { defineProps, defineEmits } from "vue";
import {
trans,
WORKFLOW_SUBSCRIBE_FINAL,
WORKFLOW_UNSUBSCRIBE_FINAL,
WORKFLOW_SUBSCRIBE_ALL_STEPS,
WORKFLOW_UNSUBSCRIBE_ALL_STEPS,
} from "translator";
// props

View File

@@ -11,19 +11,15 @@ 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;
@@ -366,10 +362,6 @@ 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

@@ -60,7 +60,6 @@ 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();