gip-inclusion / rdv-insertion

Application permettant de fluidifier le parcours d’accompagnement social et professionnel sur les territoires
https://www.rdv-insertion.fr
13 stars 4 forks source link

[Bug] Ajout de tag parfois impossible en raison de l'absence de contrainte d'unicité #2306

Closed amaurydubot closed 1 month ago

amaurydubot commented 2 months ago

Problème

Un tel bug a pu être observé (corrigé directement en prod par @Holist) : certains tags comme le tag STC de l'organisation des Yvelines SAS RAMBOUILLET (id rdv-i 402) apparaissait deux fois et son ajout était impossible : cela aboutissait à une erreur 422. Image Image

Solution

Cela était dû à l'absence de contraintes d'unicité des TagOrganisation. Cf. thread MM : https://mattermost.incubateur.net/betagouv/pl/9d1yrm7p17g8pcjyy499t363yo

Holist commented 2 months ago

Techniquement c'est lié à l'absence de contrainte d'unicité des TagOrganisation sur les Tag et les Organisation. Dans la configuration de l'organisation on peut ajouter plusieurs fois le même tag (et on ne peut pas retirer le doublon sans supprimer toutes les assignation au tag des usagers). Je fais un fix directement en DB en supprimant les doublons récupérés avec :

duplicates = TagOrganisation.select(:tag_id, :organisation_id)
                            .group(:tag_id, :organisation_id)
                            .having('COUNT(*) > 1')

En attendant un fix du code.