diff --git a/src/pretix/api/views/order.py b/src/pretix/api/views/order.py index 4cd75b1bf2..db46cce36b 100644 --- a/src/pretix/api/views/order.py +++ b/src/pretix/api/views/order.py @@ -608,9 +608,22 @@ class OrderViewSet(viewsets.ModelViewSet): ) with language(order.locale, self.request.event.settings.region): + payment = order.payments.last() + order_placed.send(self.request.event, order=order) if order.status == Order.STATUS_PAID: order_paid.send(self.request.event, order=order) + order.log_action( + 'pretix.event.order.paid', + { + 'provider': payment.provider if payment else None, + 'info': {}, + 'date': now().isoformat(), + 'force': False + }, + user=request.user if request.user.is_authenticated else None, + auth=request.auth, + ) gen_invoice = invoice_qualified(order) and ( (order.event.settings.get('invoice_generate') == 'True') or @@ -621,7 +634,6 @@ class OrderViewSet(viewsets.ModelViewSet): invoice = generate_invoice(order, trigger_pdf=True) if send_mail: - payment = order.payments.last() free_flow = ( payment and order.total == Decimal('0.00') and order.status == Order.STATUS_PAID and not order.require_approval and payment.provider == "free" diff --git a/src/tests/api/test_orders.py b/src/tests/api/test_orders.py index 43793c86a8..ed68f97745 100644 --- a/src/tests/api/test_orders.py +++ b/src/tests/api/test_orders.py @@ -3133,6 +3133,7 @@ def test_order_create_free(token_client, organizer, event, item, quota, question assert p.provider == "free" assert p.amount == o.total assert p.state == "confirmed" + assert o.all_logentries().count() == 2 @pytest.mark.django_db