From adfd7834fb4312fceb76fb876ab4269b73ba0763 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 16 Jun 2020 11:00:28 +0200 Subject: [PATCH] Add subevent date to ticket filename --- src/pretix/base/services/tickets.py | 16 +++++++++++++--- src/pretix/presale/views/order.py | 16 ++++++++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/pretix/base/services/tickets.py b/src/pretix/base/services/tickets.py index 1d1f70de5..facb0ee82 100644 --- a/src/pretix/base/services/tickets.py +++ b/src/pretix/base/services/tickets.py @@ -163,10 +163,20 @@ def get_tickets_for_order(order, base_position=None): if ct.type == 'text/uri-list': continue + if pos.subevent: + # Subevent date in filename improves accessibility e.g. for screen reader users + fname = "{}-{}-{}-{}-{}{}".format( + order.event.slug.upper(), order.code, pos.positionid, + pos.subevent.date_from.strftime('%Y_%m_%d'), + ct.provider, ct.extension + ) + else: + fname = "{}-{}-{}-{}{}".format( + order.event.slug.upper(), order.code, pos.positionid, + ct.provider, ct.extension + ) tickets.append(( - "{}-{}-{}-{}{}".format( - order.event.slug.upper(), order.code, pos.positionid, ct.provider, ct.extension, - ), + fname, ct )) except: diff --git a/src/pretix/presale/views/order.py b/src/pretix/presale/views/order.py index ee6489756..3f00ffe95 100644 --- a/src/pretix/presale/views/order.py +++ b/src/pretix/presale/views/order.py @@ -885,10 +885,18 @@ class OrderDownloadMixin: return resp else: resp = FileResponse(value.file.file, content_type=value.type) - resp['Content-Disposition'] = 'attachment; filename="{}-{}-{}-{}{}"'.format( - self.request.event.slug.upper(), self.order.code, self.order_position.positionid, - self.output.identifier, value.extension - ) + if self.order_position.subevent: + # Subevent date in filename improves accessibility e.g. for screen reader users + resp['Content-Disposition'] = 'attachment; filename="{}-{}-{}-{}-{}{}"'.format( + self.request.event.slug.upper(), self.order.code, self.order_position.positionid, + self.order_position.subevent.date_from.strftime('%Y_%m_%d'), + self.output.identifier, value.extension + ) + else: + resp['Content-Disposition'] = 'attachment; filename="{}-{}-{}-{}{}"'.format( + self.request.event.slug.upper(), self.order.code, self.order_position.positionid, + self.output.identifier, value.extension + ) return resp elif isinstance(value, CachedCombinedTicket): resp = FileResponse(value.file.file, content_type=value.type)