fix(piaf): fix race condition découverte par les nouveaux tests

master
François Poulain 2018-09-25 10:01:59 +02:00 commité par François Poulain
Parent 41a4e04ea7
révision ef8fc2da8e
2 fichiers modifiés avec 6 ajouts et 3 suppressions

Voir le fichier

@ -26,6 +26,7 @@ from django.conf import settings
from django.template.loader import render_to_string
from django.core.mail import EmailMessage
from django.urls import reverse
from django.db.models import Q
from constance import config
from piaf.base import resthys
@ -103,7 +104,7 @@ class TipiPaiement(models.Model):
@classmethod
def set_from_post(cls, data):
paiement = cls.objects.get(
paiement = cls.objects.filter(~Q(result='P')).get(
numcli=data['numcli'],
amount=data['montant']/100,
refdet=data['refdet'],

Voir le fichier

@ -25,6 +25,7 @@ from django.urls import reverse, reverse_lazy
from django.utils.decorators import method_decorator
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponse
from django.db.models import Q
from constance import config
from piaf.base import forms, utils, resthys, models, mixins
@ -96,10 +97,11 @@ class PrepareInvoice(mixins.HackyMessagesMixin, generic.edit.FormView):
if context['invoice']['solde'] > 0:
# create or recycle paiement
try:
paiement = models.TipiPaiement.objects.get(
paiement = models.TipiPaiement.objects.filter(
~Q(result='P')
).get(
pk=self.request.session['paiement'],
related_invoices=context['invoice']['numero'],
result=None,
)
except Exception:
paiement = models.TipiPaiement(