forked from CGM_Public/pretix_original
Add force-reactivate checkbox to order (#1997)
This commit is contained in:
@@ -75,7 +75,7 @@ class ExtendForm(I18nModelForm):
|
|||||||
return super().save(commit)
|
return super().save(commit)
|
||||||
|
|
||||||
|
|
||||||
class ConfirmPaymentForm(forms.Form):
|
class ForceQuotaConfirmationForm(forms.Form):
|
||||||
force = forms.BooleanField(
|
force = forms.BooleanField(
|
||||||
label=_('Overbook quota and ignore late payment'),
|
label=_('Overbook quota and ignore late payment'),
|
||||||
help_text=_('If you check this box, this operation will be performed even if it leads to an overbooked quota '
|
help_text=_('If you check this box, this operation will be performed even if it leads to an overbooked quota '
|
||||||
@@ -101,7 +101,15 @@ class ConfirmPaymentForm(forms.Form):
|
|||||||
del self.fields['force']
|
del self.fields['force']
|
||||||
|
|
||||||
|
|
||||||
class CancelForm(ConfirmPaymentForm):
|
class ConfirmPaymentForm(ForceQuotaConfirmationForm):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class ReactivateOrderForm(ForceQuotaConfirmationForm):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class CancelForm(ForceQuotaConfirmationForm):
|
||||||
send_email = forms.BooleanField(
|
send_email = forms.BooleanField(
|
||||||
required=False,
|
required=False,
|
||||||
label=_('Notify customer by email'),
|
label=_('Notify customer by email'),
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
<form method="post" class="form-horizontal" href="">
|
<form method="post" class="form-horizontal" href="">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
{% bootstrap_form form layout='horizontal' horizontal_label_class='sr-only' horizontal_field_class='col-md-12' %}
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
<a class="btn btn-default btn-lg"
|
<a class="btn btn-default btn-lg"
|
||||||
href="{% url "control:event.order" event=request.event.slug organizer=request.event.organizer.slug code=order.code %}">
|
href="{% url "control:event.order" event=request.event.slug organizer=request.event.organizer.slug code=order.code %}">
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ from pretix.control.forms.orders import (
|
|||||||
ExtendForm, MarkPaidForm, OrderContactForm, OrderFeeChangeForm,
|
ExtendForm, MarkPaidForm, OrderContactForm, OrderFeeChangeForm,
|
||||||
OrderLocaleForm, OrderMailForm, OrderPositionAddForm,
|
OrderLocaleForm, OrderMailForm, OrderPositionAddForm,
|
||||||
OrderPositionAddFormset, OrderPositionChangeForm, OrderPositionMailForm,
|
OrderPositionAddFormset, OrderPositionChangeForm, OrderPositionMailForm,
|
||||||
OrderRefundForm, OtherOperationsForm,
|
OrderRefundForm, OtherOperationsForm, ReactivateOrderForm,
|
||||||
)
|
)
|
||||||
from pretix.control.permissions import EventPermissionRequiredMixin
|
from pretix.control.permissions import EventPermissionRequiredMixin
|
||||||
from pretix.control.signals import order_search_forms
|
from pretix.control.signals import order_search_forms
|
||||||
@@ -1424,11 +1424,24 @@ class OrderExtend(OrderView):
|
|||||||
class OrderReactivate(OrderView):
|
class OrderReactivate(OrderView):
|
||||||
permission = 'can_change_orders'
|
permission = 'can_change_orders'
|
||||||
|
|
||||||
|
@cached_property
|
||||||
|
def reactivate_form(self):
|
||||||
|
return ReactivateOrderForm(
|
||||||
|
instance=self.order,
|
||||||
|
data=self.request.POST if self.request.method == "POST" else None,
|
||||||
|
)
|
||||||
|
|
||||||
def post(self, *args, **kwargs):
|
def post(self, *args, **kwargs):
|
||||||
|
if not self.reactivate_form.is_valid():
|
||||||
|
return render(self.request, 'pretixcontrol/order/reactivate.html', {
|
||||||
|
'form': self.reactivate_form,
|
||||||
|
'order': self.order,
|
||||||
|
})
|
||||||
try:
|
try:
|
||||||
reactivate_order(
|
reactivate_order(
|
||||||
self.order,
|
self.order,
|
||||||
user=self.request.user
|
user=self.request.user,
|
||||||
|
force=self.reactivate_form.cleaned_data.get('force', False)
|
||||||
)
|
)
|
||||||
messages.success(self.request, _('The order has been reactivated.'))
|
messages.success(self.request, _('The order has been reactivated.'))
|
||||||
except OrderError as e:
|
except OrderError as e:
|
||||||
@@ -1453,6 +1466,7 @@ class OrderReactivate(OrderView):
|
|||||||
|
|
||||||
def get(self, *args, **kwargs):
|
def get(self, *args, **kwargs):
|
||||||
return render(self.request, 'pretixcontrol/order/reactivate.html', {
|
return render(self.request, 'pretixcontrol/order/reactivate.html', {
|
||||||
|
'form': self.reactivate_form,
|
||||||
'order': self.order,
|
'order': self.order,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user