From 988188b00ad9c6c8efd8238026954a6aabc43b79 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 23 Jan 2023 11:31:35 +0100 Subject: [PATCH] Scheduled exports: Fix missing event context, fix form initial --- src/pretix/base/services/export.py | 1 + src/pretix/control/views/orders.py | 9 +++++++++ src/pretix/control/views/organizer.py | 9 +++++++++ 3 files changed, 19 insertions(+) diff --git a/src/pretix/base/services/export.py b/src/pretix/base/services/export.py index 50fb55494..49c566937 100644 --- a/src/pretix/base/services/export.py +++ b/src/pretix/base/services/export.py @@ -245,6 +245,7 @@ def _run_scheduled_export(schedule, context: Union[Event, Organizer], exporter, subject=schedule.mail_subject, template=LazyI18nString(schedule.mail_template), context=get_email_context(event=context) if isinstance(context, Event) else {}, + event=context if isinstance(context, Event) else None, organizer=context.organizer if isinstance(context, Event) else context, locale=schedule.locale, attach_cached_files=[file], diff --git a/src/pretix/control/views/orders.py b/src/pretix/control/views/orders.py index d5380a825..e6e1241b7 100644 --- a/src/pretix/control/views/orders.py +++ b/src/pretix/control/views/orders.py @@ -2256,6 +2256,15 @@ class ExportMixin: if self.scheduled: initial = self.scheduled.export_form_data + + test_form = ExporterForm(data=self.request.GET, prefix=ex.identifier) + test_form.fields = ex.export_form_fields + for k in initial: + if initial[k] and k in test_form.fields: + try: + initial[k] = test_form.fields[k].to_python(initial[k]) + except Exception: + pass else: # Use form parse cycle to generate useful defaults test_form = ExporterForm(data=self.request.GET, prefix=ex.identifier) diff --git a/src/pretix/control/views/organizer.py b/src/pretix/control/views/organizer.py index 0c9ff966e..c8d87e15b 100644 --- a/src/pretix/control/views/organizer.py +++ b/src/pretix/control/views/organizer.py @@ -1526,6 +1526,15 @@ class ExportMixin: continue if self.scheduled: initial = self.scheduled.export_form_data + + test_form = ExporterForm(data=self.request.GET, prefix=ex.identifier) + test_form.fields = ex.export_form_fields + for k in initial: + if initial[k] and k in test_form.fields: + try: + initial[k] = test_form.fields[k].to_python(initial[k]) + except Exception: + pass else: # Use form parse cycle to generate useful defaults test_form = ExporterForm(data=self.request.GET, prefix=ex.identifier)