Skip to content

Commit

Permalink
Näytä opintojen rahoitus ib-opiskeluoikeusjaksoille
Browse files Browse the repository at this point in the history
  • Loading branch information
ilkkahanninen committed Jan 2, 2025
1 parent 6fd5232 commit 23762b3
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 35 deletions.
24 changes: 2 additions & 22 deletions web/app/components-v2/opiskeluoikeus/OpiskeluoikeudenTila.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -105,8 +86,7 @@ export const OpiskeluoikeudenTilaView = <T extends OpiskeluoikeudenTila>(
<TestIdText id="tila">
<span>{t(jakso.tila.nimi)}</span>
<span>
{isVapaanSivistystyönOpiskeluoikeusjakso(jakso) &&
isRahoituksellinenOpiskeluoikeusjakso(jakso) &&
{isRahoituksellinenOpiskeluoikeusjakso(jakso) &&
` (${t(jakso.opintojenRahoitus?.nimi)})`}
</span>
</TestIdText>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand All @@ -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<T extends Opiskeluoikeusjakso> =
CommonProps<{
Expand Down Expand Up @@ -87,15 +87,6 @@ const useInitialOpiskelujaksoForm = <T extends Opiskeluoikeusjakso>(
}
}, [opiskeluoikeusjaksoClass])

function hasRahoitus(x: string) {
switch (x) {
case VapaanSivistystyönJotpaKoulutuksenOpiskeluoikeusjakso.className:
return true
default:
return false
}
}

type P<T extends Opiskeluoikeusjakso> = {
form: FormModel<UusiOpiskeluoikeusjakso<T>>
opiskeluoikeusjaksoClass: ClassOf<T>
Expand Down Expand Up @@ -198,6 +189,9 @@ export const UusiOpiskeluoikeudenTilaModal = <T extends Opiskeluoikeusjakso>(
}
}, [form.state, props])

const schema = useSchema(props.opiskeluoikeusjaksoClass)
const hasRahoitus = hasProp(schema, 'opintojenRahoitus')

return (
<Modal
{...common(props, ['UusiOpiskeluoikeudenTilaModal'])}
Expand Down Expand Up @@ -234,7 +228,7 @@ export const UusiOpiskeluoikeudenTilaModal = <T extends Opiskeluoikeusjakso>(
/>
</Label>

{hasRahoitus(props.opiskeluoikeusjaksoClass) && (
{hasRahoitus && (
<OpiskeluoikeudenTilanRahoitusField
form={form}
enableValmistuminen={props.enableValmistuminen}
Expand Down
4 changes: 2 additions & 2 deletions web/app/ib/IBEditor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ import { match } from '../util/patternmatch'
import { OsasuoritusOf } from '../util/schema'
import { useBooleanState } from '../util/useBooleanState'
import {
import { UusiIBTutkintoOppiaineDialog } from './dialogs/UusiIBTutkintoOppiaineDialog'
import { UusiIBTutkintoOsasuoritusDialog } from './dialogs/UusiIBTutkintoOsasuoritusDialog'
ibKoulutusNimi,
IBPäätasonSuoritusTiedot
} from './IBPaatasonSuoritusTiedot'
import { UusiIBTutkintoOppiaineDialog } from './dialogs/UusiIBTutkintoOppiaineDialog'
import { UusiIBTutkintoOsasuoritusDialog } from './dialogs/UusiIBTutkintoOsasuoritusDialog'
import { UusiPreIB2015OppiaineDialog } from './dialogs/UusiPreIB2015OppiaineDialog'
import { UusiPreIB2015OsasuoritusDialog } from './dialogs/UusiPreIB2015OsasuoritusDialog'
import { UusiPreIB2019OppiaineDialog } from './dialogs/UusiPreIB2019OppiaineDialog'
Expand Down
29 changes: 29 additions & 0 deletions web/app/util/opiskeluoikeusjakso.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { isAikuistenPerusopetuksenOpiskeluoikeusjakso } from '../types/fi/oph/koski/schema/AikuistenPerusopetuksenOpiskeluoikeusjakso'
import { isAmmatillinenOpiskeluoikeusjakso } from '../types/fi/oph/koski/schema/AmmatillinenOpiskeluoikeusjakso'
import { isDIAOpiskeluoikeusjakso } from '../types/fi/oph/koski/schema/DIAOpiskeluoikeusjakso'
import { isEuropeanSchoolOfHelsinkiOpiskeluoikeusjakso } from '../types/fi/oph/koski/schema/EuropeanSchoolOfHelsinkiOpiskeluoikeusjakso'
import { isInternationalSchoolOpiskeluoikeusjakso } from '../types/fi/oph/koski/schema/InternationalSchoolOpiskeluoikeusjakso'
import { isLukionOpiskeluoikeusjakso } from '../types/fi/oph/koski/schema/LukionOpiskeluoikeusjakso'
import { isMuunKuinSäännellynKoulutuksenOpiskeluoikeudenJakso } from '../types/fi/oph/koski/schema/MuunKuinSaannellynKoulutuksenOpiskeluoikeudenJakso'
import { Opiskeluoikeusjakso } from '../types/fi/oph/koski/schema/Opiskeluoikeusjakso'
import { isTutkintokoulutukseenValmentavanOpiskeluoikeusjakso } from '../types/fi/oph/koski/schema/TutkintokoulutukseenValmentavanOpiskeluoikeusjakso'
import { isVapaanSivistystyönJotpaKoulutuksenOpiskeluoikeusjakso } from '../types/fi/oph/koski/schema/VapaanSivistystyonJotpaKoulutuksenOpiskeluoikeusjakso'

export type RahoituksellinenOpiskeluoikeusjakso = Extract<
Opiskeluoikeusjakso,
{ opintojenRahoitus?: any }
>

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)

0 comments on commit 23762b3

Please sign in to comment.