47 lines
1.6 KiB
Python
Executable file
47 lines
1.6 KiB
Python
Executable file
#!/usr/bin/env python
|
|
#
|
|
# This script will send various milestone reminders. It's supposed to
|
|
# be run daily, and will then send reminders weekly/monthly as
|
|
# appropriate.
|
|
|
|
import datetime, os
|
|
import syslog
|
|
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ietf.settings")
|
|
|
|
syslog.openlog(os.path.basename(__file__), syslog.LOG_PID, syslog.LOG_LOCAL0)
|
|
|
|
import django
|
|
django.setup()
|
|
|
|
from ietf.group.mails import *
|
|
|
|
today = datetime.date.today()
|
|
|
|
MONDAY = 1
|
|
FIRST_DAY_OF_MONTH = 1
|
|
|
|
if today.isoweekday() == MONDAY:
|
|
# send milestone review reminders - ideally we'd keep track of
|
|
# exactly when we sent one last time for a group, but it's a bit
|
|
# complicated because people can change the milestones in the mean
|
|
# time, so dodge all of this by simply sending once a week only
|
|
for g in groups_with_milestones_needing_review():
|
|
mail_sent = email_milestone_review_reminder(g, grace_period=7)
|
|
if mail_sent:
|
|
syslog.syslog("Sent milestone review reminder for %s %s" % (g.acronym, g.type.name))
|
|
|
|
|
|
early_warning_days = 30
|
|
|
|
# send any milestones due reminders
|
|
for g in groups_needing_milestones_due_reminder(early_warning_days):
|
|
email_milestones_due(g, early_warning_days)
|
|
syslog.syslog("Sent milestones due reminder for %s %s" % (g.acronym, g.type.name))
|
|
|
|
if today.day == FIRST_DAY_OF_MONTH:
|
|
# send milestone overdue reminders - once a month
|
|
for g in groups_needing_milestones_overdue_reminder(grace_period=30):
|
|
email_milestones_overdue(g)
|
|
syslog.syslog("Sent milestones overdue reminder for %s %s" % (g.acronym, g.type.name))
|