mirror of
https://github.com/pretix/pretix.git
synced 2026-05-05 15:14:04 +00:00
Sendmail: Allow to filter by order date
This commit is contained in:
@@ -65,6 +65,16 @@ class MailForm(forms.Form):
|
||||
label=pgettext_lazy('subevent', 'Only send to customers of dates starting before'),
|
||||
required=False,
|
||||
)
|
||||
created_from = forms.SplitDateTimeField(
|
||||
widget=SplitDateTimePickerWidget(),
|
||||
label=pgettext_lazy('subevent', 'Only send to customers with orders created after'),
|
||||
required=False,
|
||||
)
|
||||
created_to = forms.SplitDateTimeField(
|
||||
widget=SplitDateTimePickerWidget(),
|
||||
label=pgettext_lazy('subevent', 'Only send to customers with orders created before'),
|
||||
required=False,
|
||||
)
|
||||
|
||||
def clean(self):
|
||||
d = super().clean()
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
{% bootstrap_field form.subevents_from layout='horizontal' %}
|
||||
{% bootstrap_field form.subevents_to layout='horizontal' %}
|
||||
{% endif %}
|
||||
{% bootstrap_field form.created_from layout='horizontal' %}
|
||||
{% bootstrap_field form.created_to layout='horizontal' %}
|
||||
{% bootstrap_field form.items layout='horizontal' %}
|
||||
<div class="row">
|
||||
<div class="col-md-9 col-md-offset-3">
|
||||
|
||||
@@ -64,6 +64,10 @@ class SenderView(EventPermissionRequiredMixin, FormView):
|
||||
kwargs['initial']['subevents_from'] = dateutil.parser.parse(logentry.parsed_data['subevents_from'])
|
||||
if logentry.parsed_data.get('subevents_to'):
|
||||
kwargs['initial']['subevents_to'] = dateutil.parser.parse(logentry.parsed_data['subevents_to'])
|
||||
if logentry.parsed_data.get('created_from'):
|
||||
kwargs['initial']['created_from'] = dateutil.parser.parse(logentry.parsed_data['created_from'])
|
||||
if logentry.parsed_data.get('created_to'):
|
||||
kwargs['initial']['created_to'] = dateutil.parser.parse(logentry.parsed_data['created_to'])
|
||||
if logentry.parsed_data.get('subevent'):
|
||||
try:
|
||||
kwargs['initial']['subevent'] = self.request.event.subevents.get(
|
||||
@@ -117,6 +121,10 @@ class SenderView(EventPermissionRequiredMixin, FormView):
|
||||
opq = opq.filter(subevent__date_from__gte=form.cleaned_data.get('subevents_from'))
|
||||
if form.cleaned_data.get('subevents_to'):
|
||||
opq = opq.filter(subevent__date_from__lt=form.cleaned_data.get('subevents_to'))
|
||||
if form.cleaned_data.get('created_from'):
|
||||
opq = opq.filter(order__datetime__gte=form.cleaned_data.get('created_from'))
|
||||
if form.cleaned_data.get('created_to'):
|
||||
opq = opq.filter(order__datetime__lt=form.cleaned_data.get('created_to'))
|
||||
|
||||
orders = orders.annotate(match_pos=Exists(opq)).filter(match_pos=True).distinct()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user