forked from CGM_Public/pretix_original
Allow to print expiry date of gift card in PDFs (#2560)
This commit is contained in:
@@ -49,6 +49,7 @@ from arabic_reshaper import ArabicReshaper
|
|||||||
from bidi.algorithm import get_display
|
from bidi.algorithm import get_display
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.staticfiles import finders
|
from django.contrib.staticfiles import finders
|
||||||
|
from django.db.models import Max, Min
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.utils.formats import date_format
|
from django.utils.formats import date_format
|
||||||
from django.utils.functional import SimpleLazyObject
|
from django.utils.functional import SimpleLazyObject
|
||||||
@@ -418,6 +419,17 @@ DEFAULT_VARIABLES = OrderedDict((
|
|||||||
"editor_sample": _("2017-05-31 19:00"),
|
"editor_sample": _("2017-05-31 19:00"),
|
||||||
"evaluate": lambda op, order, ev: get_first_scan(op)
|
"evaluate": lambda op, order, ev: get_first_scan(op)
|
||||||
}),
|
}),
|
||||||
|
("giftcard_issuance_date", {
|
||||||
|
|
||||||
|
"label": _("Gift card: Issuance date"),
|
||||||
|
"editor_sample": _("2017-05-31"),
|
||||||
|
"evaluate": lambda op, order, ev: get_giftcard_issuance(op, ev)
|
||||||
|
}),
|
||||||
|
("giftcard_expiry_date", {
|
||||||
|
"label": _("Gift card: Expiration date"),
|
||||||
|
"editor_sample": _("2017-05-31"),
|
||||||
|
"evaluate": lambda op, order, ev: get_giftcard_expiry(op, ev)
|
||||||
|
}),
|
||||||
))
|
))
|
||||||
DEFAULT_IMAGES = OrderedDict([])
|
DEFAULT_IMAGES = OrderedDict([])
|
||||||
|
|
||||||
@@ -553,6 +565,24 @@ def get_variables(event):
|
|||||||
return v
|
return v
|
||||||
|
|
||||||
|
|
||||||
|
def get_giftcard_expiry(op: OrderPosition, ev):
|
||||||
|
if not op.item.issue_giftcard:
|
||||||
|
return "" # performance optimization
|
||||||
|
m = op.issued_gift_cards.aggregate(m=Min('expires'))['m']
|
||||||
|
if not m:
|
||||||
|
return ""
|
||||||
|
return date_format(m.astimezone(ev.timezone), "SHORT_DATE_FORMAT")
|
||||||
|
|
||||||
|
|
||||||
|
def get_giftcard_issuance(op: OrderPosition, ev):
|
||||||
|
if not op.item.issue_giftcard:
|
||||||
|
return "" # performance optimization
|
||||||
|
m = op.issued_gift_cards.aggregate(m=Max('issuance'))['m']
|
||||||
|
if not m:
|
||||||
|
return ""
|
||||||
|
return date_format(m.astimezone(ev.timezone), "SHORT_DATE_FORMAT")
|
||||||
|
|
||||||
|
|
||||||
def get_first_scan(op: OrderPosition):
|
def get_first_scan(op: OrderPosition):
|
||||||
scans = list(op.checkins.all())
|
scans = list(op.checkins.all())
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user