From 3b585d15cdfb70ac6d27339c65566f8680ef1482 Mon Sep 17 00:00:00 2001 From: Martin Gross Date: Fri, 30 Apr 2021 13:54:27 +0200 Subject: [PATCH] Add first_scan variable for PDF tickets (#2051) --- src/pretix/base/pdf.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/pretix/base/pdf.py b/src/pretix/base/pdf.py index 38cdcc3d4..191f07dcf 100644 --- a/src/pretix/base/pdf.py +++ b/src/pretix/base/pdf.py @@ -400,6 +400,11 @@ DEFAULT_VARIABLES = OrderedDict(( "editor_sample": 4, "evaluate": lambda op, order, ev: str(op.seat.seat_number if op.seat else "") }), + ("first_scan", { + "label": _("Date and time of first scan"), + "editor_sample": _("2017-05-31 19:00"), + "evaluate": lambda op, order, ev: get_first_scan(op) + }), )) DEFAULT_IMAGES = OrderedDict([]) @@ -535,6 +540,17 @@ def get_variables(event): return v +def get_first_scan(op: OrderPosition): + scans = list(op.checkins.all()) + + if scans: + return date_format( + list(op.checkins.all())[-1].datetime.astimezone(op.order.event.timezone), + "SHORT_DATETIME_FORMAT" + ) + return "" + + class Renderer: def __init__(self, event, layout, background_file):