Make cancel notifications optional

This commit is contained in:
Raphael Michel
2017-07-06 12:04:35 +02:00
parent d444935140
commit 21d432a3ca
3 changed files with 10 additions and 4 deletions

View File

@@ -732,10 +732,10 @@ def perform_order(self, event: str, payment_provider: str, positions: List[str],
@app.task(base=ProfiledTask, bind=True, max_retries=5, default_retry_delay=1, throws=(OrderError,))
def cancel_order(self, order: int, user: int=None):
def cancel_order(self, order: int, user: int=None, send_mail: bool=True):
try:
try:
return _cancel_order(order, user)
return _cancel_order(order, user, send_mail)
except LockTimeoutException:
self.retry(exc=OrderError(error_messages['busy']))
except (MaxRetriesExceededError, LockTimeoutException):

View File

@@ -13,7 +13,13 @@
<form method="post" href="">
{% csrf_token %}
<input type="hidden" name="status" value="c" />
<input type="hidden" name="status" value="c"/>
<div class="checkbox">
<label>
<input type="checkbox" name="send_email" value="on" checked="checked">
{% trans "Notify user by e-mail" %}
</label>
</div>
<div class="row checkout-button-row">
<div class="col-md-4">
<a class="btn btn-block btn-default btn-lg"

View File

@@ -206,7 +206,7 @@ class OrderTransition(OrderView):
else:
messages.success(self.request, _('The order has been marked as paid.'))
elif self.order.status == Order.STATUS_PENDING and to == 'c':
cancel_order(self.order, user=self.request.user)
cancel_order(self.order, user=self.request.user, send_mail=self.request.POST.get("send_email") == "on")
messages.success(self.request, _('The order has been canceled.'))
elif self.order.status == Order.STATUS_PAID and to == 'n':
self.order.status = Order.STATUS_PENDING