Projet

Général

Profil

Development #19383

factoriser la récupération des éléments de panier à payer

Ajouté par Frédéric Péters il y a plus de 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
11 octobre 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Pour le moment il y a le même enchainement de filter()/exclude() à toute une série d'endroits.

D'une part ce n'est pas terrible, d'autre part quand jamais on voudra exclure du panier les éléments en attente de paiement (#19362), ça fera trop d'endroits à modifier.


Fichiers

Révisions associées

Révision 055151fc (diff)
Ajouté par Frédéric Péters il y a plus de 6 ans

lingo: factor items to be paid queryset in a classmethod (#19383)

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 6 ans

Pas compris (pas cherché) comment test_successfull_items_payment pouvait fonctionner avant; le callback doit arriver avant le retour, pour marquer les éléments comme étant payés.

#2

Mis à jour par Thomas Noël il y a plus de 6 ans

le "return len(items) > 0" pourrait s'optimiser avec un count() dans la requête précente

Au niveau du get_queryset :

        return BasketItem.objects.filter(user=self.request.user.id,
                payment_date__isnull=True,
                cancellation_date__isnull=True)

pour moi c'est différent de ce qu'on fait dans get_items_to_be_paid :
        return cls.objects.filter(
                user=user,
                payment_date__isnull=True
                ).exclude(cancellation_date__isnull=False)

(where .. and .. dans le premier, where .. or ..., dans le second, non ?

#3

Mis à jour par Frédéric Péters il y a plus de 6 ans

Pour le premier c'est payment_date = null AND cancellation_date = null et le second payment_date = null AND (not (cancellation_date != null)).

#4

Mis à jour par Thomas Noël il y a plus de 6 ans

Quid alors d'utiliser la première forme dans get_items_to_be_paid ? (moi je la comprend mieux, mais c'est peut-être juste moi)

#5

Mis à jour par Frédéric Péters il y a plus de 6 ans

Ok pour la première forme; patch à jour avec remplacement du code similaire qui existait encore à deux autres endroits.

#6

Mis à jour par Thomas Noël il y a plus de 6 ans

Ack (à pousser vite vers les recettes, je suis de nature inquiète quand on touche au paiement)

#7

Mis à jour par Thomas Noël il y a plus de 6 ans

  • Statut changé de En cours à Résolu (à déployer)
commit 055151fc8bf34903386d7f6a3156274796064524 (HEAD -> master, origin/master, origin/HEAD)
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Wed Oct 11 17:20:56 2017 +0200

    lingo: factor items to be paid queryset in a classmethod (#19383)

#8

Mis à jour par Frédéric Péters il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF