Skip to content

Commit

Permalink
Feature/fritekst info om saksbehandlingstid (#1163)
Browse files Browse the repository at this point in the history
* Konverter til fritekst i informasjon om saksbehandlingstid

* Ignorer ugyldig fokusering (unngå å feile hele editoren)

* Fiks småplukk

* Fjern utdatert felt fra docker-compose.yml
  • Loading branch information
routsi authored Jan 8, 2025
1 parent 6a3339c commit 0d8ff69
Show file tree
Hide file tree
Showing 10 changed files with 62 additions and 65 deletions.
1 change: 0 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#Used for local testing purposes
version: '3.8'
services:
pdf-bygger:
build: ./pdf-bygger
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jupiterVersion=5.11.3
hamkrestVersion=1.8.0.1
logstashVersion=8.0
micrometerVersion=1.14.1
apiModelVersion=110
apiModelVersion=111
jacksonJsr310Version=2.18.2
mockkVersion=1.13.13
exposedVersion=0.56.0
2 changes: 1 addition & 1 deletion locust/locustfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def load_test(self):

def access_token(self):
return self.token.token
#TODO kjent feil. Etter token løper ut etter en time prøver alle workers å fetche token samtidig
# Kjent feil. Etter token løper ut etter en time prøver alle workers å fetche token samtidig
# Kan vi få en uavhengig oppgave med refresh token som oppdaterer denne løpende?
# mistenker at mange feiler fordi mange forsøker å fetche token samtidig. De som ikke får token dør.
#if self.token.is_valid():
Expand Down
2 changes: 1 addition & 1 deletion pensjon-brevbaker-api-model/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ plugins {
}

group = "no.nav.pensjon.brev"
version = "110"
version = "111"

java {
withSourcesJar()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,14 @@ package no.nav.pensjon.brev.api.model.maler.redigerbar
import no.nav.pensjon.brev.api.model.maler.BrevbakerBrevdata
import no.nav.pensjon.brev.api.model.maler.EmptyBrevdata
import no.nav.pensjon.brev.api.model.maler.RedigerbarBrevdata
import java.time.LocalDate

@Suppress("unused")
data class InformasjonOmSaksbehandlingstidDto(
override val saksbehandlerValg: SaksbehandlerValg,
override val pesysData: EmptyBrevdata
) : RedigerbarBrevdata<InformasjonOmSaksbehandlingstidDto.SaksbehandlerValg, EmptyBrevdata> {
data class SaksbehandlerValg(
val mottattSoeknad: LocalDate,
val ytelse: String,
val land: String?,
val inkluderVenterSvarAFP: InkluderVenterSvarAFP?,
val svartidUker: Int,
) : BrevbakerBrevdata {
data class InkluderVenterSvarAFP(val uttakAlderspensjonProsent: Int, val uttaksDato: LocalDate)
}
val mottattFraAnnetLand: Boolean = false,
val inkluderVenterPaaSvarAFP: Boolean = false,
) : BrevbakerBrevdata
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,13 @@ import no.nav.pensjon.brev.api.model.Sakstype
import no.nav.pensjon.brev.api.model.TemplateDescription
import no.nav.pensjon.brev.api.model.maler.Pesysbrevkoder
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDto
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDtoSelectors.SaksbehandlerValgSelectors.InkluderVenterSvarAFPSelectors.uttakAlderspensjonProsent
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDtoSelectors.SaksbehandlerValgSelectors.InkluderVenterSvarAFPSelectors.uttaksDato
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDtoSelectors.SaksbehandlerValgSelectors.inkluderVenterSvarAFP
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDtoSelectors.SaksbehandlerValgSelectors.land
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDtoSelectors.SaksbehandlerValgSelectors.mottattSoeknad
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDtoSelectors.SaksbehandlerValgSelectors.svartidUker
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDtoSelectors.SaksbehandlerValgSelectors.ytelse
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDtoSelectors.SaksbehandlerValgSelectors.inkluderVenterPaaSvarAFP
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDtoSelectors.SaksbehandlerValgSelectors.mottattFraAnnetLand
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDtoSelectors.saksbehandlerValg
import no.nav.pensjon.brev.template.Language.*
import no.nav.pensjon.brev.template.RedigerbarTemplate
import no.nav.pensjon.brev.template.dsl.createTemplate
import no.nav.pensjon.brev.template.dsl.expression.expr
import no.nav.pensjon.brev.template.dsl.expression.format
import no.nav.pensjon.brev.template.dsl.expression.plus
import no.nav.pensjon.brev.template.dsl.helpers.TemplateModelHelpers
import no.nav.pensjon.brev.template.dsl.languages
Expand Down Expand Up @@ -54,14 +48,15 @@ object InformasjonOmSaksbehandlingstid : RedigerbarTemplate<InformasjonOmSaksbeh

outline {
paragraph {
val mottattDato = saksbehandlerValg.mottattSoeknad.format()
val ytelse = saksbehandlerValg.ytelse
val mottattDato = fritekst("mottatt dato")
val ytelse = fritekst("ytelse")

ifNotNull(saksbehandlerValg.land) { land ->
showIf(saksbehandlerValg.mottattFraAnnetLand) {
val annetLand = fritekst("land")
textExpr(
Bokmal to "Vi har ".expr() + mottattDato + " mottatt søknaden din om " + ytelse + " fra trygdemyndighetene i " + land + ".",
Nynorsk to "Vi har ".expr() + mottattDato + " fått søknaden din om " + ytelse + " fra trygdeorgana i " + land + ".",
English to "We received your application for ".expr() + ytelse + " from the National Insurance authorities in " + land +
Bokmal to "Vi har ".expr() + mottattDato + " mottatt søknaden din om " + ytelse + " fra trygdemyndighetene i " + annetLand + ".",
Nynorsk to "Vi har ".expr() + mottattDato + " fått søknaden din om " + ytelse + " fra trygdeorgana i " + annetLand + ".",
English to "We received your application for ".expr() + ytelse + " from the National Insurance authorities in " + annetLand +
" on " + mottattDato + "."
)
} orShow {
Expand All @@ -72,10 +67,10 @@ object InformasjonOmSaksbehandlingstid : RedigerbarTemplate<InformasjonOmSaksbeh
)
}
}
ifNotNull(saksbehandlerValg.inkluderVenterSvarAFP) {
val prosent = it.uttakAlderspensjonProsent.format()
val uttaksDato = it.uttaksDato.format()
showIf(saksbehandlerValg.inkluderVenterPaaSvarAFP) {
paragraph {
val uttaksDato = fritekst("uttaksdato")
val prosent = fritekst("uttaksgrad alderspensjon")
textExpr(
Bokmal to "Du har ikke høy nok opptjening til å ta ut ".expr() + prosent + " prosent alderspensjon fra " + uttaksDato
+ ". Eventuelle AFP-rettigheter vil kunne gi deg rett til uttak av alderspensjon.",
Expand All @@ -97,11 +92,11 @@ object InformasjonOmSaksbehandlingstid : RedigerbarTemplate<InformasjonOmSaksbeh
}
}
paragraph {
val svartidUker = saksbehandlerValg.svartidUker.format()
val svartid = fritekst("svartid")
textExpr(
Bokmal to "Saksbehandlingstiden vår er vanligvis ".expr() + svartidUker + " uker.",
Nynorsk to "Saksbehandlingstida vår er vanlegvis ".expr() + svartidUker + " uker.",
English to "Our processing time for this type of application is usually ".expr() + svartidUker + " weeks.",
Bokmal to "Saksbehandlingstiden vår er vanligvis ".expr() + svartid + ".",
Nynorsk to "Saksbehandlingstida vår er vanlegvis ".expr() + svartid + ".",
English to "Our processing time for this type of application is usually ".expr() + svartid + ".",
)
}
paragraph {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,12 @@ package no.nav.pensjon.brev.fixtures
import no.nav.pensjon.brev.api.model.maler.EmptyBrevdata
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDto
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDto.SaksbehandlerValg
import java.time.LocalDate

fun createInformasjonOmSaksbehandlingstidDto() =
InformasjonOmSaksbehandlingstidDto(
saksbehandlerValg = SaksbehandlerValg(
mottattSoeknad = LocalDate.now().minusDays(6),
ytelse = "AFP",
land = null,
inkluderVenterSvarAFP = null,
svartidUker = 10,
mottattFraAnnetLand = false,
inkluderVenterPaaSvarAFP = false,
),
pesysData = EmptyBrevdata
)
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,21 @@ import no.nav.pensjon.brev.Fixtures
import no.nav.pensjon.brev.TestTags
import no.nav.pensjon.brev.api.model.maler.EmptyBrevdata
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDto
import no.nav.pensjon.brev.api.model.maler.redigerbar.InformasjonOmSaksbehandlingstidDto.SaksbehandlerValg.InkluderVenterSvarAFP
import no.nav.pensjon.brev.api.toLanguage
import no.nav.pensjon.brev.renderTestPDF
import no.nav.pensjon.brev.template.Letter
import no.nav.pensjon.brevbaker.api.model.LanguageCode.*
import org.junit.jupiter.api.Tag
import org.junit.jupiter.api.Test
import java.time.LocalDate

@Tag(TestTags.INTEGRATION_TEST)
class InformasjonOmSaksbehandlingstidITest {

private val data = InformasjonOmSaksbehandlingstidDto(
saksbehandlerValg = InformasjonOmSaksbehandlingstidDto.SaksbehandlerValg(LocalDate.now().minusWeeks(1), "AFP", null, null, 10),
saksbehandlerValg = InformasjonOmSaksbehandlingstidDto.SaksbehandlerValg(
mottattFraAnnetLand = false,
inkluderVenterPaaSvarAFP = false,
),
pesysData = EmptyBrevdata
)

Expand All @@ -28,21 +29,14 @@ class InformasjonOmSaksbehandlingstidITest {

@Test
fun `med land`() {
writeAllLanguages("med-land", data.copy(saksbehandlerValg = data.saksbehandlerValg.copy(land = "Polen")))
writeAllLanguages("med-land", data.copy(saksbehandlerValg = data.saksbehandlerValg.copy(mottattFraAnnetLand = true)))
}

@Test
fun `med venter svar AFP`() {
writeAllLanguages(
"med-venter-svar",
data.copy(
saksbehandlerValg = data.saksbehandlerValg.copy(
inkluderVenterSvarAFP = InkluderVenterSvarAFP(
60,
LocalDate.now().plusMonths(2).withDayOfMonth(1)
)
)
)
data.copy(saksbehandlerValg = data.saksbehandlerValg.copy(inkluderVenterPaaSvarAFP = true))
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ import "./editor.css";
import React, { useState } from "react";

import Actions from "~/Brevredigering/LetterEditor/actions";
import type { LetterEditorState } from "~/Brevredigering/LetterEditor/model/state";
import type { Focus, LetterEditorState } from "~/Brevredigering/LetterEditor/model/state";
import { getRange } from "~/Brevredigering/LetterEditor/services/caretUtils";
import { SpraakKode } from "~/types/apiTypes";
import { type BrevResponse, Distribusjonstype } from "~/types/brev";
import type { EditedLetter } from "~/types/brevbakerTypes";
import type { EditedLetter, LiteralValue } from "~/types/brevbakerTypes";

import exampleLetter1Json from "./example-letter-1.json";
import { LetterEditor } from "./LetterEditor";

const exampleLetter1 = exampleLetter1Json as EditedLetter;

function EditorWithState({ initial }: { initial: EditedLetter }) {
function EditorWithState({ initial, focus }: { initial: EditedLetter; focus?: Focus }) {
const brevresponse: BrevResponse = {
info: {
id: 1,
Expand All @@ -35,7 +35,11 @@ function EditorWithState({ initial }: { initial: EditedLetter }) {
redigertBrevHash: "hash1",
saksbehandlerValg: {},
};
const [editorState, setEditorState] = useState<LetterEditorState>(Actions.create(brevresponse));
const newState = Actions.create(brevresponse);
if (focus) {
newState.focus = focus;
}
const [editorState, setEditorState] = useState<LetterEditorState>(newState);
return (
<LetterEditor
editorState={editorState}
Expand Down Expand Up @@ -191,6 +195,16 @@ describe("<LetterEditor />", () => {
assertCaret("CP3-1", 0);
});
});

describe("Focus", () => {
it("invalid focus is ignored", () => {
const invalidCursorPosition = (exampleLetter1.blocks[0].content[2] as LiteralValue).text.length + 10;
const invalidFocus = { blockIndex: 0, contentIndex: 2, cursorPosition: invalidCursorPosition };
cy.mount(<EditorWithState focus={invalidFocus} initial={exampleLetter1} />);

cy.contains("Informasjon om saksbehandlingstiden vår");
});
});
});

function move(key: string, times: number) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,20 @@ export const getCursorOffsetOrRange = () => {
* @param offset the offset in the node
*/
export function focusAtOffset(node: ChildNode, offset: number) {
if (offset >= 0 && node) {
const range = document.createRange();
range.setStart(node, offset);
range.collapse();
node.parentElement?.focus();

const selection = globalThis.getSelection();
selection?.removeAllRanges();
selection?.addRange(range);
if (node && offset >= 0) {
try {
const range = document.createRange();
range.setStart(node, offset);
range.collapse();
node.parentElement?.focus();

const selection = globalThis.getSelection();
selection?.removeAllRanges();
selection?.addRange(range);
} catch (error) {
// eslint-disable-next-line no-console
console.warn("Could not set cursor position for node", node, error);
}
}
}

Expand Down

0 comments on commit 0d8ff69

Please sign in to comment.