from django import forms
+from django.utils import timezone
from collections import OrderedDict
self.instance.parsed_msg, self.instance.parsed_txt = parse_mail_content(self.instance.fullmsg)
return self.instance.parsed_txt
+
+ @classmethod
+ def get_rowclass_and_title(self, obj, cache):
+ if obj.sendtime < timezone.now():
+ return "warning", None
+ else:
+ return "", None
from django.core.management.base import BaseCommand, CommandError
from django.db import connection
from django.conf import settings
+from django.utils import timezone
import smtplib
if not curs.fetchall()[0][0]:
raise CommandError("Failed to get advisory lock, existing send_queued_mail process stuck?")
- for m in QueuedMail.objects.all():
+ for m in QueuedMail.objects.filter(sendtime__lte=timezone.now()):
# Yes, we do a new connection for each run. Just because we can.
# If it fails we'll throw an exception and just come back on the
# next cron job. And local delivery should never fail...
'pending_refunds': pending_refunds,
'bank_file_uploads': bank_file_uploads,
'schedalert': conditional_exec_to_scalar(request.user.is_superuser, "SELECT NOT EXISTS (SELECT 1 FROM pg_stat_activity WHERE application_name='pgeu scheduled job runner' AND datname=current_database())"),
- 'mailqueuealert': conditional_exec_to_scalar(request.user.is_superuser, "SELECT EXISTS (SELECT 1 FROM mailqueue_queuedmail LIMIT 1)"),
+ 'mailqueuealert': conditional_exec_to_scalar(request.user.is_superuser, "SELECT EXISTS (SELECT 1 FROM mailqueue_queuedmail WHERE sendtime < now())"),
'meetingserver': settings.ENABLE_MEMBERSHIP and settings.MEETINGS_STATUS_BASE_URL,
})