Modul 4

Legge til kodelister manuelt, programatisk og dynamisk

I denne modulen skal du utvide applikasjonen du har laget i foregående moduler for å støtte enda fler av kravene til Sogndal kommune.

Temaer som dekkes i denne modulen:

  • Kodelister/Options
  • Dynamikk

Oppgaver

I mange applikasjoner er det behov for å gi brukeren et sett med svaralternativer for et datafelt. Svaralternativene refereres til som kodelister eller options.

I Altinn Studio er dette støttet i form av radioknapper, avkrysningsbokser og nedtrekkslister.

Det er tre måter å sette opp kodelister i Altinn i dag

  1. Direkte på komponenten via Altinn Studio eller manuelt i FormLayout.json*
  2. I en statisk json-fil som referes til i komponenten
  3. Programmatisk i applikasjonslogikken

* kun tilgjengelig på radioknapp og avkrysningsboks

I denne oppgaven skal du få prøve deg på alle tre måtene å sette opp en kodeliste på.

Sogndal kommune ønsker å samle inn opplysninger om tilflytterens arbeidsituasjon. Blant dataen de ønsker å samle inn er hvilken sektor og bransje tilflytter jobber i, og hvor mange år tilflytter har vært yrkesaktiv.

I Altinn Studio

  1. Opprett en ny skjemaside for å samle inn data om arbeidsforhold

  2. Sett opp en radioknapp-komponent for Sektor opprett svaralternativene Offentlig og Privat manuelt.

  3. Sett opp en avkrysningsboks for Bransje. Velg Kodeliste som metode for å legge til avkrysningsboker og legg inn Kodeliste ID industry.

    Resten av oppsettet for denne komponenten gjøres lokalt.

  4. Sett opp en nedrekksliste for År i arbeidslivet. Legg inn Kodeliste ID years-in-work-force.

    Resten av oppsettet for denne komponenten gjøres lokalt.

  5. Commit og Push endringene dine til master, og Pull endringene i ditt lokale utviklingsmiljø.

I lokalt utviklingsmiljø

  1. Sogndal kommune har opprettet en kodeliste for bransjer. Last ned filen og plasser denne på rett sted i repoet.

  2. Sett opp verdiene i kodelisten for År i arbeidslivet direkte i en ny C#-klasse.

    Svaralternativer:

    Label Dataverdi
    0 - 5 år 0-5
    5 - 10 år 5-10
    10 - 20 år 10-20
    20+ år 20+
  3. Verifiser at alle kodelister fungerer som forventet.

Nyttig dokumentasjon

Forståelsessjekk

  • Hva er forskjellen på statiske og dynamiske svaralternativer?
  • Hva vil være et bruksområde for sikrede, dynamiske svaralternativer?

I noen tilfeller kan verdiene som skal vises fram i en kodeliste være knyttet til et annet felt i skjemaet.

Sogndal kommune ønsker at listen av bransjer å velge mellom skal spisses til hvilken sektor man jobber i.

Les gjennom kravene til kommunen for å se om du kan hjelpe dem.

Krav fra kommunen

Vi ønsker at brukerne skal ha et ulikt sett med svaralternativer for bransjevalget basert på hvilken sektor de har krysset av for.

Nyttig dokumentasjon

Forståelsessjekk

  • Om en kodeliste er satt opp med en mapping mot datamodellen, hva skjer når det aktuelle feltet endrer verdi?
  • Hva skjer med valgt verdi på et felt som er koblet til en kodeliste som hentes på nytt fra serversiden?

Krav fra kommunen

Vi ønsker at dersom brukeren velger IKT (data/it) under bransje at det vises en tekst med en lenke til en av våre stillingsutlysninger.

  • Under bransje-valget skal følgende tekst presenteres:

    Vi ser at du besitter kompetanse vi trenger i kommunen.
    Se en oversikt over våre ledige stillinger her.
    
  • Linje 2 i teksten skal være en hyperlenke som peker på https://sogndal.easycruit.com/index.html.

Tekst og lenke skal kun vises om man har valgt IKT (data/it). I alle andre tilfeller skal dette være skjult.

Nyttig dokumentasjon

Forståelsessjekk

  • Hvis du legger til en ny funksjon i RuleHandlerHelper, hvor kjøres disse funksjonene?
    • Vil dynamikk fungere uten denne definert?
  • Hvis du legger til en ny funksjon i RuleHandlerObject, hvor kjøres disse funksjonene?
    • Vil dynamikk fungere uten denne definert?
  • Hva er sammenhengen mellom funksjoner definert i RuleHandlerObject og filen RuleConfiguration.json?

Oppsummering

I denne modulen har du satt opp nedtrekksliste, radioknapp og avkrysningsbokser og lagt inn verdier for disse komponentene manuelt, programmatisk og dynamisk.

Tjenesten skal kunne kjøres opp på din lokale maskin med lokal test og du skal kunne validere at komponentene presenterer forventede dataverdier.

Husk å pushe de lokale endringene dine, så de blir tilgjengelig i Altinn Studio når du er fornøyd

Løsningsforslag

Dersom du ikke har fått til alle stegene, har vi et løsningsforslag som du kan hente inspirasjon fra.

Skjermbilde av innsamling av arbeidsopplysninger for privat sektor Skjermbilde av innsamling av arbeidsopplysninger for offentlig sektor