Development #5542
Backends: ajouter l'option last_connection_date et creation_date dans le update_or_create
100%
Description
Tout est dans le titre.
Fichiers
Révisions associées
Historique
Mis à jour par Jérôme Schneider il y a plus de 9 ans
- Fichier 0001-backends-add-last_connection_date-and-creation_date-.patch 0001-backends-add-last_connection_date-and-creation_date-.patch ajouté
- Statut changé de Nouveau à En cours
- % réalisé changé de 0 à 60
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a plus de 9 ans
On ne peut pas passer la valeur par défaut comme ça, démonstration avec ce script, qui affichera deux fois la même heure.
#! /usr/bin/env python from datetime import datetime import time def print_time(t=datetime.utcnow()): print t print_time() time.sleep(10) print_time()
Mis à jour par Jérôme Schneider il y a plus de 9 ans
- Fichier 0001-backends-add-last_connection_date-and-creation_date-.patch 0001-backends-add-last_connection_date-and-creation_date-.patch ajouté
Zut je pensais que c'était exécuté à chaque appelle j'aurais du vérifier ! Une nouvelle version qui corrige le problème.
Mis à jour par Frédéric Péters il y a plus de 9 ans
Perso je préfère de loin avoir les paramètres nommés et avoir "if creation_date is None: creation_date = datetime.utcnow()
" dans le corps de la méthode, plutôt que passer par kwargs. (ou creation_date = creation_date or datetime.utcnow()
si on veut ça sur une ligne sans "if").
Mis à jour par Jérôme Schneider il y a plus de 9 ans
- Fichier 0001-backends-add-last_connection_date-and-creation_date-.patch 0001-backends-add-last_connection_date-and-creation_date-.patch ajouté
Un nouveau patch sans kwargs.
Mis à jour par Frédéric Péters il y a plus de 9 ans
Dans le backend sql tu utilises datetime.utcnow() dans le patch mais c'est datetime.now() qui est utilisé dans update_last_connection.
Mis à jour par Jérôme Schneider il y a plus de 9 ans
Ca me semble mieux de migrer en utc surtout avec l'utilisation de plusieurs backends. Je pensais changer le now en utcnow dans le prochain commit. Après je ne suis pas sur d'avoir fait le bon choix.
Mis à jour par Frédéric Péters il y a plus de 9 ans
Il y a aussi des datetime.now() dans le models.py.
creation_date = Column(DateTime, default=datetime.now(), nullable=False) last_connection = Column(DateTime, default=datetime.now())
À lire rapidement la doc de sqlalchemy, par défaut il considère les colonnes de type datetime sans timezone, tout pourrait ainsi être passé à utcnow() (bien sûr il faudrait idéalement convertir les données existantes, mais passons); j'ai aussi regardé vite fait et jamais on n'utilise dans l'UI ces champs, tu confirmes ?
Mis à jour par Jérôme Schneider il y a plus de 9 ans
On Fri, Sep 19, 2014 at 05:01:20PM +0200, redmine@entrouvert.com wrote:
À lire rapidement la doc de sqlalchemy, par défaut il considère les colonnes de type datetime sans timezone, tout pourrait ainsi être passé à utcnow() (bien sûr il faudrait idéalement convertir les données existantes, mais passons); j'ai aussi regardé vite fait et jamais on n'utilise dans l'UI ces champs, tu confirmes ?
Oui je confirme. L'idée de base c'était de faire des statistiques pour
Isabelle mais finalement c'est tombé à l'eau.
Je ne l'utilise que pour débuger actuellement.
Mis à jour par Jérôme Schneider il y a plus de 9 ans
C'est poussé. J'ouvre un autre ticket pour le soucis de date.
commit 4c755abe699f5f5cbf55c5299ed189c7724cee80 Author: Jérôme Schneider <jschneider@entrouvert.com> Date: Fri Sep 19 16:24:53 2014 +0200 backends: add last_connection_date and creation_date to update_or_create Closes #5542
Mis à jour par Jérôme Schneider il y a plus de 9 ans
- Statut changé de En cours à Résolu (à déployer)
- % réalisé changé de 60 à 100
Appliqué par commit commit:4c755abe699f5f5cbf55c5299ed189c7724cee80.
Mis à jour par Jérôme Schneider il y a plus de 9 ans
- Statut changé de Résolu (à déployer) à Fermé
backends: add last_connection_date and creation_date to update_or_create
Closes #5542