diff --git a/src/pretix/plugins/sendmail/models.py b/src/pretix/plugins/sendmail/models.py index 43d0e468d..29001a6d7 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 b5a572a07..4a5cd674e 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)