forked from CGM_Public/pretix_original
Sendmail: Allow scheduled mails to recover from "missed"
This commit is contained in:
@@ -92,6 +92,8 @@ class ScheduledMail(models.Model):
|
|||||||
is_dst=False, # prevent AmbiguousTimeError
|
is_dst=False, # prevent AmbiguousTimeError
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if self.computed_datetime > timezone.now() and self.state == self.STATE_MISSED:
|
||||||
|
self.state = self.STATE_SCHEDULED
|
||||||
self.last_computed = timezone.now()
|
self.last_computed = timezone.now()
|
||||||
|
|
||||||
def send(self):
|
def send(self):
|
||||||
@@ -241,7 +243,7 @@ class Rule(models.Model, LoggingMixin):
|
|||||||
if sm.computed_datetime != previous:
|
if sm.computed_datetime != previous:
|
||||||
update_sms.append(sm)
|
update_sms.append(sm)
|
||||||
|
|
||||||
ScheduledMail.objects.bulk_update(update_sms, ['computed_datetime', 'last_computed'], 100)
|
ScheduledMail.objects.bulk_update(update_sms, ['computed_datetime', 'last_computed', 'state'], 100)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def human_readable_time(self):
|
def human_readable_time(self):
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ def sendmail_run_rules(sender, **kwargs):
|
|||||||
previous = m.computed_datetime
|
previous = m.computed_datetime
|
||||||
m.recompute()
|
m.recompute()
|
||||||
if m.computed_datetime != previous:
|
if m.computed_datetime != previous:
|
||||||
m.save(update_fields=['last_computed', 'computed_datetime'])
|
m.save(update_fields=['last_computed', 'computed_datetime', 'state'])
|
||||||
else:
|
else:
|
||||||
unchanged.append(m.pk)
|
unchanged.append(m.pk)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user