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

Compléter les historiques de Déclarations #1482

Open
wants to merge 15 commits into
base: staging
Choose a base branch
from
Open

Conversation

pletelli
Copy link
Collaborator

@pletelli pletelli commented Jan 17, 2025

Closes #1465

Cette PR permet d'importer certaines informations qui étaient manquantes dans les déclarations historiques, notamment :

Produit

  • article
  • populations
  • conditions_not_recommended
  • effects

Composition

  • declaredSubstance => elles n'existaient pas de cette manière dans TeleIcare (mais en tant qu'Ingrédient)
  • Plant
  • MO
  • Ingredient
  • computedSubstance

TODO next :

  • conversion des quantité (float vers bigint)
  • conversion des ingrédients qui ont changé de type depuis Compl'Alim (ou affichage d'une erreur pour les ingrédients qui sont devenus obsolètes)
    Import de champs
  • entreprise mandataire/mandatée
    • address
    • postal_code
    • city
    • country
  • other_effects
  • other_conditions

)
)
]
)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai du mal à comprendre ce code. Je pense que c'est surtout car je n'ai pas les infos sur ica/vrs, population cible vs population... mais j'ai une question et une suggestion:
Question: est-ce qu'il existe une risque de MultipleObjectsReturned pour les gets ?

Suggestion:

cible_populations = Ica...Declaree.objects.filter(...)
populations = [Population.objects.get(...) for population in cible_populations]
declaration.populations.set(populations)

et pour les conditions aussi. Après, je sais pas si cible_populations est le bon nom de variable

)
)
]
)
declaration.save()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

je crois que c'est pas necessaire de faire ça après un set, mais faut tester

)
)
]
)
declaration.save()
nb_created_declarations += 1
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

je me demande si c'est mieux de mettre ça au dessus de ligne 278 si jamais il y a une erreur pas attendu avec les sets ?

declaration.save()
nb_created_declarations += 1

except IntegrityError:
# cette Déclaration a déjà été créée
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pour confirmer : si la déclaration est déjà créée, on veut pas MAJ les populations ni les conditions ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oui et non.
Pour le moment cet import est plutôt pensé comme un import One-Shot.
Et même si je vais l'effectuer 2 fois, je pensais d'abord supprimer toutes les déclarations historiques (car elles ne peuvent pour le moment pas avoir été modifiées) pour les réimporter entièrement.
Mais c'est vrai que je pourrais envisager de juste mettre à jour des champs ManyToMany

@@ -68,7 +68,7 @@ class Meta:

dcl_ident = factory.Sequence(lambda n: n + 1)
cplalim = factory.SubFactory(ComplementAlimentaireFactory)
tydcl_ident = factory.Faker("pyint", min_value=0, max_value=20)
tydcl_ident = factory.Faker("pyint", min_value=0, max_value=2)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pourquoi le changement ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dans TeleIcare, ce champ ne peut avoir que 3 valeurs (0, 1, 2) car il n'y à que trois types (Art 15, Art 16, Simplifiée)

class Meta:
managed = False
db_table = "ica_population_cible_declaree"
unique_together = (("vrsdecl_ident", "popcbl_ident"),)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Est-ce que c'est possible d'avoir plusieurs lignes avec le même vrsdecl_ident alors ? Je demande car "primary_key=True implies null=False and unique=True." - https://docs.djangoproject.com/en/5.2/ref/models/fields/#primary-key
alors si il y a plusieurs qui sont les mêmes faut pas ajouter ligne 104 et 117 ?
Sinon, cette ligne unique_together est superflu

# TODO: ces champs proviennent de tables pas encore importées
# populations=
# conditions_not_recommended=
# other_conditions=
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ces changements couvrent aussi other_conditions ?

Copy link
Collaborator Author

@pletelli pletelli Jan 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pas encore, je le ferais dans une future PR

@hfroot

This comment was marked as outdated.

@pletelli pletelli changed the title Compléter les historiques de Déclarations [WIP] Compléter les historiques de Déclarations Jan 21, 2025
@hfroot hfroot marked this pull request as draft January 21, 2025 16:55
@pletelli pletelli requested review from hfroot and alemangui January 24, 2025 14:48
@pletelli pletelli marked this pull request as ready for review January 24, 2025 14:48
@pletelli pletelli changed the title [WIP] Compléter les historiques de Déclarations Compléter les historiques de Déclarations Jan 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Ajout des données manquantes aux Déclarations historiques
2 participants