diff --git a/backend/src/projektiSearch/projektiSearchAdapter.ts b/backend/src/projektiSearch/projektiSearchAdapter.ts index 94590be2f..825b7b8d8 100644 --- a/backend/src/projektiSearch/projektiSearchAdapter.ts +++ b/backend/src/projektiSearch/projektiSearchAdapter.ts @@ -23,6 +23,7 @@ export type ProjektiDocument = { vaylamuoto?: string[]; suunnittelustaVastaavaViranomainen?: Viranomainen; vaihe?: Status; + viimeinenTilaisuusPaattyy?: string; projektiTyyppi?: ProjektiTyyppi; paivitetty?: string; projektipaallikko?: string; @@ -51,10 +52,7 @@ export function adaptProjektiToIndex(projekti: DBProjekti): Partial; } -export function adaptProjektiToJulkinenIndex( - projekti: ProjektiJulkinen, - kieli: Kieli -): Omit | undefined { +export function adaptProjektiToJulkinenIndex(projekti: ProjektiJulkinen, kieli: Kieli): Omit | undefined { if (projekti) { // Use texts from suunnitteluvaihe or from published aloituskuulutus const suunnitteluVaihe = projekti.suunnitteluVaihe; @@ -81,6 +79,22 @@ export function adaptProjektiToJulkinenIndex( publishTimestamp = dayjs(0).format(); } + let viimeinenTilaisuusPaattyy: string | undefined; + + const vuorovaikutukset = projekti?.suunnitteluVaihe?.vuorovaikutukset; + const viimeisinVuorovaikutusKierros = vuorovaikutukset?.[vuorovaikutukset?.length - 1]; + + if (viimeisinVuorovaikutusKierros) { + viimeisinVuorovaikutusKierros?.vuorovaikutusTilaisuudet?.forEach((tilaisuus) => { + if (tilaisuus.paivamaara || tilaisuus.paattymisAika) { + const tilaisuusPaattyy = dayjs(tilaisuus.paivamaara).format(`YYYY-MM-DD[T${tilaisuus.paattymisAika}]`); + if (tilaisuusPaattyy && (!viimeinenTilaisuusPaattyy || tilaisuusPaattyy > viimeinenTilaisuusPaattyy)) { + viimeinenTilaisuusPaattyy = tilaisuusPaattyy; + } + } + }); + } + return { nimi: safeTrim(nimi), hankkeenKuvaus, @@ -88,6 +102,7 @@ export function adaptProjektiToJulkinenIndex( kunnat: projekti.velho.kunnat?.map(safeTrim), maakunnat: projekti.velho.maakunnat?.map(safeTrim), vaihe: projekti.status, + viimeinenTilaisuusPaattyy, vaylamuoto: projekti.velho.vaylamuoto?.map(safeTrim), paivitetty: projekti.paivitetty || dayjs().format(), publishTimestamp, diff --git a/backend/test/projektiSearch/__snapshots__/dynamoDBStreamHandler.test.ts.snap b/backend/test/projektiSearch/__snapshots__/dynamoDBStreamHandler.test.ts.snap index ef33295cc..076026ddd 100644 --- a/backend/test/projektiSearch/__snapshots__/dynamoDBStreamHandler.test.ts.snap +++ b/backend/test/projektiSearch/__snapshots__/dynamoDBStreamHandler.test.ts.snap @@ -43,6 +43,7 @@ Object { "vaylamuoto": Array [ "tie", ], + "viimeinenTilaisuusPaattyy": undefined, } `; @@ -66,6 +67,7 @@ Object { "vaylamuoto": Array [ "tie", ], + "viimeinenTilaisuusPaattyy": undefined, } `; diff --git a/graphql/types.graphql b/graphql/types.graphql index 88e515ca1..79d7966f5 100644 --- a/graphql/types.graphql +++ b/graphql/types.graphql @@ -731,6 +731,7 @@ type ProjektiHakutulosDokumentti { projektiTyyppi: ProjektiTyyppi paivitetty: String projektipaallikko: String + viimeinenTilaisuusPaattyy: String } type LisaAineistot { diff --git a/src/components/kansalaisenEtusivu/OikeaLaita.tsx b/src/components/kansalaisenEtusivu/OikeaLaita.tsx index b190fd290..23c30c5fc 100644 --- a/src/components/kansalaisenEtusivu/OikeaLaita.tsx +++ b/src/components/kansalaisenEtusivu/OikeaLaita.tsx @@ -1,3 +1,3 @@ export default function OikeaLaita() { - return
Moi
; + return
Myöhemmin tulevaa sisältöä
; }