Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat add organization and catalog fixtures in init data #374

Merged
merged 4 commits into from
Aug 17, 2022

Conversation

Volubyl
Copy link
Collaborator

@Volubyl Volubyl commented Aug 16, 2022

ref #373

Cette PR ajoute :

  • les fixtures pour ajouter un catalogue et une organization en DB via le initdata

Note : Actuellement cette PR ajoute seulement un catalogue sans que y soit lier un dataset ou qu'un user soit lier à une organization. Cela pourra faire l'objet d'une autre PR

@florimondmanca je bloque un peu sur comment je peux lier un dataset à un catalog via le init data

@Volubyl Volubyl added the back label Aug 16, 2022
@Volubyl Volubyl requested a review from florimondmanca August 16, 2022 13:59
@Volubyl Volubyl self-assigned this Aug 16, 2022
@Volubyl Volubyl force-pushed the feat-add-organization-fixture branch from 3eac006 to 31b519e Compare August 16, 2022 14:04
@Volubyl Volubyl merged commit 94fc34d into master Aug 17, 2022
@Volubyl Volubyl deleted the feat-add-organization-fixture branch August 17, 2022 13:58
@florimondmanca
Copy link
Collaborator

florimondmanca commented Aug 24, 2022

@Volubyl

je bloque un peu sur comment je peux lier un dataset à un catalog via le init data

Le lien entre un dataset et une orga se fait via catalog_record.organization_siret. Pour l'instant cette valeur est mise par défaut sur l'orga "zéro" :

class CreateDataset(CreateDatasetValidationMixin, Command[ID]):
organization_siret: Siret = LEGACY_ORGANIZATION_SIRET

On peut donc d'ores et déjà accepter un params.organization_siret pour les datasets.

Par contre, quand un dataset existe déjà en base, l'initdata essaie de faire un "update" avec les nouveaux params. Or on ne peut pas changer le organization_siret d'un dataset. Par conséquent, si on veut créer des datasets liés explicitement à une orga définie dans l'initdata, il faut :

  • Soit rajouter à l'initdata.yml des datasets avec des IDs différents
  • Soit le définir dans les datasets existants mais à ce moment-là supprimer les données (DELETE FROM datasets;, avec un peu plus de subtilité) et relancer l'initdata
  • Soit mettre à jour les IDs des datasets existants, et "oublier" les datasets avec les anciens IDs qui auraient déjà été créés sur demo, staging, etc. (On peut éventuellement les supprimer par la suite en supprimant à partir de DELETE FROM organization WHERE siret = "00000000000000".)

Je pense aussi qu'on devrait retirer la fonction "si ça existe, alors je mets à jour" pour les datasets dans l'initdata, et passer en mode "création avec les params sinon ok" comme pour le reste des ressources.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants