sigrennesmetropole / geor_tabou2_front

Code du front de l'application tabou2 pour georchestra
Other
1 stars 2 forks source link

[Urbamap] - Formulaire opération #269

Closed LVP35 closed 1 year ago

LVP35 commented 1 year ago

Description

Les valeurs saisies dans certains champs du formulaire opération ne sont pas envoyées par le front au backend et entraînent une erreur 400. Par ailleurs, le backend retourne une erreur 400 que le front traduit sous forme d'un toaster de succès sur l'IHM.

Les champs du formulaire concernés sont :

Le JSON le plus complet envoyé qui retourne un 200 sur le endpoint v2/operations est le suivant :

{
  "id": 100,
  "nature": {
    "id": 1,
    "libelle": "ZAC",
    "dateInactif": null
  },
  "vocation": {
    "id": 3,
    "libelle": "Activités",
    "code": "ACTIVITE"
  },
  "decision": {
    "id": 3,
    "libelle": "Délibération du Conseil Municipal",
    "code": "DELIBERATION_CONSEIL_M"
  },
  "maitriseOuvrage": {
    "id": 1,
    "libelle": "Communale",
    "code": "COMMUNALE"
  },
  "modeAmenagement": {
    "id": 2,
    "libelle": "CPA",
    "code": "CPA"
  },
  "consommationEspace": {
    "id": 2,
    "libelle": "Renouvellement urbain",
    "code": "RENOUVELLEMENT"
  },
  "etape": {
    "id": 6,
    "libelle": "Opérationnel",
    "code": "OPERATIONNEL_PUBLIC",
    "type": "NORMAL",
    "mode": "PUBLIC"
  },
  "secteur": false,
  "diffusionRestreinte": false,
  "code": "O-100",
  "nom": "ZAC Baud-Chardonnet",
  "operation": "2 700 logements\n7 250 m²  de commerces et d'activités\n56 000 m² de bureaux\n34 000 m² secteur universitaire, équipements.",
  "description": "Sur l'ancien site industriel de la plaine de Baud, à deux pas du centre-ville et de la gare, le projet s'étend sur 35 hectares. Bordé  au nord par la Vilaine et au sud par les voies ferrées, il se dessine comme une île. Depuis 2014, le pont Vaclav Havel relie Baud Chardonnet à l'axe est-ouest et permet de rejoindre à pied le campus universitaire de Beaulieu, situé sur l'autre rive. À court terme, ce quartier,  qui s'inscrit dans la perspective des quais historiques, sera facilement accessible par une passerelle piétonne..",
  "idEmprise": 84,
  "autorisationDate": "2004-06-13T22:00:00.000+00:00",
  "operationnelDate": "2010-07-04T22:00:00.000+00:00",
  "clotureDate": "2023-02-15T11:03:31.694+00:00",
  "numAds": "123456-02-02",
  "surfaceTotale": 35,
  "nbLogementsPrevu": 2700,
  "scot": null,
  "densiteScot": 33,
  "nbEntreprise": null,
  "nbSalarie": null,
  "plh": {
    "id": 532,
    "logementsPrevus": null,
    "logementsLivres": null,
    "date": null,
    "description": null
  },
  "entiteReferente": {
    "id": 1,
    "code": "SAM",
    "libelle": "SAm",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "objectifs": "Enjeux 02/02",
  "informationsProgrammation": [
    {
      "id": 6,
      "typeProgrammation": {
        "id": 3,
        "code": "AUTRE",
        "libelle": "Autre",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation autre 02/02"
    },
    {
      "id": 5,
      "typeProgrammation": {
        "id": 4,
        "code": "EQUIPEMENT",
        "libelle": "Equipement",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation équipement 02/02"
    },
    {
      "id": 7,
      "typeProgrammation": {
        "id": 2,
        "code": "ACTIVITES",
        "libelle": "Activités",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation activités 02/02"
    }
  ],
  "vocationZa": {
    "id": 2,
    "code": "ARTISANAT",
    "libelle": "Artisanat",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "contributions": [
    {
      "id": 1,
      "typeContribution": {
        "id": 2,
        "code": "CONTRIBUTION_ENJEUX",
        "libelle": "Contribution Enjeux",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Enjeux généraux 02/02"
    },
    {
      "id": 15,
      "typeContribution": {
        "id": 1,
        "code": "CONTRIBUTION_TRAITEE",
        "libelle": "Contribution traitée",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Principales prises en compte 02/02"
    },
    {
      "id": 16,
      "typeContribution": {
        "id": 3,
        "code": "CONTRIBUTION_AVENIR",
        "libelle": "Contribution avenir",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Comment aller plus loin ? 02/02"
    }
  ],
  "descriptionsFoncier": [],
  "pafTaux": null,
  "typeOccupation": {
    "id": 8,
    "code": "ACTIVITES",
    "libelle": "Activités",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "outilFoncier": {
    "id": 4,
    "code": "DPUAME",
    "libelle": "DPU délégué à l'aménageur",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "amenageurs": [
    {
      "id": 17,
      "typeAmenageur": {
        "id": 2,
        "code": "RM",
        "libelle": "Rennes Métropole",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "nom": "test 02/02"
    }
  ],
  "outilAmenagement": "Outil d'aménagement 02/02",
  "etude": "Etudes à prévoir 02/02",
  "localisation": "test2",
  "usageActuel": "Usage actuel 02/02",
  "avancementAdministratif": "Avancement administratif de l'opération 02/02",
  "environnement": "Dossiers environnementaux 02/02",
  "surfaceRealisee": 77,
  "concertation": {
    "id": 18,
    "dateDebut": "2023-02-14T11:03:31.694+00:00",
    "dateFin": "2023-02-15T11:03:31.694+00:00"
  },
  "financements": [],
  "actions": [
    {
      "id": 19,
      "typeAction": {
        "id": 1,
        "code": "ACTION",
        "libelle": "Action",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Actions à mener par RM 02/02"
    }
  ],
  "acteurs": [
    {
      "id": 32,
      "typeActeur": {
        "id": 1,
        "code": "ACT_INT",
        "libelle": "Services ou personnes internes",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Services ou personnes internes 02/02"
    },
    {
      "typeActeur": {
        "id": 2,
        "code": "ACT_EXT",
        "libelle": "Acteurs ou partenaires externes",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Acteurs et partenaires externes 02/02"
    }
  ],
  "plui": {
    "densiteOap": 77,
    "pluiDisposition": "Dispositions réglementaires 02/02",
    "pluiAdaptation": "Adaptations PLUI 02/02"
  },
  "createUser": null,
  "createDate": null,
  "modifUser": null,
  "modifDate": null,
  "surfaceParent": 77.9787
}

Un JSON qui retourne une erreur 400 sur le même endpoint :

{
  "id": 100,
  "nature": {
    "id": 1,
    "libelle": "ZAC",
    "dateInactif": null
  },
  "vocation": {
    "id": 3,
    "libelle": "Activités",
    "code": "ACTIVITE"
  },
  "decision": {
    "id": 3,
    "libelle": "Délibération du Conseil Municipal",
    "code": "DELIBERATION_CONSEIL_M"
  },
  "maitriseOuvrage": {
    "id": 1,
    "libelle": "Communale",
    "code": "COMMUNALE"
  },
  "modeAmenagement": {
    "id": 2,
    "libelle": "CPA",
    "code": "CPA"
  },
  "consommationEspace": {
    "id": 2,
    "libelle": "Renouvellement urbain",
    "code": "RENOUVELLEMENT"
  },
  "etape": {
    "id": 6,
    "libelle": "Opérationnel",
    "code": "OPERATIONNEL_PUBLIC",
    "type": "NORMAL",
    "mode": "PUBLIC"
  },
  "secteur": false,
  "diffusionRestreinte": false,
  "code": "O-100",
  "nom": "ZAC Baud-Chardonnet",
  "operation": "2 700 logements\n7 250 m²  de commerces et d'activités\n56 000 m² de bureaux\n34 000 m² secteur universitaire, équipements.",
  "description": "Sur l'ancien site industriel de la plaine de Baud, à deux pas du centre-ville et de la gare, le projet s'étend sur 35 hectares. Bordé  au nord par la Vilaine et au sud par les voies ferrées, il se dessine comme une île. Depuis 2014, le pont Vaclav Havel relie Baud Chardonnet à l'axe est-ouest et permet de rejoindre à pied le campus universitaire de Beaulieu, situé sur l'autre rive. À court terme, ce quartier,  qui s'inscrit dans la perspective des quais historiques, sera facilement accessible par une passerelle piétonne..",
  "idEmprise": 84,
  "autorisationDate": "2004-06-13T22:00:00.000+00:00",
  "operationnelDate": "2010-07-04T22:00:00.000+00:00",
  "clotureDate": "2023-02-15T11:03:31.694+00:00",
  "numAds": "123456-02-02",
  "surfaceTotale": 35,
  "nbLogementsPrevu": 2700,
  "scot": null,
  "densiteScot": 33,
  "nbEntreprise": null,
  "nbSalarie": null,
  "plh": {
    "id": 532,
    "logementsPrevus": null,
    "logementsLivres": null,
    "date": null,
    "description": null
  },
  "entiteReferente": {
    "id": 1,
    "code": "SAM",
    "libelle": "SAm",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "objectifs": "Enjeux 02/02",
  "informationsProgrammation": [
    {
      "id": 6,
      "typeProgrammation": {
        "id": 3,
        "code": "AUTRE",
        "libelle": "Autre",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation autre 02/02"
    },
    {
      "id": 5,
      "typeProgrammation": {
        "id": 4,
        "code": "EQUIPEMENT",
        "libelle": "Equipement",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation équipement 02/02"
    },
    {
      "id": 7,
      "typeProgrammation": {
        "id": 2,
        "code": "ACTIVITES",
        "libelle": "Activités",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation activités 02/02"
    }
  ],
  "vocationZa": {
    "id": 2,
    "code": "ARTISANAT",
    "libelle": "Artisanat",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "contributions": [
    {
      "id": 1,
      "typeContribution": {
        "id": 2,
        "code": "CONTRIBUTION_ENJEUX",
        "libelle": "Contribution Enjeux",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Enjeux généraux 02/02"
    },
    {
      "id": 15,
      "typeContribution": {
        "id": 1,
        "code": "CONTRIBUTION_TRAITEE",
        "libelle": "Contribution traitée",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Principales prises en compte 02/02"
    },
    {
      "id": 16,
      "typeContribution": {
        "id": 3,
        "code": "CONTRIBUTION_AVENIR",
        "libelle": "Contribution avenir",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Comment aller plus loin ? 02/02"
    }
  ],
  "descriptionsFoncier": [
    {
      "description": "Maitrise foncière publique"
    }
  ],
  "pafTaux": null,
  "typeOccupation": {
    "id": 8,
    "code": "ACTIVITES",
    "libelle": "Activités",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "outilFoncier": {
    "id": 4,
    "code": "DPUAME",
    "libelle": "DPU délégué à l'aménageur",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "amenageurs": [
    {
      "id": 17,
      "typeAmenageur": {
        "id": 2,
        "code": "RM",
        "libelle": "Rennes Métropole",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "nom": "test 02/02"
    }
  ],
  "outilAmenagement": "Outil d'aménagement 02/02",
  "etude": "Etudes à prévoir 02/02",
  "localisation": "test2",
  "usageActuel": "Usage actuel 02/02",
  "avancementAdministratif": "Avancement administratif de l'opération 02/02",
  "environnement": "Dossiers environnementaux 02/02",
  "surfaceRealisee": 77,
  "concertation": {
    "id": 18,
    "dateDebut": "2023-02-14T11:03:31.694+00:00",
    "dateFin": "2023-02-15T11:03:31.694+00:00"
  },
  "financements": [],
  "actions": [
    {
      "id": 19,
      "typeAction": {
        "id": 1,
        "code": "ACTION",
        "libelle": "Action",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Actions à mener par RM 02/02"
    }
  ],
  "acteurs": [
    {
      "id": 33,
      "typeActeur": {
        "id": 2,
        "code": "ACT_EXT",
        "libelle": "Acteurs ou partenaires externes",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Acteurs et partenaires externes 02/02"
    },
    {
      "id": 32,
      "typeActeur": {
        "id": 1,
        "code": "ACT_INT",
        "libelle": "Services ou personnes internes",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Services ou personnes internes 02/02"
    }
  ],
  "plui": {
    "densiteOap": 77,
    "pluiDisposition": "Dispositions réglementaires 02/02",
    "pluiAdaptation": "Adaptations PLUI 02/02"
  },
  "createUser": null,
  "createDate": null,
  "modifUser": null,
  "modifDate": null,
  "surfaceParent": 77.9787
}

Etapes pour reproduire le bug

Etapes à suivre pour reproduire votre problème du type :

  1. Se rendre sur portail-test
  2. Se rendre sur l'opération Beau-Chardonnet (id = 100)
  3. Remplir les champs de la section Foncier et occupation dans le formulaire

Comportement attendu

Succès

Média / captures d'écran

image

Environnement

Merci de remplir ces informations si connues :

LVP35 commented 1 year ago

La section du JSON qui pose problème est la suivante :

  "descriptionsFoncier": [
    {
      "description": "Maitrise foncière publique"
    }
  ]
Gaetanbrl commented 1 year ago

La section du JSON qui pose problème est la suivante :

Merci pour le détail le JSON était un peu trop fourni.

LVP35 commented 1 year ago

La section descriptionFoncier attendue dans le DTO ressemble à :

"descriptionsFoncier": [
    {
      "description": "string",
      "id": 0,
      "taux": 0,
      "typeFoncier": {
        "code": "string",
        "createDate": "2023-02-02T12:55:23.796Z",
        "createUser": "string",
        "dateInactif": "2023-02-02T12:55:23.796Z",
        "id": 0,
        "libelle": "string"
      }
    }
  ]
LVP35 commented 1 year ago

Le JSON suivant est accepté (cf. dernier champ descriptionFoncier) :


{
  "id": 100,
  "nature": {
    "id": 1,
    "libelle": "ZAC",
    "dateInactif": null
  },
  "vocation": {
    "id": 3,
    "libelle": "Activités",
    "code": "ACTIVITE"
  },
  "decision": {
    "id": 3,
    "libelle": "Délibération du Conseil Municipal",
    "code": "DELIBERATION_CONSEIL_M"
  },
  "maitriseOuvrage": {
    "id": 1,
    "libelle": "Communale",
    "code": "COMMUNALE"
  },
  "modeAmenagement": {
    "id": 2,
    "libelle": "CPA",
    "code": "CPA"
  },
  "consommationEspace": {
    "id": 2,
    "libelle": "Renouvellement urbain",
    "code": "RENOUVELLEMENT"
  },
  "etape": {
    "id": 6,
    "libelle": "Opérationnel",
    "code": "OPERATIONNEL_PUBLIC",
    "type": "NORMAL",
    "mode": "PUBLIC"
  },
  "secteur": false,
  "diffusionRestreinte": false,
  "code": "O-100",
  "nom": "ZAC Baud-Chardonnet",
  "operation": "2 700 logements\n7 250 m²  de commerces et d'activités\n56 000 m² de bureaux\n34 000 m² secteur universitaire, équipements.",
  "description": "Sur l'ancien site industriel de la plaine de Baud, à deux pas du centre-ville et de la gare, le projet s'étend sur 35 hectares. Bordé  au nord par la Vilaine et au sud par les voies ferrées, il se dessine comme une île. Depuis 2014, le pont Vaclav Havel relie Baud Chardonnet à l'axe est-ouest et permet de rejoindre à pied le campus universitaire de Beaulieu, situé sur l'autre rive. À court terme, ce quartier,  qui s'inscrit dans la perspective des quais historiques, sera facilement accessible par une passerelle piétonne..",
  "idEmprise": 84,
  "autorisationDate": "2004-06-13T22:00:00.000+00:00",
  "operationnelDate": "2010-07-04T22:00:00.000+00:00",
  "clotureDate": "2023-02-15T11:03:31.694+00:00",
  "numAds": "123456-02-02",
  "surfaceTotale": 35,
  "nbLogementsPrevu": 2700,
  "scot": null,
  "densiteScot": 33,
  "nbEntreprise": null,
  "nbSalarie": null,
  "plh": {
    "id": 532,
    "logementsPrevus": null,
    "logementsLivres": null,
    "date": null,
    "description": null
  },
  "entiteReferente": {
    "id": 1,
    "code": "SAM",
    "libelle": "SAm",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "objectifs": "Enjeux 02/02",
  "informationsProgrammation": [
    {
      "id": 6,
      "typeProgrammation": {
        "id": 3,
        "code": "AUTRE",
        "libelle": "Autre",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation autre 02/02"
    },
    {
      "id": 5,
      "typeProgrammation": {
        "id": 4,
        "code": "EQUIPEMENT",
        "libelle": "Equipement",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation équipement 02/02"
    },
    {
      "id": 7,
      "typeProgrammation": {
        "id": 2,
        "code": "ACTIVITES",
        "libelle": "Activités",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation activités 02/02"
    }
  ],
  "vocationZa": {
    "id": 2,
    "code": "ARTISANAT",
    "libelle": "Artisanat",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "contributions": [
    {
      "id": 1,
      "typeContribution": {
        "id": 2,
        "code": "CONTRIBUTION_ENJEUX",
        "libelle": "Contribution Enjeux",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Enjeux généraux 02/02"
    },
    {
      "id": 15,
      "typeContribution": {
        "id": 1,
        "code": "CONTRIBUTION_TRAITEE",
        "libelle": "Contribution traitée",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Principales prises en compte 02/02"
    },
    {
      "id": 16,
      "typeContribution": {
        "id": 3,
        "code": "CONTRIBUTION_AVENIR",
        "libelle": "Contribution avenir",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Comment aller plus loin ? 02/02"
    }
  ],
  "pafTaux": 0.5,
  "typeOccupation": {
    "id": 8,
    "code": "ACTIVITES",
    "libelle": "Activités",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "outilFoncier": {
    "id": 4,
    "code": "DPUAME",
    "libelle": "DPU délégué à l'aménageur",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "amenageurs": [
    {
      "id": 17,
      "typeAmenageur": {
        "id": 2,
        "code": "RM",
        "libelle": "Rennes Métropole",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "nom": "test 02/02"
    }
  ],
  "outilAmenagement": "Outil d'aménagement 02/02",
  "etude": "Etudes à prévoir 02/02",
  "localisation": "test2",
  "usageActuel": "Usage actuel 02/02",
  "avancementAdministratif": "Avancement administratif de l'opération 02/02",
  "environnement": "Dossiers environnementaux 02/02",
  "surfaceRealisee": 77,
  "concertation": {
    "id": 18,
    "dateDebut": "2023-02-14T11:03:31.694+00:00",
    "dateFin": "2023-02-15T11:03:31.694+00:00"
  },
  "financements": [],
  "actions": [
    {
      "id": 19,
      "typeAction": {
        "id": 1,
        "code": "ACTION",
        "libelle": "Action",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Actions à mener par RM 02/02"
    }
  ],
  "acteurs": [
    {
      "id": 33,
      "typeActeur": {
        "id": 2,
        "code": "ACT_EXT",
        "libelle": "Acteurs ou partenaires externes",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Acteurs et partenaires externes 02/02"
    },
    {
      "id": 32,
      "typeActeur": {
        "id": 1,
        "code": "ACT_INT",
        "libelle": "Services ou personnes internes",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Services ou personnes internes 02/02"
    }
  ],
  "plui": {
    "densiteOap": 77,
    "pluiDisposition": "Dispositions réglementaires 02/02",
    "pluiAdaptation": "Adaptations PLUI 02/02"
  },
  "createUser": null,
  "createDate": null,
  "modifUser": null,
  "modifDate": null,
  "surfaceParent": 77.9787,
  "descriptionsFoncier": [
    {
      "description": "Maitrise foncière publique",
      "id": 2,
      "taux": 0,
      "typeFoncier": {
        "id": 2
      }
    }
  ]
}
LVP35 commented 1 year ago

Idem en ajoutant les informations du champ "financements" :


{
  "id": 100,
  "nature": {
    "id": 1,
    "libelle": "ZAC",
    "dateInactif": null
  },
  "vocation": {
    "id": 3,
    "libelle": "Activités",
    "code": "ACTIVITE"
  },
  "decision": {
    "id": 3,
    "libelle": "Délibération du Conseil Municipal",
    "code": "DELIBERATION_CONSEIL_M"
  },
  "maitriseOuvrage": {
    "id": 1,
    "libelle": "Communale",
    "code": "COMMUNALE"
  },
  "modeAmenagement": {
    "id": 2,
    "libelle": "CPA",
    "code": "CPA"
  },
  "consommationEspace": {
    "id": 2,
    "libelle": "Renouvellement urbain",
    "code": "RENOUVELLEMENT"
  },
  "etape": {
    "id": 6,
    "libelle": "Opérationnel",
    "code": "OPERATIONNEL_PUBLIC",
    "type": "NORMAL",
    "mode": "PUBLIC"
  },
  "secteur": false,
  "diffusionRestreinte": false,
  "code": "O-100",
  "nom": "ZAC Baud-Chardonnet",
  "operation": "2 700 logements\n7 250 m²  de commerces et d'activités\n56 000 m² de bureaux\n34 000 m² secteur universitaire, équipements.",
  "description": "Sur l'ancien site industriel de la plaine de Baud, à deux pas du centre-ville et de la gare, le projet s'étend sur 35 hectares. Bordé  au nord par la Vilaine et au sud par les voies ferrées, il se dessine comme une île. Depuis 2014, le pont Vaclav Havel relie Baud Chardonnet à l'axe est-ouest et permet de rejoindre à pied le campus universitaire de Beaulieu, situé sur l'autre rive. À court terme, ce quartier,  qui s'inscrit dans la perspective des quais historiques, sera facilement accessible par une passerelle piétonne..",
  "idEmprise": 84,
  "autorisationDate": "2004-06-13T22:00:00.000+00:00",
  "operationnelDate": "2010-07-04T22:00:00.000+00:00",
  "clotureDate": "2023-02-15T11:03:31.694+00:00",
  "numAds": "123456-02-02",
  "surfaceTotale": 35,
  "nbLogementsPrevu": 2700,
  "scot": null,
  "densiteScot": 33,
  "nbEntreprise": null,
  "nbSalarie": null,
  "plh": {
    "id": 532,
    "logementsPrevus": null,
    "logementsLivres": null,
    "date": null,
    "description": null
  },
  "entiteReferente": {
    "id": 1,
    "code": "SAM",
    "libelle": "SAm",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "objectifs": "Enjeux 02/02",
  "informationsProgrammation": [
    {
      "id": 6,
      "typeProgrammation": {
        "id": 3,
        "code": "AUTRE",
        "libelle": "Autre",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation autre 02/02"
    },
    {
      "id": 5,
      "typeProgrammation": {
        "id": 4,
        "code": "EQUIPEMENT",
        "libelle": "Equipement",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation équipement 02/02"
    },
    {
      "id": 7,
      "typeProgrammation": {
        "id": 2,
        "code": "ACTIVITES",
        "libelle": "Activités",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation activités 02/02"
    }
  ],
  "vocationZa": {
    "id": 2,
    "code": "ARTISANAT",
    "libelle": "Artisanat",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "contributions": [
    {
      "id": 1,
      "typeContribution": {
        "id": 2,
        "code": "CONTRIBUTION_ENJEUX",
        "libelle": "Contribution Enjeux",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Enjeux généraux 02/02"
    },
    {
      "id": 15,
      "typeContribution": {
        "id": 1,
        "code": "CONTRIBUTION_TRAITEE",
        "libelle": "Contribution traitée",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Principales prises en compte 02/02"
    },
    {
      "id": 16,
      "typeContribution": {
        "id": 3,
        "code": "CONTRIBUTION_AVENIR",
        "libelle": "Contribution avenir",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Comment aller plus loin ? 02/02"
    }
  ],
  "pafTaux": 0.5,
  "typeOccupation": {
    "id": 8,
    "code": "ACTIVITES",
    "libelle": "Activités",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "outilFoncier": {
    "id": 4,
    "code": "DPUAME",
    "libelle": "DPU délégué à l'aménageur",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "amenageurs": [
    {
      "id": 17,
      "typeAmenageur": {
        "id": 2,
        "code": "RM",
        "libelle": "Rennes Métropole",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "nom": "test 02/02"
    }
  ],
  "outilAmenagement": "Outil d'aménagement 02/02",
  "etude": "Etudes à prévoir 02/02",
  "localisation": "test2",
  "usageActuel": "Usage actuel 02/02",
  "avancementAdministratif": "Avancement administratif de l'opération 02/02",
  "environnement": "Dossiers environnementaux 02/02",
  "surfaceRealisee": 77,
  "concertation": {
    "id": 18,
    "dateDebut": "2023-02-14T11:03:31.694+00:00",
    "dateFin": "2023-02-15T11:03:31.694+00:00"
  },
  "actions": [
    {
      "id": 19,
      "typeAction": {
        "id": 1,
        "code": "ACTION",
        "libelle": "Action",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Actions à mener par RM 02/02"
    }
  ],
  "acteurs": [
    {
      "id": 33,
      "typeActeur": {
        "id": 2,
        "code": "ACT_EXT",
        "libelle": "Acteurs ou partenaires externes",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Acteurs et partenaires externes 02/02"
    },
    {
      "id": 32,
      "typeActeur": {
        "id": 1,
        "code": "ACT_INT",
        "libelle": "Services ou personnes internes",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Services ou personnes internes 02/02"
    }
  ],
  "plui": {
    "densiteOap": 77,
    "pluiDisposition": "Dispositions réglementaires 02/02",
    "pluiAdaptation": "Adaptations PLUI 02/02"
  },
  "createUser": null,
  "createDate": null,
  "modifUser": null,
  "modifDate": null,
  "surfaceParent": 77.9787,
  "descriptionsFoncier": [
    {
      "description": "Maitrise foncière publique",
      "id": 2,
      "taux": 0,
      "typeFoncier": {
        "id": 2
      }
    }
  ],
  "financements": [
    {
      "description": "Test LVP 02/02/2023",
      "id": 1,
      "typeFinancement": {
        "id": 1
      }
    }
  ]
}
Gaetanbrl commented 1 year ago

Issue créer par une évolution des codes des types de financement en base.

Issue déjà connue :

https://github.com/sigrennesmetropole/geor_tabou2_front/issues/231#issuecomment-1191217031

=============

  1. Aller sur le swagger
  2. Appeler l'opération 100
  3. Modifier le type de financement publique
  4. Voir l'erreur dans la console
react-dom.development.js:501 Uncaught TypeError: Cannot read properties of undefined (reading 'code')
    at eval (Tabou2CadreAccord.jsx:68:105)
    at Array.filter (<anonymous>)
    at changeFoncier (Tabou2CadreAccord.jsx:68:41)
    at Object.change (Tabou2CadreAccord.jsx:90:28)
    at onChange (Tabou2CadreAccord.jsx:436:25)
  1. Voir que le code existant est : DPUCOM
{
    "id": 12
    , "typeFoncier": {
        "id": 2
        , "code": "DPUCOM"
        , "libelle": "DPU délégué à la commune"
        , "dateInactif": null
        , "createUser": "d.cottencin"
        , "createDate": "2022-08-04T22:00:00.000+00:00"
    }
    , "description": "Maitrise foncière publique test LVP"
    , "taux": 0.99
}
  1. Voir que le code connu à l'origine dans le référentiel de l'API est PUBLIQUE

https://github.com/sigrennesmetropole/geor_tabou2_front/blob/97ed7e6dc2140248fbcd116d9e4cd5780f35c2a8/js/extension/components/form/identify/Tabou2CadreAccord.jsx#L58

Le problème est le même pour le PRIVE.

Ce problème aurait du être anticiper lors du changement de code dans l'API.

Gaetanbrl commented 1 year ago

Après vérification, les codes ont bien changés :

https://portail-test.sig.rennesmetropole.fr/tabou2/outils-fonciers?asc=true

Analyse :

Lorsqu'on saisi une valeur ou un libellé pour le type de financement, on cherche à ajouter l'information pour un type qui existe en base :

A l'appel de l'API on a obtenu les codes suivants :

https://portail-test.sig.rennesmetropole.fr/tabou2/outils-fonciers?asc=tru

Sauf qu'on recherche "PUBLIQUE" qui n'existe plus. L'opération n'aboutit pas et retourne une erreur.

Gaetanbrl commented 1 year ago

@LVP35 quels sont les codes à utiliser pour nos deux champs selon la liste fournies par l'API ?

LVP35 commented 1 year ago

Voici l'extrait de la table tabou_type_foncier :

tabou_type_foncier.csv

LVP35 commented 1 year ago

Les codes à utliser sont : DPUCOM et DPUAME

Gaetanbrl commented 1 year ago

Les codes à utliser sont : DPUCOM et DPUAME

c'est noté, mais lequel correspond au prive et lequel au public ?

Gaetanbrl commented 1 year ago

Modifications poussées, zip à récupérer (via git action) et à installer dans portail test pour test des correctifs @LVP35

LVP35 commented 1 year ago

Erreur lors de la génération du JSON sur la partie financement, l'id et le type de financement ne sont pas envoyés :

Voici le JSON envoyé sur PUT https://portail-test.sig.rennesmetropole.fr/tabou2/v2/operations

{
  "id": 100,
  "nature": {
    "id": 1,
    "libelle": "ZAC",
    "dateInactif": null
  },
  "vocation": {
    "id": 2,
    "libelle": "Mixte",
    "code": "MIXTE"
  },
  "decision": {
    "id": 3,
    "libelle": "Délibération du Conseil Municipal",
    "code": "DELIBERATION_CONSEIL_M"
  },
  "maitriseOuvrage": {
    "id": 1,
    "libelle": "Communale",
    "code": "COMMUNALE"
  },
  "modeAmenagement": {
    "id": 2,
    "libelle": "CPA",
    "code": "CPA"
  },
  "consommationEspace": {
    "id": 2,
    "libelle": "Renouvellement urbain",
    "code": "RENOUVELLEMENT"
  },
  "etape": {
    "id": 6,
    "libelle": "Opérationnel",
    "code": "OPERATIONNEL_PUBLIC",
    "type": "NORMAL",
    "mode": "PUBLIC"
  },
  "secteur": false,
  "diffusionRestreinte": false,
  "code": "O-100",
  "nom": "ZAC Baud-Chardonnet",
  "operation": "2 700 logements\n7 250 m²  de commerces et d'activités\n56 000 m² de bureaux\n34 000 m² secteur universitaire, équipements.",
  "description": "Sur l'ancien site industriel de la plaine de Baud, à deux pas du centre-ville et de la gare, le projet s'étend sur 35 hectares. Bordé  au nord par la Vilaine et au sud par les voies ferrées, il se dessine comme une île. Depuis 2014, le pont Vaclav Havel relie Baud Chardonnet à l'axe est-ouest et permet de rejoindre à pied le campus universitaire de Beaulieu, situé sur l'autre rive. À court terme, ce quartier,  qui s'inscrit dans la perspective des quais historiques, sera facilement accessible par une passerelle piétonne..",
  "idEmprise": 84,
  "autorisationDate": "2004-06-13T22:00:00.000+00:00",
  "operationnelDate": "2010-07-04T22:00:00.000+00:00",
  "clotureDate": "2023-02-15T11:03:31.694+00:00",
  "numAds": "123456-02-02",
  "surfaceTotale": 35,
  "nbLogementsPrevu": 2700,
  "scot": null,
  "densiteScot": 33,
  "nbEntreprise": null,
  "nbSalarie": null,
  "plh": {
    "id": 532,
    "logementsPrevus": 2555,
    "logementsLivres": 2555,
    "date": "2023-02-03T11:03:31.694+00:00",
    "description": "Convention PLH 02/02"
  },
  "entiteReferente": {
    "id": 1,
    "code": "SAM",
    "libelle": "SAm",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "objectifs": "Enjeux 02/02",
  "informationsProgrammation": [
    {
      "id": 6,
      "typeProgrammation": {
        "id": 3,
        "code": "AUTRE",
        "libelle": "Autre",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation autre 02/02"
    },
    {
      "id": 5,
      "typeProgrammation": {
        "id": 4,
        "code": "EQUIPEMENT",
        "libelle": "Equipement",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation équipement 02/02"
    },
    {
      "id": 7,
      "typeProgrammation": {
        "id": 2,
        "code": "ACTIVITES",
        "libelle": "Activités",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Programmation activités 02/02"
    },
    {
      "id": 37,
      "typeProgrammation": {
        "id": 1,
        "code": "HABITAT",
        "libelle": "Habitat",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Produits logements/répartition 02/02"
    }
  ],
  "vocationZa": {
    "id": 2,
    "code": "ARTISANAT",
    "libelle": "Artisanat",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "contributions": [
    {
      "id": 1,
      "typeContribution": {
        "id": 2,
        "code": "CONTRIBUTION_ENJEUX",
        "libelle": "Contribution Enjeux",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Enjeux généraux 02/02"
    },
    {
      "id": 15,
      "typeContribution": {
        "id": 1,
        "code": "CONTRIBUTION_TRAITEE",
        "libelle": "Contribution traitée",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Principales prises en compte 02/02"
    },
    {
      "id": 16,
      "typeContribution": {
        "id": 3,
        "code": "CONTRIBUTION_AVENIR",
        "libelle": "Contribution avenir",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Comment aller plus loin ? 02/02"
    }
  ],
  "descriptionsFoncier": [
    {
      "id": 13,
      "typeFoncier": {
        "id": 3,
        "code": "DPUAME",
        "libelle": "DPU délégué à l'aménageur",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Maitrise foncière prive test GB",
      "taux": 3
    },
    {
      "id": 12,
      "typeFoncier": {
        "id": 2,
        "code": "DPUCOM",
        "libelle": "DPU délégué à la commune",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Maitrise foncière publique test LVP",
      "taux": 0.99
    }
  ],
  "pafTaux": 0.8,
  "typeOccupation": {
    "id": 8,
    "code": "ACTIVITES",
    "libelle": "Activités",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "outilFoncier": {
    "id": 4,
    "code": "DPUAME",
    "libelle": "DPU délégué à l'aménageur",
    "dateInactif": null,
    "createUser": "d.cottencin",
    "createDate": "2022-08-04T22:00:00.000+00:00"
  },
  "amenageurs": [
    {
      "id": 21,
      "typeAmenageur": {
        "id": 2,
        "code": "RM",
        "libelle": "Rennes Métropole",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "nom": ""
    }
  ],
  "outilAmenagement": "Outil d'aménagement 02/02",
  "etude": "Etudes à prévoir 02/02",
  "localisation": "test23",
  "usageActuel": "Usage actuel 02/02",
  "avancementAdministratif": "Avancement administratif de l'opération 02/02",
  "environnement": "Dossiers environnementaux 02/02",
  "surfaceRealisee": 77,
  "concertation": {
    "id": 18,
    "dateDebut": "2023-02-14T11:03:31.694+00:00",
    "dateFin": "2023-02-15T11:03:31.694+00:00"
  },
  "financements": [
    {
      "description": "test 03/02"
    }
  ],
  "actions": [
    {
      "id": 19,
      "typeAction": {
        "id": 1,
        "code": "ACTION",
        "libelle": "Action",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Actions à mener par RM 02/02"
    }
  ],
  "acteurs": [
    {
      "id": 33,
      "typeActeur": {
        "id": 2,
        "code": "ACT_EXT",
        "libelle": "Acteurs ou partenaires externes",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Acteurs et partenaires externes 02/02"
    },
    {
      "id": 32,
      "typeActeur": {
        "id": 1,
        "code": "ACT_INT",
        "libelle": "Services ou personnes internes",
        "dateInactif": null,
        "createUser": "d.cottencin",
        "createDate": "2022-08-04T22:00:00.000+00:00"
      },
      "description": "Services ou personnes internes 02/02"
    }
  ],
  "plui": {
    "densiteOap": 77,
    "pluiDisposition": "Dispositions réglementaires 02/02",
    "pluiAdaptation": "Adaptations PLUI 02/02"
  },
  "createUser": null,
  "createDate": null,
  "modifUser": null,
  "modifDate": null,
  "surfaceParent": 77.9787
}

Et voici l'attendu tel que défini dans le DTO :

"financements": [
    {
      "description": "string",
      "id": 0,
      "typeFinancement": {
        "code": "string",
        "createDate": "2023-02-03T10:42:11.426Z",
        "createUser": "string",
        "dateInactif": "2023-02-03T10:42:11.426Z",
        "id": 0,
        "libelle": "string"
      }
    }
  ]
Gaetanbrl commented 1 year ago

non reproduis, vu sur PF de test :

image

Suspicion problème de cache.

LVP35 commented 1 year ago

En effet il s'agissait d'un problème de cache, point à ignorer.