diff --git a/.changes/unreleased/Fixed-20251201-185859.yaml b/.changes/unreleased/Fixed-20251201-185859.yaml new file mode 100644 index 000000000..989620ad9 --- /dev/null +++ b/.changes/unreleased/Fixed-20251201-185859.yaml @@ -0,0 +1,6 @@ +kind: Fixed +body: Do not suggest a user that is no longer active in the activity form. +time: 2025-12-01T18:58:59.410998029+01:00 +custom: + Issue: "475" + SchemaChange: No schema change diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js index acd616dc9..2e240b4ad 100644 --- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js +++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js @@ -103,7 +103,7 @@ const store = createStore({ } // console.log("suggested users", suggestedUsers); - return suggestedUsers; + return suggestedUsers.filter((u) => u.enabled === true); }, suggestedResources(state) { // const resources = state.activity.accompanyingPeriod.resources; diff --git a/src/Bundle/ChillDocStoreBundle/Resources/public/types/generic_doc.ts b/src/Bundle/ChillDocStoreBundle/Resources/public/types/generic_doc.ts index 04c324b4a..34cf2501d 100644 --- a/src/Bundle/ChillDocStoreBundle/Resources/public/types/generic_doc.ts +++ b/src/Bundle/ChillDocStoreBundle/Resources/public/types/generic_doc.ts @@ -52,36 +52,31 @@ interface BaseMetadataWithHtml extends BaseMetadata { html: string; } -export interface GenericDocForAccompanyingCourseDocument - extends GenericDocForAccompanyingPeriod { +export interface GenericDocForAccompanyingCourseDocument extends GenericDocForAccompanyingPeriod { key: "accompanying_course_document"; metadata: BaseMetadataWithHtml; storedObject: StoredObject; } -export interface GenericDocForAccompanyingCourseActivityDocument - extends GenericDocForAccompanyingPeriod { +export interface GenericDocForAccompanyingCourseActivityDocument extends GenericDocForAccompanyingPeriod { key: "accompanying_course_activity_document"; metadata: BaseMetadataWithHtml; storedObject: StoredObject; } -export interface GenericDocForAccompanyingCourseCalendarDocument - extends GenericDocForAccompanyingPeriod { +export interface GenericDocForAccompanyingCourseCalendarDocument extends GenericDocForAccompanyingPeriod { key: "accompanying_course_calendar_document"; metadata: BaseMetadataWithHtml; storedObject: StoredObject; } -export interface GenericDocForAccompanyingCoursePersonDocument - extends GenericDocForAccompanyingPeriod { +export interface GenericDocForAccompanyingCoursePersonDocument extends GenericDocForAccompanyingPeriod { key: "person_document"; metadata: BaseMetadataWithHtml; storedObject: StoredObject; } -export interface GenericDocForAccompanyingCourseWorkEvaluationDocument - extends GenericDocForAccompanyingPeriod { +export interface GenericDocForAccompanyingCourseWorkEvaluationDocument extends GenericDocForAccompanyingPeriod { key: "accompanying_period_work_evaluation_document"; metadata: BaseMetadataWithHtml; storedObject: StoredObject; diff --git a/src/Bundle/ChillDocStoreBundle/Resources/public/types/index.ts b/src/Bundle/ChillDocStoreBundle/Resources/public/types/index.ts index 5b34b8f73..4213d971a 100644 --- a/src/Bundle/ChillDocStoreBundle/Resources/public/types/index.ts +++ b/src/Bundle/ChillDocStoreBundle/Resources/public/types/index.ts @@ -46,8 +46,7 @@ export interface StoredObjectVersionCreated extends StoredObjectVersion { persisted: false; } -export interface StoredObjectVersionPersisted - extends StoredObjectVersionCreated { +export interface StoredObjectVersionPersisted extends StoredObjectVersionCreated { version: number; id: number; createdAt: DateTime | null; @@ -61,8 +60,7 @@ export interface StoredObjectStatusChange { type: string; } -export interface StoredObjectVersionWithPointInTime - extends StoredObjectVersionPersisted { +export interface StoredObjectVersionWithPointInTime extends StoredObjectVersionPersisted { "point-in-times": StoredObjectPointInTime[]; "from-restored": StoredObjectVersionPersisted | null; } diff --git a/src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.ts b/src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.ts index e8256b348..97220f9c8 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.ts +++ b/src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.ts @@ -20,8 +20,7 @@ export interface TransportExceptionInterface { name: string; } -export interface ValidationExceptionInterface - extends TransportExceptionInterface { +export interface ValidationExceptionInterface extends TransportExceptionInterface { name: "ValidationException"; error: object; violations: string[]; @@ -41,8 +40,7 @@ export interface AccessExceptionInterface extends TransportExceptionInterface { violations: string[]; } -export interface NotFoundExceptionInterface - extends TransportExceptionInterface { +export interface NotFoundExceptionInterface extends TransportExceptionInterface { name: "NotFoundException"; } @@ -53,8 +51,7 @@ export interface ServerExceptionInterface extends TransportExceptionInterface { body: string; } -export interface ConflictHttpExceptionInterface - extends TransportExceptionInterface { +export interface ConflictHttpExceptionInterface extends TransportExceptionInterface { name: "ConflictHttpException"; violations: string[]; } diff --git a/src/Bundle/ChillMainBundle/Serializer/Normalizer/UserNormalizer.php b/src/Bundle/ChillMainBundle/Serializer/Normalizer/UserNormalizer.php index e8b019bd6..3958b15f0 100644 --- a/src/Bundle/ChillMainBundle/Serializer/Normalizer/UserNormalizer.php +++ b/src/Bundle/ChillMainBundle/Serializer/Normalizer/UserNormalizer.php @@ -41,6 +41,7 @@ class UserNormalizer implements ContextAwareNormalizerInterface, NormalizerAware 'isAbsent' => false, 'absenceStart' => null, 'absenceEnd' => null, + 'enabled' => true, ]; public function __construct(private readonly UserRender $userRender, private readonly ClockInterface $clock) {} @@ -108,6 +109,7 @@ class UserNormalizer implements ContextAwareNormalizerInterface, NormalizerAware 'isAbsent' => $object->isAbsent(), 'absenceStart' => $this->normalizer->normalize($object->getAbsenceStart(), $format, $absenceDatesContext), 'absenceEnd' => $this->normalizer->normalize($object->getAbsenceEnd(), $format, $absenceDatesContext), + 'enabled' => $object->isEnabled(), ]; if ('docgen' === $format) { diff --git a/src/Bundle/ChillMainBundle/Tests/Serializer/Normalizer/UserNormalizerTest.php b/src/Bundle/ChillMainBundle/Tests/Serializer/Normalizer/UserNormalizerTest.php index c58b607e3..2139a44ef 100644 --- a/src/Bundle/ChillMainBundle/Tests/Serializer/Normalizer/UserNormalizerTest.php +++ b/src/Bundle/ChillMainBundle/Tests/Serializer/Normalizer/UserNormalizerTest.php @@ -103,6 +103,7 @@ final class UserNormalizerTest extends TestCase 'main_center' => ['context' => Center::class], 'absenceStart' => ['context' => \DateTimeImmutable::class], 'absenceEnd' => ['context' => \DateTimeImmutable::class], + 'enabled' => true, ]]; yield [$userNoPhone, 'docgen', ['docgen:expects' => User::class], @@ -124,6 +125,7 @@ final class UserNormalizerTest extends TestCase 'main_center' => ['context' => Center::class], 'absenceStart' => ['context' => \DateTimeImmutable::class], 'absenceEnd' => ['context' => \DateTimeImmutable::class], + 'enabled' => true, ]]; yield [null, 'docgen', ['docgen:expects' => User::class], [ @@ -144,6 +146,7 @@ final class UserNormalizerTest extends TestCase 'main_center' => ['context' => Center::class], 'absenceStart' => null, 'absenceEnd' => null, + 'enabled' => true, ]]; } }