From d3589696d77d2feb0ccc96e816924758e9485773 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 22 Nov 2022 12:28:37 +0100 Subject: [PATCH] Sendmail: Allow scheduled mails to recover from "missed" --- src/pretix/plugins/sendmail/models.py | 4 +++- src/pretix/plugins/sendmail/signals.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pretix/plugins/sendmail/models.py b/src/pretix/plugins/sendmail/models.py index 43d0e468d8..29001a6d73 100644 --- a/src/pretix/plugins/sendmail/models.py +++ b/src/pretix/plugins/sendmail/models.py @@ -92,6 +92,8 @@ class ScheduledMail(models.Model): 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() def send(self): @@ -241,7 +243,7 @@ class Rule(models.Model, LoggingMixin): if sm.computed_datetime != previous: 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 def human_readable_time(self): diff --git a/src/pretix/plugins/sendmail/signals.py b/src/pretix/plugins/sendmail/signals.py index b5a572a07e..4a5cd674e9 100644 --- a/src/pretix/plugins/sendmail/signals.py +++ b/src/pretix/plugins/sendmail/signals.py @@ -142,7 +142,7 @@ def sendmail_run_rules(sender, **kwargs): previous = m.computed_datetime m.recompute() if m.computed_datetime != previous: - m.save(update_fields=['last_computed', 'computed_datetime']) + m.save(update_fields=['last_computed', 'computed_datetime', 'state']) else: unchanged.append(m.pk)