Keep lock duration as small as possible

This commit is contained in:
Raphael Michel
2016-03-20 10:54:41 +01:00
parent cc77f4bc5c
commit 05aed0182e

View File

@@ -68,14 +68,15 @@ def mark_order_paid(order: Order, provider: str=None, info: str=None, date: date
order.payment_manual = manual order.payment_manual = manual
order.status = Order.STATUS_PAID order.status = Order.STATUS_PAID
order.save() order.save()
order.log_action('pretix.event.order.paid', {
'provider': provider, order.log_action('pretix.event.order.paid', {
'info': info, 'provider': provider,
'date': date, 'info': info,
'manual': manual, 'date': date,
'force': force 'manual': manual,
}, user=user) 'force': force
order_paid.send(order.event, order=order) }, user=user)
order_paid.send(order.event, order=order)
mail( mail(
order.email, _('Payment received for your order: %(code)s') % {'code': order.code}, order.email, _('Payment received for your order: %(code)s') % {'code': order.code},
@@ -107,13 +108,13 @@ def mark_order_refunded(order, user=None):
with order.event.lock(): with order.event.lock():
order.status = Order.STATUS_REFUNDED order.status = Order.STATUS_REFUNDED
order.save() order.save()
order.log_action('pretix.event.order.refunded', user=user)
i = order.invoices.filter(is_cancellation=False).last() order.log_action('pretix.event.order.refunded', user=user)
if i: i = order.invoices.filter(is_cancellation=False).last()
generate_cancellation(i) if i:
generate_cancellation(i)
return order return order
@transaction.atomic @transaction.atomic
@@ -132,13 +133,13 @@ def cancel_order(order, user=None):
raise OrderError(_('You cannot cancel this order')) raise OrderError(_('You cannot cancel this order'))
order.status = Order.STATUS_CANCELLED order.status = Order.STATUS_CANCELLED
order.save() order.save()
order.log_action('pretix.event.order.cancelled', user=user)
i = order.invoices.filter(is_cancellation=False).last() order.log_action('pretix.event.order.cancelled', user=user)
if i: i = order.invoices.filter(is_cancellation=False).last()
generate_cancellation(i) if i:
generate_cancellation(i)
return order return order
class OrderError(Exception): class OrderError(Exception):