Fix various issues with min() statements

This commit is contained in:
Raphael Michel
2020-02-14 09:16:04 +01:00
parent 16599e242d
commit 2c9b96f0c5

View File

@@ -400,10 +400,13 @@ class Order(LockModel, LoggedModel):
term_last = self.event.settings.get('payment_term_last', as_type=RelativeDateWrapper) term_last = self.event.settings.get('payment_term_last', as_type=RelativeDateWrapper)
if term_last: if term_last:
if self.event.has_subevents and subevents: if self.event.has_subevents and subevents:
term_last = min([ terms = [
term_last.datetime(se).date() term_last.datetime(se).date()
for se in subevents for se in subevents
]) ]
if not terms:
return
term_last = min(terms)
else: else:
term_last = term_last.datetime(self.event).date() term_last = term_last.datetime(self.event).date()
term_last = make_aware(datetime.combine( term_last = make_aware(datetime.combine(
@@ -434,10 +437,11 @@ class Order(LockModel, LoggedModel):
until = self.event.settings.get('cancel_allow_user_until', as_type=RelativeDateWrapper) until = self.event.settings.get('cancel_allow_user_until', as_type=RelativeDateWrapper)
if until: if until:
if self.event.has_subevents: if self.event.has_subevents:
return min([ terms = [
until.datetime(se) until.datetime(se)
for se in self.event.subevents.filter(id__in=self.positions.values_list('subevent', flat=True)) for se in self.event.subevents.filter(id__in=self.positions.values_list('subevent', flat=True))
]) ]
return min(terms) if terms else None
else: else:
return until.datetime(self.event) return until.datetime(self.event)
@@ -586,10 +590,11 @@ class Order(LockModel, LoggedModel):
modify_deadline = self.event.settings.get('last_order_modification_date', as_type=RelativeDateWrapper) modify_deadline = self.event.settings.get('last_order_modification_date', as_type=RelativeDateWrapper)
if self.event.has_subevents and modify_deadline: if self.event.has_subevents and modify_deadline:
modify_deadline = min([ dates = [
modify_deadline.datetime(se) modify_deadline.datetime(se)
for se in self.event.subevents.filter(id__in=self.positions.values_list('subevent', flat=True)) for se in self.event.subevents.filter(id__in=self.positions.values_list('subevent', flat=True))
]) ]
modify_deadline = min(dates) if dates else None
elif modify_deadline: elif modify_deadline:
modify_deadline = modify_deadline.datetime(self.event) modify_deadline = modify_deadline.datetime(self.event)
@@ -620,10 +625,11 @@ class Order(LockModel, LoggedModel):
dl_date = self.event.settings.get('ticket_download_date', as_type=RelativeDateWrapper) dl_date = self.event.settings.get('ticket_download_date', as_type=RelativeDateWrapper)
if dl_date: if dl_date:
if self.event.has_subevents: if self.event.has_subevents:
dl_date = min([ dates = [
dl_date.datetime(se) dl_date.datetime(se)
for se in self.event.subevents.filter(id__in=self.positions.values_list('subevent', flat=True)) for se in self.event.subevents.filter(id__in=self.positions.values_list('subevent', flat=True))
]) ]
dl_date = min(dates) if dates else None
else: else:
dl_date = dl_date.datetime(self.event) dl_date = dl_date.datetime(self.event)
return dl_date return dl_date
@@ -648,10 +654,14 @@ class Order(LockModel, LoggedModel):
term_last = self.event.settings.get('payment_term_last', as_type=RelativeDateWrapper) term_last = self.event.settings.get('payment_term_last', as_type=RelativeDateWrapper)
if term_last: if term_last:
if self.event.has_subevents: if self.event.has_subevents:
term_last = min([ terms = [
term_last.datetime(se).date() term_last.datetime(se).date()
for se in self.event.subevents.filter(id__in=self.positions.values_list('subevent', flat=True)) for se in self.event.subevents.filter(id__in=self.positions.values_list('subevent', flat=True))
]) ]
if terms:
term_last = min(terms)
else:
term_last = None
else: else:
term_last = term_last.datetime(self.event).date() term_last = term_last.datetime(self.event).date()
term_last = make_aware(datetime.combine( term_last = make_aware(datetime.combine(