Development #19383
factoriser la récupération des éléments de panier à payer
0%
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
Historique
Mis à jour par Frédéric Péters il y a plus de 6 ans
- Fichier 0001-lingo-factor-items-to-be-paid-queryset-in-a-classmet.patch 0001-lingo-factor-items-to-be-paid-queryset-in-a-classmet.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
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.
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 ?
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)).
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)
Mis à jour par Frédéric Péters il y a plus de 6 ans
- Fichier 0001-lingo-factor-items-to-be-paid-queryset-in-a-classmet.patch 0001-lingo-factor-items-to-be-paid-queryset-in-a-classmet.patch ajouté
Ok pour la première forme; patch à jour avec remplacement du code similaire qui existait encore à deux autres endroits.
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)
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)
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
lingo: factor items to be paid queryset in a classmethod (#19383)