From ac2fc2de5cfd79d0a3b9ec5d3073f1e0a822898f Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 23 Mar 2020 10:36:38 +0100 Subject: [PATCH] Cancelling events: Allow to cancel all dates in a series --- src/pretix/control/forms/orders.py | 7 +++---- src/tests/base/test_cancelevent.py | 11 +++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/pretix/control/forms/orders.py b/src/pretix/control/forms/orders.py index 27ef75b2f5..489f66f915 100644 --- a/src/pretix/control/forms/orders.py +++ b/src/pretix/control/forms/orders.py @@ -526,8 +526,8 @@ class EventCancelForm(forms.Form): subevent = forms.ModelChoiceField( SubEvent.objects.none(), label=pgettext_lazy('subevent', 'Date'), - required=True, - empty_label=None + required=False, + empty_label=pgettext_lazy('subevent', 'All dates') ) auto_refund = forms.BooleanField( label=_('Automatically refund money if possible'), @@ -655,11 +655,10 @@ class EventCancelForm(forms.Form): 'event': self.event.slug, 'organizer': self.event.organizer.slug, }), - 'data-placeholder': pgettext_lazy('subevent', 'Date') + 'data-placeholder': pgettext_lazy('subevent', 'All dates') } ) self.fields['subevent'].widget.choices = self.fields['subevent'].choices - self.fields['subevent'].required = True else: del self.fields['subevent'] change_decimal_field(self.fields['keep_fee_fixed'], self.event.currency) diff --git a/src/tests/base/test_cancelevent.py b/src/tests/base/test_cancelevent.py index dcda2d8816..c417911fe5 100644 --- a/src/tests/base/test_cancelevent.py +++ b/src/tests/base/test_cancelevent.py @@ -373,6 +373,17 @@ class SubEventCancelTests(TestCase): self.order.refresh_from_db() assert self.order.status == Order.STATUS_CANCELED + @classscope(attr='o') + def test_cancel_all_subevents(self): + cancel_event( + self.event.pk, subevent=None, + auto_refund=True, keep_fee_fixed="0.00", keep_fee_percentage="0.00", + send=True, send_subject="Event canceled", send_message="Event canceled :-(", + user=None + ) + self.order.refresh_from_db() + assert self.order.status == Order.STATUS_CANCELED + @classscope(attr='o') def test_cancel_mixed_order(self): gc = self.o.issued_gift_cards.create(currency="EUR")