From 23762b334e586fecf074df8759a5f4bc080a791d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20H=C3=A4nninen?= Date: Thu, 2 Jan 2025 14:15:26 +0200 Subject: [PATCH] =?UTF-8?q?N=C3=A4yt=C3=A4=20opintojen=20rahoitus=20ib-opi?= =?UTF-8?q?skeluoikeusjaksoille?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../opiskeluoikeus/OpiskeluoikeudenTila.tsx | 24 ++------------- .../UusiOpiskeluoikeudenTilaModal.tsx | 16 ++++------ web/app/ib/IBEditor.tsx | 4 +-- web/app/util/opiskeluoikeusjakso.ts | 29 +++++++++++++++++++ 4 files changed, 38 insertions(+), 35 deletions(-) create mode 100644 web/app/util/opiskeluoikeusjakso.ts diff --git a/web/app/components-v2/opiskeluoikeus/OpiskeluoikeudenTila.tsx b/web/app/components-v2/opiskeluoikeus/OpiskeluoikeudenTila.tsx index 60e706abc6..d7b1c3f061 100644 --- a/web/app/components-v2/opiskeluoikeus/OpiskeluoikeudenTila.tsx +++ b/web/app/components-v2/opiskeluoikeus/OpiskeluoikeudenTila.tsx @@ -43,26 +43,7 @@ import { UusiOpiskeluoikeudenTilaModal, UusiOpiskeluoikeusjakso } from './UusiOpiskeluoikeudenTilaModal' - -type RahoituksellinenOpiskeluoikeusjakso = Extract< - Opiskeluoikeusjakso, - { opintojenRahoitus?: any } -> -function isRahoituksellinenOpiskeluoikeusjakso( - x: Opiskeluoikeusjakso -): x is RahoituksellinenOpiskeluoikeusjakso { - return ( - isAikuistenPerusopetuksenOpiskeluoikeusjakso(x) || - isAmmatillinenOpiskeluoikeusjakso(x) || - isDIAOpiskeluoikeusjakso(x) || - isEuropeanSchoolOfHelsinkiOpiskeluoikeusjakso(x) || - isInternationalSchoolOpiskeluoikeusjakso(x) || - isLukionOpiskeluoikeusjakso(x) || - isMuunKuinSäännellynKoulutuksenOpiskeluoikeudenJakso(x) || - isTutkintokoulutukseenValmentavanOpiskeluoikeusjakso(x) || - isVapaanSivistystyönJotpaKoulutuksenOpiskeluoikeusjakso(x) - ) -} +import { isRahoituksellinenOpiskeluoikeusjakso } from '../../util/opiskeluoikeusjakso' // Opiskeluoikeuden tila viewer @@ -105,8 +86,7 @@ export const OpiskeluoikeudenTilaView = ( {t(jakso.tila.nimi)} - {isVapaanSivistystyönOpiskeluoikeusjakso(jakso) && - isRahoituksellinenOpiskeluoikeusjakso(jakso) && + {isRahoituksellinenOpiskeluoikeusjakso(jakso) && ` (${t(jakso.opintojenRahoitus?.nimi)})`} diff --git a/web/app/components-v2/opiskeluoikeus/UusiOpiskeluoikeudenTilaModal.tsx b/web/app/components-v2/opiskeluoikeus/UusiOpiskeluoikeudenTilaModal.tsx index f76cc57ee0..970c75d91f 100644 --- a/web/app/components-v2/opiskeluoikeus/UusiOpiskeluoikeudenTilaModal.tsx +++ b/web/app/components-v2/opiskeluoikeus/UusiOpiskeluoikeudenTilaModal.tsx @@ -11,6 +11,7 @@ import { } from '../../types/fi/oph/koski/schema/Koodistokoodiviite' import { Opiskeluoikeusjakso } from '../../types/fi/oph/koski/schema/Opiskeluoikeusjakso' import { VapaanSivistystyönJotpaKoulutuksenOpiskeluoikeusjakso } from '../../types/fi/oph/koski/schema/VapaanSivistystyonJotpaKoulutuksenOpiskeluoikeusjakso' +import { hasProp } from '../../util/constraints' import { KoodiarvotOf } from '../../util/koodisto' import { isValmistuvaTerminaalitila } from '../../util/opiskeluoikeus' import { ClassOf } from '../../util/types' @@ -24,7 +25,6 @@ import { RaisedButton } from '../controls/RaisedButton' import { FormField, Nothing } from '../forms/FormField' import { FormModel, useForm } from '../forms/FormModel' import { ValidationError } from '../forms/validator' -import { TestIdLayer } from '../../appstate/useTestId' export type UusiOpiskeluoikeudenTilaModalProps = CommonProps<{ @@ -87,15 +87,6 @@ const useInitialOpiskelujaksoForm = ( } }, [opiskeluoikeusjaksoClass]) -function hasRahoitus(x: string) { - switch (x) { - case VapaanSivistystyönJotpaKoulutuksenOpiskeluoikeusjakso.className: - return true - default: - return false - } -} - type P = { form: FormModel> opiskeluoikeusjaksoClass: ClassOf @@ -198,6 +189,9 @@ export const UusiOpiskeluoikeudenTilaModal = ( } }, [form.state, props]) + const schema = useSchema(props.opiskeluoikeusjaksoClass) + const hasRahoitus = hasProp(schema, 'opintojenRahoitus') + return ( ( /> - {hasRahoitus(props.opiskeluoikeusjaksoClass) && ( + {hasRahoitus && ( + +export const isRahoituksellinenOpiskeluoikeusjakso = ( + x: Opiskeluoikeusjakso +): x is RahoituksellinenOpiskeluoikeusjakso => + isAikuistenPerusopetuksenOpiskeluoikeusjakso(x) || + isAmmatillinenOpiskeluoikeusjakso(x) || + isDIAOpiskeluoikeusjakso(x) || + isEuropeanSchoolOfHelsinkiOpiskeluoikeusjakso(x) || + isInternationalSchoolOpiskeluoikeusjakso(x) || + isLukionOpiskeluoikeusjakso(x) || + isMuunKuinSäännellynKoulutuksenOpiskeluoikeudenJakso(x) || + isTutkintokoulutukseenValmentavanOpiskeluoikeusjakso(x) || + isVapaanSivistystyönJotpaKoulutuksenOpiskeluoikeusjakso(x) || + isLukionOpiskeluoikeusjakso(x)