Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pourquoi UTC ? Si on veut la date de création du diag, cela me semble plus logique de convertir le timestamp en se basant sur Europe/Paris non ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Venant du modèle,
created_at
est undatetime.datetime
avec la TZ "Europe/Paris".De ce que j'ai compris là où ça part en eau de boudin c'est après, la table ainsi que les données sont créées directement via
psycopg
ce qui fait qu'a priori la TZ n'est pas configurée au niveau de la connexion (ce qui est le cas pourdjango.db.connection
qu'on utilise pour lire les données) donc on est en UTC mais on envois un timestamptz donc PG fait la conversion :On se retrouve donc avec la date UTC et non pas
Europoe/Paris
stockée dans la DB, vu que beaucoup de tests du fichier mentionne explicitement la TZ UTC au moment des comparaisons c'est (j'espère) le comportement voulu, et quitte à faire une erreur autant qu'elle soit (à peu près) la même partout, mais oui c'est pas ouf...There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ça ne me choque pas de stocker la date en UTC.
Mais quand on demande à quelle date a été créé un diagnostic, cela me semble plus logique de répondre en utilisant la TZ Europe/Paris. Mais du coup l'erreur originelle vient de
les-emplois/itou/metabase/tables/job_seekers.py
Line 297 in b47fe4a
en envoyant une
datetime
dans une colonne de typedate
sans faire de conversion explicite.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Si la logique était de stocker les dates en
Europe/Paris
, alors oui.Par contre cette situation et conversion arrive aussi pour plein d'autres champs donc la logique, par voie de fait, est actuellement de stocker les dates en
UTC
.Je doute qu'on se lance dans ce changement/correction à plus ou moins court terme car un certain nombre de ces champs ne devraient pas être tronqué en fait, mais derrière ça veux dire tout adapter dans les modèles DBT et metabase 😓.