From 8dec1abf12e5d7d12eadfc71a91efce38ed3f91e Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Sun, 11 Oct 2015 19:50:08 +0200 Subject: [PATCH] Fixed and simplified PDF exports --- src/pretix/control/views/orders.py | 2 +- src/pretix/plugins/reports/exporters.py | 24 +++++++++++++----------- src/pretix/plugins/reports/signals.py | 4 ++-- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/pretix/control/views/orders.py b/src/pretix/control/views/orders.py index 8e92cd145c..51868d0f21 100644 --- a/src/pretix/control/views/orders.py +++ b/src/pretix/control/views/orders.py @@ -355,4 +355,4 @@ class ExportView(EventPermissionRequiredMixin, TemplateView): cf.expires = now() + timedelta(days=3) cf.save() export(self.request.event.id, str(cf.id), self.exporter.identifier, self.exporter.form.cleaned_data) - return redirect(reverse('presale:cachedfile.download', kwargs={'id': cf.id})) + return redirect(reverse('cachedfile.download', kwargs={'id': str(cf.id)})) diff --git a/src/pretix/plugins/reports/exporters.py b/src/pretix/plugins/reports/exporters.py index 510d756f8f..c92ffae680 100644 --- a/src/pretix/plugins/reports/exporters.py +++ b/src/pretix/plugins/reports/exporters.py @@ -9,11 +9,17 @@ from pretix.base.exporter import BaseExporter from pretix.base.services.stats import order_overview -class Report: +class Report(BaseExporter): name = "report" + def verbose_name(self) -> str: + raise NotImplementedError() + + def identifier(self) -> str: + raise NotImplementedError() + def __init__(self, event): - self.event = event + super().__init__(event) @property def pagesize(self): @@ -21,6 +27,9 @@ class Report: return pagesizes.portrait(pagesizes.A4) + def render(self, form_data): + return 'report-%s.pdf' % self.event.slug, 'application/pdf', self.create() + def get_filename(self): return "%s-%s.pdf" % (self.name, now().strftime("%Y-%m-%d-%H-%M-%S")) @@ -104,6 +113,8 @@ class Report: class OverviewReport(Report): name = "overview" + identifier = 'pdfreport' + verbose_name = _('Order overview (PDF)') @property def pagesize(self): @@ -197,12 +208,3 @@ class OverviewReport(Report): table.setStyle(TableStyle(tstyledata)) story.append(table) return story - - -class OverviewReportExporter(BaseExporter): - identifier = 'pdfreport' - verbose_name = _('Order overview (PDF)') - - def render(self, form_data): - report = OverviewReport(self.event) - return 'report-%s.pdf' % self.event.slug, 'application/pdf', report.create() diff --git a/src/pretix/plugins/reports/signals.py b/src/pretix/plugins/reports/signals.py index 22ab036e25..b15d4cb1f0 100644 --- a/src/pretix/plugins/reports/signals.py +++ b/src/pretix/plugins/reports/signals.py @@ -5,5 +5,5 @@ from pretix.base.signals import register_data_exporters @receiver(register_data_exporters, dispatch_uid="export_overview_report_pdf") def register_report_pdf(sender, **kwargs): - from .exporters import OverviewReportExporter - return OverviewReportExporter + from .exporters import OverviewReport + return OverviewReport