Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Opetushallitus/koski
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 5b22ada3521d9e74b62340a35271a71eb0080645
Choose a base ref
..
head repository: Opetushallitus/koski
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 4d920678fe2101e8547a15b911338c7f8ec350c2
Choose a head ref
14 changes: 13 additions & 1 deletion web/app/components-v2/controls/Select.tsx
Original file line number Diff line number Diff line change
@@ -6,7 +6,9 @@ import { pipe } from 'fp-ts/lib/function'
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import {
KoodistokoodiviiteKoodistonNimellä,
KoodistokoodiviiteKoodistonNimelläOrd
KoodistokoodiviiteKoodistonNimelläOrd,
useKoodisto,
useKoodistot
} from '../../appstate/koodisto'
import { Peruste } from '../../appstate/peruste'
import {
@@ -434,6 +436,16 @@ const useSelectState = <T,>(props: SelectProps<T>) => {

// Exported utils

export const useKoodistoOptions = <T extends string>(
...koodistoUris: T[]
): SelectOption<Koodistokoodiviite<T>>[] => {
const koodisto = useKoodistot(...koodistoUris)
return useMemo(
() => (koodisto ? groupKoodistoToOptions(koodisto) : []),
[koodisto]
) as SelectOption<Koodistokoodiviite<T>>[]
}

export const optionGroup = <T,>(
label: string,
children: SelectOption<T>[]
9 changes: 9 additions & 0 deletions web/app/components-v2/opiskeluoikeus/OppiaineTable.tsx
Original file line number Diff line number Diff line change
@@ -439,16 +439,23 @@ const KurssiDetails: React.FC<KurssiTooltipProps> = ({ kurssi, id }) => {
<KeyValueRow localizableLabel="Nimi">
{t(kurssi.koulutusmoduuli.tunniste.nimi)}
</KeyValueRow>

<KeyValueRow localizableLabel="Laajuus">
{kurssi.koulutusmoduuli.laajuus?.arvo}{' '}
{t(kurssi.koulutusmoduuli.laajuus?.yksikkö.nimi)}
</KeyValueRow>

<KeyValueRow localizableLabel="Kurssin tyyppi">
{!isValinnaisuus(kurssi.koulutusmoduuli) ||
kurssi.koulutusmoduuli.pakollinen
? 'Pakollinen'
: 'Valinnainen'}
</KeyValueRow>

<KeyValueRow localizableLabel="Suorituskieli">
{t(kurssi.suorituskieli?.nimi)}
</KeyValueRow>

{kurssi.arviointi && (
<KeyValueRow localizableLabel="Arviointi">
{kurssi.arviointi.map((arviointi, index) => (
@@ -466,13 +473,15 @@ const KurssiDetails: React.FC<KurssiTooltipProps> = ({ kurssi, id }) => {
))}
</KeyValueRow>
)}

{isLukionKurssinSuoritus2015(kurssi) && (
<>
{kurssi.tunnustettu && (
<KeyValueRow localizableLabel="Tunnustettu">
{t(kurssi.tunnustettu.selite)}
</KeyValueRow>
)}

<KeyValueRow localizableLabel="Lisätiedot">
{pipe(
[
45 changes: 32 additions & 13 deletions web/app/ib/IBEditor.tsx
Original file line number Diff line number Diff line change
@@ -34,8 +34,11 @@ import {
ibKoulutusNimi,
IBPäätasonSuoritusTiedot
} from './IBPaatasonSuoritusTiedot'
import { AddIBOsasuoritusDialog } from './dialogs/AddIBOsasuoritusDialog'
import { UusiPreIB2015OsasuoritusDialog } from './dialogs/UusiPreIB2015OsasuoritusDialog'
import { UusiPreIB2015OppiaineDialog } from './dialogs/UusiPreIB2015OppiaineDialog'
import { UusiPreIB2019OppiaineDialog } from './dialogs/UusiPreIB2019OppiaineDialog'
import { OsasuoritusOf } from '../util/schema'
import { UusiPreIB2019OsasuoritusDialog } from './dialogs/UusiPreIB2019OsasuoritusDialog'

export type IBEditorProps = AdaptedOpiskeluoikeusEditorProps<IBOpiskeluoikeus>

@@ -70,7 +73,7 @@ const IBPäätasonSuoritusEditor: React.FC<
const fillKoodistot = useKoodistoFiller()

const addOppiaine = useCallback(
async (oppiaine: PreIBSuorituksenOsasuoritus2015) => {
async (oppiaine: OsasuoritusOf<IBPäätasonSuoritus>) => {
form.modify(
...päätasonSuoritus.pathTokens,
'osasuoritukset'
@@ -109,23 +112,32 @@ const IBPäätasonSuoritusEditor: React.FC<
<OppiaineTable
selectedSuoritus={päätasonSuoritus}
form={form}
addOsasuoritusDialog={AddIBOsasuoritusDialog as any}
addOsasuoritusDialog={match(päätasonSuoritus.suoritus.koulutusmoduuli)
.isClass(
PreIBKoulutusmoduuli2015,
() => UusiPreIB2015OsasuoritusDialog
)
.isClass(
PreIBKoulutusmoduuli2019,
() => UusiPreIB2019OsasuoritusDialog
)
.get()}
/>

{kurssejaYhteensä !== null && (
<footer className="IBPäätasonSuoritusEditor__footer">
{form.editMode && (
<RaisedButton onClick={showAddOppiaineDialog}>
{t('Lisää oppiaine')}
</RaisedButton>
)}
<footer className="IBPäätasonSuoritusEditor__footer">
{form.editMode && (
<RaisedButton onClick={showAddOppiaineDialog}>
{t('Lisää oppiaine')}
</RaisedButton>
)}
{kurssejaYhteensä !== null && (
<div className="IBPäätasonSuoritusEditor__yhteensä">
{t('Suoritettujen kurssien määrä yhteensä')}
{': '}
{kurssejaYhteensä}
</div>
</footer>
)}
)}
</footer>

{addOppiaineVisible &&
organisaatio &&
@@ -138,7 +150,14 @@ const IBPäätasonSuoritusEditor: React.FC<
organisaatioOid={organisaatio?.oid}
/>
))
.isClass(PreIBKoulutusmoduuli2019, () => <p>TODO</p>)
.isClass(PreIBKoulutusmoduuli2019, () => (
<UusiPreIB2019OppiaineDialog
päätasonSuoritus={päätasonSuoritus.suoritus}
onClose={hideAddOppiaineDialog}
onSubmit={addOppiaine}
organisaatioOid={organisaatio?.oid}
/>
))
.isClass(IBTutkinto, () => <p>TODO</p>)

Check warning on line 161 in web/app/ib/IBEditor.tsx

GitHub Actions / 👀 / Lint Koski

Missing JSX expression container around literal string: "TODO"
.getOrNull()}
</EditorContainer>
4 changes: 2 additions & 2 deletions web/app/ib/dialogs/UusiPreIB2015OppiaineDialog.tsx
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ import {
useAineryhmäOptions,
useKielivalikoimaOptions,
useMatematiikanOppimääräOptions,
usePreIBTunnisteOptions,
usePreIB2015TunnisteOptions,
useÄidinkielenKieliOptions,
UusiPaikallinenOppiaineKey
} from '../state/options'
@@ -61,7 +61,7 @@ export const UusiPreIB2015OppiaineDialog: React.FC<
props.organisaatioOid,
'paikallinenlukionoppiaine'
)
const tunnisteet = usePreIBTunnisteOptions(
const tunnisteet = usePreIB2015TunnisteOptions(
preIB2015Oppiainekategoriat,
props.päätasonSuoritus,
paikallisetOppiaineet
Original file line number Diff line number Diff line change
@@ -34,21 +34,18 @@ import { PaikallinenLukionKurssi2015 } from '../../types/fi/oph/koski/schema/Pai
import { PreIBKurssinSuoritus2015 } from '../../types/fi/oph/koski/schema/PreIBKurssinSuoritus2015'
import { koodiviiteId } from '../../util/koodisto'
import { DialogSelect } from '../../uusiopiskeluoikeus/components/DialogSelect'
import {
createPreIBKurssinSuoritus2015,
IBOsasuoritusTunniste
} from '../oppiaineet/preIBKurssi2015'
import { PreIB2015OsasuoritusTunniste } from '../oppiaineet/preIBKurssi2015'
import {
useLukiokurssinTyypit,
useOppiaineenKurssiOptions
} from '../state/options'
import {
useIBOsasuoritusState,
usePreIB2015OsasuoritusState,
UusiIBKurssiKey,
UusiPaikallinenLukionKurssiKey
} from '../state/osasuoritusState'
} from '../state/preIB2015Kurssi'

export const AddIBOsasuoritusDialog: AddOppiaineenOsasuoritusDialog<
export const UusiPreIB2015OsasuoritusDialog: AddOppiaineenOsasuoritusDialog<
PreIBKurssinSuoritus2015
> = ({ onAdd, ...props }) => {
const koulutus = props.oppiaine.koulutusmoduuli
@@ -66,7 +63,7 @@ export const AddIBOsasuoritusDialog: AddOppiaineenOsasuoritusDialog<
remove: removeIBKurssi
} = usePreferences<IBKurssi>(props.organisaatioOid, 'ibkurssi')

const state = useIBOsasuoritusState(createPreIBKurssinSuoritus2015)
const state = usePreIB2015OsasuoritusState()

const valtakunnallisetTunnisteetOptions =
useOppiaineenKurssiOptions(
@@ -122,7 +119,7 @@ export const AddIBOsasuoritusDialog: AddOppiaineenOsasuoritusDialog<
state.kuvaus.set(localize('todo: kaiva kuvaus tähän'))
} else if (option?.value) {
state.uusiTyyppi.set(undefined)
state.tunniste.set(option.value as IBOsasuoritusTunniste)
state.tunniste.set(option.value as PreIB2015OsasuoritusTunniste)
}
},
[state.kuvaus, state.tunniste, state.uusiTyyppi]
Loading