Skip to content
This repository has been archived by the owner on May 15, 2024. It is now read-only.

Commit

Permalink
Merge pull request #229 from navikt/dev
Browse files Browse the repository at this point in the history
Prodsetting
  • Loading branch information
matiasvinjevoll authored Oct 6, 2021
2 parents 308432d + af3fa64 commit ce02605
Show file tree
Hide file tree
Showing 10 changed files with 124 additions and 77 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.veilarbmaofs {
.alert-hovedmal-vedtaksstotte .alertstripe__tekst {
max-width: 100%;
}

}
127 changes: 74 additions & 53 deletions src/components/paneler/innhold/oppfolging/oppfolging-panel-innhold.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,32 @@ import EMDASH from '../../../../utils/emdash';
import Grid from '../../../felles/grid';
import { useAppStore } from '../../../../stores/app-store';
import {
useFetchInnsatsbehov,
useFetchOppfolgingsstatus,
useFetchPersonalia,
useFetchVeileder
useFetchTilgorerBrukerUtrulletKontorForVedtaksstotte,
useFetchFeatureToggle,
useFetchInnsatsbehov,
useFetchOppfolgingsstatus,
useFetchPersonalia,
useFetchVeileder
} from '../../../../rest/api';
import { Laster } from '../../../felles/fetch';
import { isPending } from '@nutgaard/use-fetch';
import { hasData } from '../../../../rest/utils';
import {
hentGeografiskEnhetTekst,
hentOppfolgingsEnhetTekst,
hentVeilederTekst,
mapHovedmalTilTekst,
mapInnsatsgruppeTilTekst,
mapServicegruppeTilTekst
hentGeografiskEnhetTekst,
hentOppfolgingsEnhetTekst,
hentVeilederTekst,
mapHovedmalTilTekst,
mapInnsatsgruppeTilTekst,
mapServicegruppeTilTekst
} from '../../../../utils/text-mapper';
import { erInnsatsgruppe } from '../../../../utils/arena-status-utils';
import { OrNothing } from '../../../../utils/felles-typer';
import { Hovedmal, Innsatsgruppe } from '../../../../rest/datatyper/innsatsbehov';
import { ArenaHovedmalKode, ArenaServicegruppeKode } from '../../../../rest/datatyper/oppfolgingsstatus';
import { INNSATSGRUPPE_OG_HOVEDMAL_FRA_VEDTAKSSTOTTE } from '../../../../rest/datatyper/feature';
import { AlertStripeInfo } from 'nav-frontend-alertstriper';
import './oppfolging-panel-innhold.less';
import Show from '../../../felles/show';

const OppfolgingPanelInnhold = () => {
const { fnr } = useAppStore();
Expand All @@ -29,6 +38,8 @@ const OppfolgingPanelInnhold = () => {
const innsatsbehov = useFetchInnsatsbehov(fnr);
const veilederId = hasData(oppfolgingsstatus) ? oppfolgingsstatus.data.veilederId : null;
const veileder = useFetchVeileder(veilederId, { lazy: true });
const features = useFetchFeatureToggle();
const tilhorerBrukerUtrulletKontorForVedtaksstotte = useFetchTilgorerBrukerUtrulletKontorForVedtaksstotte(fnr);

useEffect(() => {
if (!hasData(veileder) && veilederId != null) {
Expand All @@ -47,51 +58,61 @@ const OppfolgingPanelInnhold = () => {
const innsatsbehovData = hasData(innsatsbehov) ? innsatsbehov.data : null;
const oppfolgingsstatusData = hasData(oppfolgingsstatus) ? oppfolgingsstatus.data : null;

let servicegruppe: OrNothing<ArenaServicegruppeKode> = oppfolgingsstatusData?.servicegruppe;
let innsatsgruppe: OrNothing<Innsatsgruppe | ArenaServicegruppeKode> = oppfolgingsstatusData?.servicegruppe;
let hovedmal: OrNothing<Hovedmal | ArenaHovedmalKode> = oppfolgingsstatusData?.hovedmaalkode;

let servicegruppe = oppfolgingsstatusData?.servicegruppe;
let innsatsgruppe = innsatsbehovData?.innsatsgruppe;
let hovedmal = innsatsbehovData?.hovedmal;
// Vi bruker servicegruppe fra Arena som master for om vi skal vise servicegruppe eller innsatsgruppe + hovedmål:
// Hvis servicegruppe fra Arena er en innsatsgruppe, så viser vi innsatsgruppe + hovedmål fra vedtaksstøtte.
// Ellers viser vi bare servicegruppe fra Arena, siden det da har blitt satt en servicegruppe i Arena som er
// nyere enn innsagsgruppe + hovedmål fra vedtaksstøtte.
if (erInnsatsgruppe(oppfolgingsstatusData?.servicegruppe)) {
servicegruppe = undefined;
} else {
innsatsgruppe = undefined;
hovedmal = undefined;
}
if (hentInnsatsgruppeOgHovedmalFraVedtaksstotte() && erInnsatsgruppe(servicegruppe)) {
// Vi bruker servicegruppe fra Arena som master for om vi skal vise servicegruppe eller innsatsgruppe + hovedmål
// fra vedtaksstøtte dersom det er togglet på. Hvis servicegruppe fra Arena er en innsatsgruppe, så viser vi
// innsatsgruppe + hovedmål fra vedtaksstøtte. Hvis servicegruppe fra Arena ikke er en innsatsgruppe, så viser
// vi ikke innsatsgruppe og hovedmål fra vedtaksstøtte, siden bruker da har fått en nyere status i Arena.
innsatsgruppe = innsatsbehovData?.innsatsgruppe;
hovedmal = innsatsbehovData?.hovedmal;
}

function hentInnsatsgruppeOgHovedmalFraVedtaksstotte() {
return hasData(features) && features.data[INNSATSGRUPPE_OG_HOVEDMAL_FRA_VEDTAKSSTOTTE];
}

return (
<Grid columns={4} gap="0.5rem">
<InformasjonsbolkEnkel
header="Servicegruppe"
value={mapServicegruppeTilTekst(servicegruppe)}
defaultValue={EMDASH}
/>
<InformasjonsbolkEnkel
header="Innsatsgruppe"
value={mapInnsatsgruppeTilTekst(innsatsgruppe)}
defaultValue={EMDASH}
/>
<InformasjonsbolkEnkel header="Veileder" value={hentVeilederTekst(veilederData)} defaultValue={EMDASH} />
<InformasjonsbolkEnkel
header="Geografisk enhet"
value={hentGeografiskEnhetTekst(personaliaData)}
defaultValue={EMDASH}
/>
<InformasjonsbolkEnkel
header="Oppfølgingsenhet"
value={hentOppfolgingsEnhetTekst(oppfolgingsstatusData)}
defaultValue={EMDASH}
/>
<InformasjonsbolkEnkel
header="Hovedmål"
value={mapHovedmalTilTekst(hovedmal)}
defaultValue={EMDASH}
/>
</Grid>
);
return (
<>
<Grid columns={4} gap="0.5rem">
<InformasjonsbolkEnkel
header="Servicegruppe"
value={mapServicegruppeTilTekst(servicegruppe)}
defaultValue={EMDASH}
/>
<InformasjonsbolkEnkel
header="Innsatsgruppe"
value={mapInnsatsgruppeTilTekst(innsatsgruppe)}
defaultValue={EMDASH}
/>
<InformasjonsbolkEnkel header="Veileder" value={hentVeilederTekst(veilederData)} defaultValue={EMDASH}/>
<InformasjonsbolkEnkel
header="Geografisk enhet"
value={hentGeografiskEnhetTekst(personaliaData)}
defaultValue={EMDASH}
/>
<InformasjonsbolkEnkel
header="Oppfølgingsenhet"
value={hentOppfolgingsEnhetTekst(oppfolgingsstatusData)}
defaultValue={EMDASH}
/>
<InformasjonsbolkEnkel
header="Hovedmål"
value={mapHovedmalTilTekst(hovedmal)}
defaultValue={EMDASH}
/>
</Grid>
<Show if={hasData(tilhorerBrukerUtrulletKontorForVedtaksstotte) ? tilhorerBrukerUtrulletKontorForVedtaksstotte.data : false}>
<AlertStripeInfo className="alert-hovedmal-vedtaksstotte">
Hovedmål fra oppfølgingsvedtak fattet i Modia vises foreløpig ikke her. For å se dette, gå til fanen
"Oppfølgingsvedtak".
</AlertStripeInfo>
</Show>
</>
);
};

export default OppfolgingPanelInnhold;
11 changes: 2 additions & 9 deletions src/components/paneler/innhold/ytelser/ytelser-panel-innhold.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@ import { VedtakType } from '../../../../rest/datatyper/ytelse';
import { VEDTAKSSTATUSER } from '../../../../utils/konstanter';
import { useFetchInnsatsbehov, useFetchOppfolgingsstatus, useFetchYtelser } from '../../../../rest/api';
import { Feilmelding, Laster, NoData } from '../../../felles/fetch';
import { isPending, hasError } from '@nutgaard/use-fetch';
import { hasError, isPending } from '@nutgaard/use-fetch';
import { hasData } from '../../../../rest/utils';
import { mapInnsatsgruppeTilTekst } from '../../../../utils/text-mapper';
import EMDASH from '../../../../utils/emdash';
import InformasjonsbolkEnkel from '../../../felles/informasjonsbolk-enkel';
import { erInnsatsgruppe } from '../../../../utils/arena-status-utils';

const getVedtakForVisning = (vedtaksliste: VedtakType[]) => {
return vedtaksliste.filter(vedtak => vedtak.status === VEDTAKSSTATUSER.iverksatt);
Expand All @@ -33,19 +32,13 @@ const YtelserPanelInnhold = () => {

const { vedtaksliste } = ytelser.data;
const aktivVedtak = getVedtakForVisning(vedtaksliste);
const innsatsbehovData = hasData(innsatsbehov) ? innsatsbehov.data : null;
const oppfolgingsstatusData = hasData(oppfolgingsstatus) ? oppfolgingsstatus.data : null;

let innsatsgruppe = innsatsbehovData?.innsatsgruppe
if (!erInnsatsgruppe(oppfolgingsstatusData?.servicegruppe)) {
innsatsgruppe = undefined;
}

return (
<Grid columns={1} gap="0.5rem">
<InformasjonsbolkEnkel
header="Innsatsgruppe"
value={mapInnsatsgruppeTilTekst(innsatsgruppe)}
value={mapInnsatsgruppeTilTekst(oppfolgingsstatusData?.servicegruppe)}
defaultValue={EMDASH}
/>
<Vedtaksliste vedtaksliste={aktivVedtak}/>
Expand Down
11 changes: 9 additions & 2 deletions src/mock/api/veilarbpersonflatefs.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
import { rest } from 'msw';
import { RequestHandlersList } from 'msw/lib/types/setupWorker/glossary';
import {Features, PERSONALIA_DATA_FRA_PDL, PERSONALIA_DATA_FRA_TPS, SPOR_OM_TILBAKEMELDING} from "../../rest/datatyper/feature";
import {
Features,
PERSONALIA_DATA_FRA_PDL,
PERSONALIA_DATA_FRA_TPS,
SPOR_OM_TILBAKEMELDING,
INNSATSGRUPPE_OG_HOVEDMAL_FRA_VEDTAKSSTOTTE,
} from '../../rest/datatyper/feature';

const features: Features = {
[PERSONALIA_DATA_FRA_PDL]: true,
[PERSONALIA_DATA_FRA_TPS]: false,
[SPOR_OM_TILBAKEMELDING]: true
[SPOR_OM_TILBAKEMELDING]: true,
[INNSATSGRUPPE_OG_HOVEDMAL_FRA_VEDTAKSSTOTTE]: false
};

export const veilarbpersonflatefsHandlers: RequestHandlersList = [
Expand Down
6 changes: 6 additions & 0 deletions src/mock/api/veilarbvedtaksstotte.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,15 @@ const innsatsbehov: Innsatsbehov = {
hovedmal: Hovedmal.BEHOLDE_ARBEID
};

const tilhorerBrukerUtrulletKontor = false;

export const veilarbvedtaksstotteHandlers: RequestHandlersList = [
rest.get('/veilarbvedtaksstotte/api/innsatsbehov', (req, res, ctx) => {
return res(ctx.delay(500), ctx.json(innsatsbehov));
}),

rest.get('/veilarbvedtaksstotte/api/utrulling/tilhorerBrukerUtrulletKontor', (req, res, ctx) => {
return res(ctx.delay(500), ctx.json(tilhorerBrukerUtrulletKontor));
}),
];

4 changes: 4 additions & 0 deletions src/rest/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,7 @@ export const useFetchInnsatsbehov = (fnr: string) =>
const toggles = TOGGLES.map(element => 'feature=' + element).join('&');

export const useFetchFeatureToggle = () => useFetch<Features>(`/veilarbpersonflatefs/api/feature?${toggles}`, headers);

export function useFetchTilgorerBrukerUtrulletKontorForVedtaksstotte(fnr: string) {
return useFetch<boolean>(`/veilarbvedtaksstotte/api/utrulling/tilhorerBrukerUtrulletKontor?fnr=${fnr}`, headers);
}
5 changes: 4 additions & 1 deletion src/rest/datatyper/feature.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
export const PERSONALIA_DATA_FRA_PDL = 'veilarbmaofs.personalia.pdl.persondata';
export const PERSONALIA_DATA_FRA_TPS = 'veilarbmaofs.personalia.tps.persondata';
export const SPOR_OM_TILBAKEMELDING = 'veilarbmaofs.spor.om.tilbakemelding';
export const INNSATSGRUPPE_OG_HOVEDMAL_FRA_VEDTAKSSTOTTE = 'veilarbmaofs.hent_innsatsgruppe_og_hovedmal_fra_vedtaksstotte';

export const TOGGLES = [
PERSONALIA_DATA_FRA_PDL,
PERSONALIA_DATA_FRA_TPS,
SPOR_OM_TILBAKEMELDING
SPOR_OM_TILBAKEMELDING,
INNSATSGRUPPE_OG_HOVEDMAL_FRA_VEDTAKSSTOTTE
];

export interface Features {
[PERSONALIA_DATA_FRA_PDL]: boolean;
[PERSONALIA_DATA_FRA_TPS]: boolean;
[SPOR_OM_TILBAKEMELDING]: boolean;
[INNSATSGRUPPE_OG_HOVEDMAL_FRA_VEDTAKSSTOTTE]: boolean;
}
12 changes: 6 additions & 6 deletions src/rest/datatyper/oppfolgingsstatus.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ export interface OppfolgingEnhet {
navn: StringOrNothing;
enhetId: StringOrNothing;
}
export type Formidlingsgruppe = 'ARBS' | 'IARBS' | 'ISERV' | 'PARBS' | 'RARBS';
export type Servicegruppe = 'BATT' | 'BFORM' | 'BKART' | 'IKVAL' | 'IVURD' | 'KAP11' | 'OPPFI' | 'VARIG' | 'VURDI' | 'VURDU';
export type Hovedmaalgruppe = 'OKEDELT' | 'SKAFFEA ' | 'BEHOLDEA';
export type ArenaFormidlingsgruppeKode = 'ARBS' | 'IARBS' | 'ISERV' | 'PARBS' | 'RARBS';
export type ArenaServicegruppeKode = 'BATT' | 'BFORM' | 'BKART' | 'IKVAL' | 'IVURD' | 'KAP11' | 'OPPFI' | 'VARIG' | 'VURDI' | 'VURDU';
export type ArenaHovedmalKode = 'OKEDELT' | 'SKAFFEA' | 'BEHOLDEA';

export interface OppfolgingsstatusData {
oppfolgingsenhet: OppfolgingEnhet;
veilederId: StringOrNothing;
formidlingsgruppe: OrNothing<Formidlingsgruppe>;
servicegruppe: OrNothing<Servicegruppe>;
hovedmaalkode: OrNothing<Hovedmaalgruppe>;
formidlingsgruppe: OrNothing<ArenaFormidlingsgruppeKode>;
servicegruppe: OrNothing<ArenaServicegruppeKode>;
hovedmaalkode: OrNothing<ArenaHovedmalKode>;
}
4 changes: 2 additions & 2 deletions src/utils/arena-status-utils.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { OppfolgingsstatusData, Servicegruppe } from '../rest/datatyper/oppfolgingsstatus';
import { OppfolgingsstatusData, ArenaServicegruppeKode } from '../rest/datatyper/oppfolgingsstatus';
import { OrNothing } from './felles-typer';

export function erBrukerSykmeldt(oppfolging: OppfolgingsstatusData): boolean {
return oppfolging.formidlingsgruppe === 'IARBS' && oppfolging.servicegruppe === 'VURDI';
}

export function erInnsatsgruppe(kvalifiseringsgruppe: OrNothing<Servicegruppe>) {
export function erInnsatsgruppe(kvalifiseringsgruppe: OrNothing<ArenaServicegruppeKode>) {
switch (kvalifiseringsgruppe) {
case 'IKVAL':
case 'BATT':
Expand Down
15 changes: 11 additions & 4 deletions src/utils/text-mapper.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { Hovedmal, Innsatsgruppe } from '../rest/datatyper/innsatsbehov';
import EMDASH from './emdash';
import { OppfolgingsstatusData, Servicegruppe } from '../rest/datatyper/oppfolgingsstatus';
import { ArenaHovedmalKode, OppfolgingsstatusData, ArenaServicegruppeKode } from '../rest/datatyper/oppfolgingsstatus';
import { OrNothing, StringOrNothing } from './felles-typer';
import { PersonaliaInfo } from '../rest/datatyper/personalia';
import { VeilederData } from '../rest/datatyper/veileder';

export function mapServicegruppeTilTekst(servicegruppe: OrNothing<Servicegruppe>): string {
export function mapServicegruppeTilTekst(servicegruppe: OrNothing<ArenaServicegruppeKode>): string {
switch (servicegruppe) {
case 'IVURD':
return 'Ikke vurdert';
Expand All @@ -24,30 +24,37 @@ export function mapServicegruppeTilTekst(servicegruppe: OrNothing<Servicegruppe>
}
}

export function mapHovedmalTilTekst(hovedmal: OrNothing<Hovedmal>): string {
export function mapHovedmalTilTekst(hovedmal: OrNothing<Hovedmal | ArenaHovedmalKode>): string {
switch (hovedmal) {
case Hovedmal.BEHOLDE_ARBEID:
case 'BEHOLDEA':
return 'Beholde arbeid';
case Hovedmal.OKE_DELTAKELSE:
case 'OKEDELT':
return 'Øke deltakelse eller mål om arbeid';
case Hovedmal.SKAFFE_ARBEID:
case 'SKAFFEA':
return 'Skaffe arbeid';
default:
return EMDASH;
}
}

export function mapInnsatsgruppeTilTekst(innsatsgruppe: OrNothing<Innsatsgruppe>): string {
export function mapInnsatsgruppeTilTekst(innsatsgruppe: OrNothing<Innsatsgruppe | ArenaServicegruppeKode>): string {
switch (innsatsgruppe) {
case Innsatsgruppe.STANDARD_INNSATS:
case 'IKVAL':
return 'Standardinnsats';
case Innsatsgruppe.SITUASJONSBESTEMT_INNSATS:
case 'BFORM':
return 'Situasjonsbestemt innsats';
case Innsatsgruppe.SPESIELT_TILPASSET_INNSATS:
case 'BATT':
return 'Spesielt tilpasset innsats';
case Innsatsgruppe.GRADERT_VARIG_TILPASSET_INNSATS:
return 'Gradert varig tilpasset innsats';
case Innsatsgruppe.VARIG_TILPASSET_INNSATS:
case 'VARIG':
return 'Varig tilpasset innsats';
default:
return EMDASH;
Expand Down

0 comments on commit ce02605

Please sign in to comment.