Check-in: New flags for check-in lists (#3577)

This commit is contained in:
Raphael Michel
2023-10-23 15:52:06 +02:00
committed by GitHub
parent da9aa3e133
commit a0831890ad
14 changed files with 82 additions and 13 deletions

View File

@@ -62,6 +62,16 @@ class CheckinList(LoggedModel):
'and valid for check-in regardless of which date they are purchased for. '
'You can limit their validity through the advanced check-in rules, '
'though.'))
ignore_in_statistics = models.BooleanField(
verbose_name=pgettext_lazy('checkin', 'Ignore check-ins on this list in statistics'),
default=False
)
consider_tickets_used = models.BooleanField(
verbose_name=pgettext_lazy('checkin', 'Tickets with a check-in on this list should be considered "used"'),
help_text=_('This is relevant in various situations, e.g. for deciding if a ticket can still be canceled by '
'the customer.'),
default=True
)
include_pending = models.BooleanField(verbose_name=pgettext_lazy('checkin', 'Include pending orders'),
default=False,
help_text=_('With this option, people will be able to check in even if the '

View File

@@ -633,7 +633,7 @@ class Order(LockModel, LoggedModel):
positions = list(
self.positions.all().annotate(
has_variations=Exists(ItemVariation.objects.filter(item_id=OuterRef('item_id'))),
has_checkin=Exists(Checkin.objects.filter(position_id=OuterRef('pk')))
has_checkin=Exists(Checkin.objects.filter(position_id=OuterRef('pk'), list__consider_tickets_used=True))
).select_related('item').prefetch_related('issued_gift_cards')
)
if self.event.settings.change_allow_user_if_checked_in:
@@ -665,7 +665,7 @@ class Order(LockModel, LoggedModel):
return False
positions = list(
self.positions.all().annotate(
has_checkin=Exists(Checkin.objects.filter(position_id=OuterRef('pk')))
has_checkin=Exists(Checkin.objects.filter(position_id=OuterRef('pk'), list__consider_tickets_used=True))
).select_related('item').prefetch_related('issued_gift_cards')
)
cancelable = all([op.item.allow_cancel and not op.has_checkin and not op.blocked for op in positions])
@@ -820,7 +820,7 @@ class Order(LockModel, LoggedModel):
positions = list(
self.positions.all().annotate(
has_checkin=Exists(Checkin.objects.filter(position_id=OuterRef('pk')))
has_checkin=Exists(Checkin.objects.filter(position_id=OuterRef('pk'), list__consider_tickets_used=True))
).select_related('item').prefetch_related('item__questions')
)
if not self.event.settings.allow_modifications_after_checkin: