Altinn / app-lib-dotnet

Libraries used in Altinn Apps
BSD 3-Clause "New" or "Revised" License
8 stars 10 forks source link

Informasjon forsvinner i pdf ved "hidden" og "shadowFields" #337

Open tonygrimstad opened 12 months ago

tonygrimstad commented 12 months ago

Description of the bug

Ved bruk av "hidden" i layout i kombinasjon med "shadowFields" i applicationmetadata.json, genereres ikke pdf riktig/komplett, i noen tilfeller.

Dette fungerer greit når en side SKAL skjules, men når siden IKKE skal skjules, så genereres ikke Pdf'en alltid rett. Informasjon som egentlig skal vises, vises ikke.

Gjenskaping er vist under ved å peke på eksempler.

Steps To Reproduce

Eksempel: Pdf mangler informasjon (når "hidden" = false)

Layouts, JSON file:

{
  "$schema": "https://altinncdn.no/schemas/json/layout/layout.schema.v1.json",
  "data": {
    "hidden": ["notEquals", ["dataModel", "SF_IsPlisPerson"], true],
    "layout": [
...

applicationmetadata.json:

"appLogic": {
        "autoCreate": true,
        "classRef": "Altinn.App.Models.Form",
        "shadowFields": {
          "prefix": "SF_"
        },
        "allowAnonymousOnStateless": false,
        "autoDeleteOnProcessEnd": false
      },

Workaround --> Pdf komplett (når "hidden" = false)

{
  "$schema": "https://altinncdn.no/schemas/json/layout/layout.schema.v1.json",
  "data": {
    "hidden": ["equals", ["dataModel", "SF_IsPlisPerson"], false],
    "layout": [
...

applicationmetadata.json:

"appLogic": {
        "autoCreate": true,
        "classRef": "Altinn.App.Models.Form",
        "shadowFields": {
          "prefix": "SF_"
        },
        "allowAnonymousOnStateless": false,
        "autoDeleteOnProcessEnd": false
      },

Workaround (men... som da fjerner hensikten med skjulte felt :smirk:) --> Pdf komplett

applicationmetadata.json:

"appLogic": {
        "autoCreate": true,
        "classRef": "Altinn.App.Models.Form",

        "allowAnonymousOnStateless": false,
        "autoDeleteOnProcessEnd": false
      },

Additional Information

No response

olemartinorg commented 12 months ago

Feilen oppstår fordi vi rydder bort skyggefelt fra datamodellen før PDF-generering.

Denne oppryddingen bør ikke skje ved slutten av et prosess-steg, og heller noe vi bør gjøre før innsending av hele instansen - ellers vil det kræsje ved tilfeller som dette, samt ved annen funksjonalitet vi har levert, som muligheten for å låse opp igjen låste datamodeller og gå bakover i prosessen.

nkylstad commented 11 months ago

Dette caset er også dokumentert i docs, man kan opprette egen datatype for å inneholde dataene som er "vasket" (altså uten hjelpefeltene): https://docs.altinn.studio//app/development/configuration/shadowfields/#saving-a-copy-of-form-data-without-helper-fields

Screenshot 2023-11-20 at 14 18 32
Magnusrm commented 1 month ago

Needs acceptance criterias.