Changed the signature of ietf.utils.aliases.dump_sublist() to include a list of the alias domains, in order to be able to generate IRTF group aliases @irtf.org. Updated ietf/bin/generate-*-aliases accordingly.

- Legacy-Id: 13206
This commit is contained in:
Henrik Levkowetz 2017-04-12 18:51:38 +00:00
parent a01d01f8e4
commit 978e8f72f5
4 changed files with 22 additions and 12 deletions

View file

@ -135,6 +135,7 @@ if __name__ == '__main__':
interesting_drafts = active_drafts | inactive_recent_drafts
alias_domains = ['ietf.org', ]
for draft in interesting_drafts.distinct().iterator():
# Omit RFCs, we care only about drafts
if draft.docalias_set.filter(name__startswith='rfc'):
@ -144,7 +145,7 @@ if __name__ == '__main__':
alias = draft.name
all = []
def handle_sublist(afile, vfile, alias, emails):
all.extend( dump_sublist(afile, vfile, alias, settings.DRAFT_VIRTUAL_DOMAIN, emails) )
all.extend( dump_sublist(afile, vfile, alias, alias_domains, settings.DRAFT_VIRTUAL_DOMAIN, emails) )
#.authors (/and no suffix) = authors
# First, do no suffix case
handle_sublist(afile, vfile, alias, get_draft_authors_emails(draft))

View file

@ -30,6 +30,8 @@ django.setup()
from django.conf import settings
import debug # pyflakes:ignore
from ietf.group.models import Group
from ietf.group.utils import get_group_ad_emails, get_group_role_emails, get_child_group_role_emails
from ietf.utils.aliases import dump_sublist
@ -74,21 +76,25 @@ if __name__ == '__main__':
for wg in interesting_wgs.distinct().iterator():
name = wg.acronym
dump_sublist(afile, vfile, name+'-ads', settings.GROUP_VIRTUAL_DOMAIN, get_group_ad_emails(wg))
dump_sublist(afile, vfile, name+'-chairs', settings.GROUP_VIRTUAL_DOMAIN, get_group_role_emails(wg, ['chair', 'secr']))
dump_sublist(afile, vfile, name+'-ads', ['ietf.org', ], settings.GROUP_VIRTUAL_DOMAIN, get_group_ad_emails(wg))
dump_sublist(afile, vfile, name+'-chairs', ['ietf.org', ], settings.GROUP_VIRTUAL_DOMAIN, get_group_role_emails(wg, ['chair', 'secr']))
# - status = Active
rgs = Group.objects.filter(type='rg').all()
debug.pprint('rgs')
active_rgs = rgs.filter(state__in=ACTIVE_STATES)
debug.pprint('active_rgs')
# - activity within last year? (use concluded_date)
inactive_recent_rgs = rgs.exclude(state__in=ACTIVE_STATES).filter(time__gte=show_since)
interesting_rgs = active_rgs | inactive_recent_rgs
debug.pprint('interesting_rgs')
for rg in interesting_rgs.distinct().iterator():
name = rg.acronym
debug.show('rg.acronym')
#dump_sublist('%s%s' % (name, '-ads'), get_group_ad_emails, rg, True)
dump_sublist(afile, vfile, name+'-chairs', settings.GROUP_VIRTUAL_DOMAIN, get_group_role_emails(rg, ['chair', 'secr']))
dump_sublist(afile, vfile, name+'-chairs', ['ietf.org', 'irtf.org', ], settings.GROUP_VIRTUAL_DOMAIN, get_group_role_emails(rg, ['chair', 'secr']))
# Additionally, for areaz, we should list -ads and -chairs
# (for every chair in active groups within the area).
@ -97,6 +103,6 @@ if __name__ == '__main__':
for area in active_areas:
name = area.acronym
area_ad_emails = get_group_role_emails(area, ['pre-ad', 'ad', 'chair'])
dump_sublist(afile, vfile, name+'-ads' , settings.GROUP_VIRTUAL_DOMAIN, area_ad_emails)
dump_sublist(afile, vfile, name+'-chairs', settings.GROUP_VIRTUAL_DOMAIN, (get_child_group_role_emails(area, ['chair', 'secr']) | area_ad_emails))
dump_sublist(afile, vfile, name+'-ads' , ['ietf.org', ], settings.GROUP_VIRTUAL_DOMAIN, area_ad_emails)
dump_sublist(afile, vfile, name+'-chairs', ['ietf.org', ], settings.GROUP_VIRTUAL_DOMAIN, (get_child_group_role_emails(area, ['chair', 'secr']) | area_ad_emails))

View file

@ -521,7 +521,7 @@ DATE_FORMAT = "Y-m-d"
DATETIME_FORMAT = "Y-m-d H:i T"
DRAFT_NAMES_WITH_DOT = "(draft-[a-z-]+-(ion-sig-uni4\.0|pilc-2\.5g3g|trade-iotp-v1\.0-[a-z]+|msword-template-v2\.0|1240\.his|(ieee)?802\.[0-9]+-[a-z0-9-]*))"
DRAFT_NAMES_WITH_DOT = "(draft-[a-z-]+-(ion-sig-uni4\.0|pilc-2\.5g3g|trade-iotp-v1\.0-[a-z]+|msword-template-v2\.0|1240\.his|(ieee)?802\.[0-9a-z]+-[a-z0-9-]*))"
URL_REGEXPS = {
"acronym": r"(?P<acronym>[-a-z0-9]+)",
"charter": r"(?P<name>charter-[-a-z0-9]+)",

View file

@ -14,6 +14,8 @@ Mailing list alias dumping utilities
from django.conf import settings
import debug # pyflakes:ignore
def rewrite_email_address(email):
""" Prettify the email address (and if it's empty, skip it by
returning None). """
@ -40,7 +42,7 @@ def rewrite_address_list(l):
h[address] = True
yield address
def dump_sublist(afile, vfile, alias, domain, emails):
def dump_sublist(afile, vfile, alias, adomains, vdomain, emails):
if not emails:
return emails
# Nones in the list should be skipped
@ -56,13 +58,14 @@ def dump_sublist(afile, vfile, alias, domain, emails):
if not emails:
return emails
try:
aliasaddr = '%s@ietf.org' % (alias, ) # in virtual, --> filtername
filtername = 'xfilter-%s' % (alias, ) # in aliases, --> | expandname
expandname = 'expand-%s' % (alias, ) # in virtual, --> email list
vfile.write('%-64s %s\n' % (aliasaddr, filtername))
afile.write('%-64s "|%s filter %s %s"\n' % (filtername+':', settings.POSTCONFIRM_PATH, expandname, domain))
vfile.write('%-64s %s\n' % ("%s@%s"%(expandname, domain), ', '.join(emails)))
for domain in adomains:
aliasaddr = '%s@%s' % (alias, domain) # in virtual, --> filtername
vfile.write('%-64s %s\n' % (aliasaddr, filtername))
afile.write('%-64s "|%s filter %s %s"\n' % (filtername+':', settings.POSTCONFIRM_PATH, expandname, vdomain))
vfile.write('%-64s %s\n' % ("%s@%s"%(expandname, vdomain), ', '.join(emails)))
except UnicodeEncodeError:
# If there's unicode in email address, something is badly