Sendmail rules: Add "missed" state

This commit is contained in:
Raphael Michel
2021-06-03 13:57:18 +02:00
parent 750231eb3c
commit 1a17f54354
2 changed files with 8 additions and 0 deletions

View File

@@ -41,11 +41,13 @@ class ScheduledMail(models.Model):
STATE_SCHEDULED = 'scheduled'
STATE_FAILED = 'failed'
STATE_COMPLETED = 'completed'
STATE_MISSED = 'missed'
STATE_CHOICES = [
(STATE_SCHEDULED, STATE_SCHEDULED),
(STATE_FAILED, STATE_FAILED),
(STATE_COMPLETED, STATE_COMPLETED),
(STATE_MISSED, STATE_MISSED),
]
id = models.BigAutoField(primary_key=True)

View File

@@ -138,6 +138,12 @@ def sendmail_run_rules(sender, **kwargs):
if m.computed_datetime != previous:
m.save(update_fields=['last_computed', 'computed_datetime'])
mails.filter(
state=ScheduledMail.STATE_SCHEDULED,
computed_datetime__lte=timezone.now() - datetime.timedelta(days=2),
).update(
state=ScheduledMail.STATE_MISSED
)
for m_id in mails.filter(
state__in=(ScheduledMail.STATE_SCHEDULED, ScheduledMail.STATE_FAILED),
computed_datetime__gte=timezone.now() - datetime.timedelta(days=2),